Browse Source

商品类型的奖品信息从商品中实时取

cup 2 years ago
parent
commit
ae83ff1457

+ 3 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -168,8 +168,9 @@ public class TicketBoxMgrController extends BaseApiController {
 				.eq(TicketAwards::getBoxId, ticketBox.getBoxId()).orderByAsc(TicketAwards::getSort));
 		List<TicketAwardsVO> ticketAwardsVOS = mapperFacade.mapAsList(ticketAwardsList, TicketAwardsVO.class);
 		for (TicketAwardsVO ticketAwardsVO : ticketAwardsVOS) {
-			ticketAwardsVO.setPrizeList(ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-					.eq(TicketAwardsPrize::getAwardsId, ticketAwardsVO.getAwardsId())));
+			QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("t1.awards_id", ticketAwardsVO.getAwardsId());
+			ticketAwardsVO.setPrizeList(ticketAwardsPrizeService.listByQueryWrapper(queryWrapper));
 		}
 		ticketBoxVO.setAwardsList(ticketAwardsVOS);
 		return AjaxResult.success(ticketBoxVO);

+ 9 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsPrizeMapper.java

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -17,4 +18,12 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface TicketAwardsPrizeMapper extends BaseMapper<TicketAwardsPrize> {
   List<TicketAwardsPrizeVO> listPrizeVO(@Param(Constants.WRAPPER) Wrapper<TicketAwardsPrize> queryWrapper);
+
+  /**
+   * 根据条件查询奖品信息
+   * @param queryWrapper
+   * @return
+   */
+  List<TicketAwardsPrize> listByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<TicketAwardsPrize> queryWrapper);
+
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsPrizeService.java

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -20,4 +21,11 @@ public interface ITicketAwardsPrizeService extends IService<TicketAwardsPrize> {
   List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper);
 
   List<TicketAwardsPrizeVO> listPrizeVO(String boxId);
+
+  /**
+   * 根据条件查询奖品信息
+    * @param queryWrapper
+   * @return
+   */
+    List<TicketAwardsPrize> listByQueryWrapper(QueryWrapper<TicketAwardsPrize> queryWrapper);
 }

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsPrizeServiceImpl.java

@@ -24,6 +24,11 @@ import org.springframework.stereotype.Service;
 public class TicketAwardsPrizeServiceImpl extends ServiceImpl<TicketAwardsPrizeMapper, TicketAwardsPrize> implements
     ITicketAwardsPrizeService {
 
+  @Override
+  public List<TicketAwardsPrize> listByQueryWrapper(QueryWrapper<TicketAwardsPrize> queryWrapper) {
+    return getBaseMapper().listByQueryWrapper(queryWrapper);
+  }
+
   @Override
   public List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper) {
     return getBaseMapper().listPrizeVO(queryWrapper);

+ 14 - 9
mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java

@@ -2,6 +2,7 @@ package com.qs.mp.user.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketAwards;
@@ -119,8 +120,10 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
                 }
             }
         }
-        List<TicketAwardsPrize> awardsPrizes = ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-                .eq(TicketAwardsPrize::getAwardsId, userHitPrize.getAwardsId()).orderByDesc(TicketAwardsPrize::getSortWeight).orderByDesc(TicketAwardsPrize::getValue));
+        QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("t1.awards_id", userHitPrize.getAwardsId());
+        queryWrapper.orderByDesc("t1.sort_weight", "t1.value");
+        List<TicketAwardsPrize> awardsPrizes = ticketAwardsPrizeService.listByQueryWrapper(queryWrapper);
         return awardsPrizes;
     }
 
@@ -130,8 +133,10 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
         UserHitPrizeDetailVO userHitPrizeDetailVO = new UserHitPrizeDetailVO();
 
         // 封装出参对象
-        List<TicketAwardsPrize> ticketAwardsPrizeList = ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-                .eq(TicketAwardsPrize::getBoxId, param.getBoxId()));
+        QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("t1.box_id", param.getBoxId());
+        List<TicketAwardsPrize> ticketAwardsPrizeList = ticketAwardsPrizeService.listByQueryWrapper(queryWrapper);
+
 
         List<List<TicketAwardsPrize>> awardsPrizeList =  new ArrayList<>();
         int index = 0;
@@ -155,14 +160,14 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
             List<TicketAwards> awardsList = ticketAwardsService.list(new LambdaQueryWrapper<TicketAwards>()
                     .eq(TicketAwards::getBoxId,param.getBoxId())
                     .orderByAsc(TicketAwards::getSort));
-            LambdaQueryWrapper<TicketAwardsPrize> prizeListQueryWrapper = new LambdaQueryWrapper<TicketAwardsPrize>()
-                    .eq(TicketAwardsPrize::getBoxId, param.getBoxId());
+            QueryWrapper<TicketAwardsPrize> prizeListQueryWrapper = new QueryWrapper<TicketAwardsPrize>();
+                    prizeListQueryWrapper.eq("t1.box_id", param.getBoxId());
             if (awardsList.size() > 1) {
-                prizeListQueryWrapper.in(TicketAwardsPrize::getAwardsId, awardsList.get(0).getAwardsId(), awardsList.get(1).getAwardsId());
+                prizeListQueryWrapper.in("t1.awards_id", awardsList.get(0).getAwardsId(), awardsList.get(1).getAwardsId());
             }else {
-                prizeListQueryWrapper.in(TicketAwardsPrize::getAwardsId, awardsList.get(0).getAwardsId());
+                prizeListQueryWrapper.in("t1.awards_id", awardsList.get(0).getAwardsId());
             }
-            List<TicketAwardsPrize> prizeList = ticketAwardsPrizeService.list(prizeListQueryWrapper);
+            List<TicketAwardsPrize> prizeList = ticketAwardsPrizeService.listByQueryWrapper(prizeListQueryWrapper);
             TicketAwardsPrize ticketAwardsPrize = prizeList.get(new Random().nextInt(prizeList.size()));
             userHitPrizeDetailVO.setPrizeId(ticketAwardsPrize.getPrizeId());
             userHitPrizeDetailVO.setPicUrl(ticketAwardsPrize.getPicUrl());

+ 12 - 2
mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml

@@ -27,11 +27,21 @@
     </sql>
 
     <select id="listPrizeVO" resultType="com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO">
-        select t1.*, t2.*,t3.type couponType
+        select t1.*, t2.*
+            if(t2.prize_type = 'goods' AND t3.title is not null,t3.title,t2.title) as title,
+            if(t2.prize_type = 'goods' AND t3.title is not null,t3.pic_url,t2.pic_url) as pic_url
         from mp_ticket_awards t1
         left join mp_ticket_awards_prize t2 on t1.awards_id = t2.awards_id
-        left join mp_coupon t3 on t2.ref_id = t3.coupon_id
+        left join mp_goods t3 on t2.ref_id = t3.goods_id
             ${ew.customSqlSegment}
     </select>
 
+    <select id="listByQueryWrapper" resultType="com.qs.mp.admin.domain.TicketAwardsPrize">
+        select t1.*,
+               if(t1.prize_type = 'goods' AND t2.title is not null ,t2.title,t1.title) as title,
+               if(t1.prize_type = 'goods' AND t2.pic_url is not null,t2.pic_url,t1.pic_url) as pic_url
+        from mp_ticket_awards_prize t1
+         left join mp_goods t2 on t1.ref_id = t2.goods_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>