Browse Source

奖品增加排序权重和删除标识

chunping 3 years ago
parent
commit
fe5da87127

+ 1 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelTicketController.java

@@ -1,9 +1,6 @@
 package com.qs.mp.web.controller.api.channel.mall;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.domain.vo.TicketBoxListVO;
 import com.qs.mp.admin.domain.param.TicketBoxParam;
@@ -74,8 +71,7 @@ public class ChannelTicketController extends BaseApiController {
     }
     TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
     TicketBoxVO ticketBoxVO = mapperFacade.map(ticketBox, TicketBoxVO.class);
-    ticketBoxVO.setPrizeList(ticketAwardsPrizeService.listPrizeVO(new QueryWrapper<TicketAwardsPrize>()
-        .eq("t1.box_id", ticketBox.getBoxId()).orderByAsc("t1.sort").orderByDesc("t2.value")));
+    ticketBoxVO.setPrizeList(ticketAwardsPrizeService.listPrizeVO(ticketBox.getBoxId()));
     return AjaxResult.success(ticketBoxVO);
   }
 

+ 2 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java

@@ -120,9 +120,7 @@ public class UserTicketController extends BaseApiController {
     }
     TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
     TicketBoxVO ticketBoxVO = mapperFacade.map(ticketBox, TicketBoxVO.class);
-    ticketBoxVO.setPrizeList(
-        ticketAwardsPrizeService.listPrizeVO(new QueryWrapper<TicketAwardsPrize>()
-            .eq("t1.box_id", ticketBox.getBoxId()).orderByAsc("t1.sort").orderByDesc("t2.value")));
+    ticketBoxVO.setPrizeList(ticketAwardsPrizeService.listPrizeVO(ticketBox.getBoxId()));
     return AjaxResult.success(ticketBoxVO);
   }
 
@@ -155,8 +153,7 @@ public class UserTicketController extends BaseApiController {
     TicketBox ticketBox = ticketBoxService.getById(ticket.getBoxId());
 
     TicketVO ticketVO = new TicketVO();
-    ticketVO.setPrizeList(ticketAwardsPrizeService.listPrizeVO(new QueryWrapper<TicketAwardsPrize>()
-        .eq("t1.box_id", ticketBox.getBoxId()).orderByAsc("t1.sort").orderByDesc("t2.value")));
+    ticketVO.setPrizeList(ticketAwardsPrizeService.listPrizeVO(ticket.getBoxId()));
     ticketVO.setTicketId(ticket.getTicketId());
     ticketVO.setBoxId(ticket.getBoxId());
     ticketVO.setTitle(ticketBox.getTitle());

+ 13 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/TicketAwardsPrize.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qs.mp.common.enums.TicketPrizeTypeEnum;
 import java.io.Serializable;
@@ -104,6 +105,18 @@ public class TicketAwardsPrize implements Serializable {
   @TableField("value")
   private Integer value;
 
+  @ApiModelProperty("排序权重,越大越靠前")
+  @TableField("sort_weight")
+  private Integer sortWeight;
+
+  /**
+   * 逻辑删除标识
+   */
+  @ApiModelProperty("逻辑删除标识")
+  @TableField("is_deleted")
+  @TableLogic
+  private Integer isDeleted;
+
   /**
    * 创建时间
    */

+ 3 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketAwardsPrizeParam.java

@@ -31,4 +31,7 @@ public class TicketAwardsPrizeParam {
 
   @ApiModelProperty(value = "奖品价值",required=true)
   private Integer value;
+
+  @ApiModelProperty(value = "排序权重",required=true)
+  private Integer sortWeight;
 }

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketAwardsPrizeVO.java

@@ -107,5 +107,10 @@ public class TicketAwardsPrizeVO {
   @ApiModelProperty("奖品价值")
   private Integer value;
 
+  /**
+   * 排序权重
+   */
+  private Integer sortWeight;
+
 
 }

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

@@ -18,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ITicketAwardsPrizeService extends IService<TicketAwardsPrize> {
   List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper);
+
+  List<TicketAwardsPrizeVO> listPrizeVO(String boxId);
 }

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

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO;
 import com.qs.mp.admin.mapper.TicketAwardsPrizeMapper;
@@ -25,4 +26,10 @@ public class TicketAwardsPrizeServiceImpl extends ServiceImpl<TicketAwardsPrizeM
   public List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper) {
     return getBaseMapper().listPrizeVO(queryWrapper);
   }
+
+  @Override
+  public List<TicketAwardsPrizeVO> listPrizeVO(String boxId) {
+    return listPrizeVO(new QueryWrapper<TicketAwardsPrize>()
+        .eq("t1.box_id", boxId).eq("t2.is_deleted", 0).orderByAsc("t1.sort").orderByDesc("t2.sort_weight, t2.value"));
+  }
 }

+ 7 - 3
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -165,19 +165,23 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
             awardsPrize.setPicUrl("md.jpeg");
           }
           ticketAwardsPrizeList.add(awardsPrize);
+        } else {
+          // 更新排序权重字段
+          ticketAwardsPrizeService.update(new LambdaUpdateWrapper<TicketAwardsPrize>().set(TicketAwardsPrize::getSortWeight, ticketAwardsPrizeParam.getSortWeight()).eq(TicketAwardsPrize::getPrizeId, ticketAwardsPrizeParam.getPrizeId()));
         }
         return ticketAwardsPrizeParam.getPrizeId();
       }).collect(Collectors.toList());
 
       // 如果新的奖品id为空,则清除原来的所有奖品
       if (CollectionUtils.isEmpty(prizeIdList)) {
-        ticketAwardsPrizeService.remove(new LambdaUpdateWrapper<TicketAwardsPrize>().eq(TicketAwardsPrize::getAwardsId, ticketAwardsParam.getAwardsId()));
+        ticketAwardsPrizeService.update(new LambdaUpdateWrapper<TicketAwardsPrize>().set(TicketAwardsPrize::getIsDeleted, 1).eq(TicketAwardsPrize::getAwardsId, ticketAwardsParam.getAwardsId()));
       } else {
         // 去重后,清除原来的奖品
         // 查询原来的奖品信息
         List<TicketAwardsPrize> oldTicketAwardsPrizeList = ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
                 .select(TicketAwardsPrize::getPrizeId)
-                .eq(TicketAwardsPrize::getAwardsId, ticketAwardsParam.getAwardsId()));
+                .eq(TicketAwardsPrize::getAwardsId, ticketAwardsParam.getAwardsId())
+            .eq(TicketAwardsPrize::getIsDeleted, 0));
         if (CollectionUtils.isEmpty(oldTicketAwardsPrizeList)) {
           throw new ServiceException("原奖品列表为空");
         }
@@ -187,7 +191,7 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
 
         if (CollectionUtils.isNotEmpty(oldPrizeIdList)) {
           // 删除原来的奖品信息
-          ticketAwardsPrizeService.removeByIds(oldPrizeIdList);
+          ticketAwardsPrizeService.update(new LambdaUpdateWrapper<TicketAwardsPrize>().set(TicketAwardsPrize::getIsDeleted, 1).in(TicketAwardsPrize::getPrizeId, oldPrizeIdList));
         }
       }
 

+ 2 - 1
mp-service/src/main/resources/mapper/admin/GoodsMapper.xml

@@ -19,6 +19,7 @@
         <result column="exchange_show" property="exchangeShow" />
         <result column="multi_sku" property="multiSku" />
         <result column="sku_prop" property="skuProp" />
+        <result column="sort_weight" property="sortWeight" />
         <result column="is_deleted" property="isDeleted" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
@@ -26,7 +27,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        goods_id, title, category_id, pic_url, description, origin_price, exchange_price, value, cost, quantity, exchanged_qty, status, exchange_show, multi_sku, sku_prop, is_deleted, created_time, updated_time
+        goods_id, title, category_id, pic_url, description, origin_price, exchange_price, value, cost, quantity, exchanged_qty, status, exchange_show, multi_sku, sku_prop, sort_weight, is_deleted, created_time, updated_time
     </sql>
 
 </mapper>

+ 3 - 1
mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml

@@ -15,13 +15,15 @@
         <result column="cashed_qty" property="cashedQty" />
         <result column="remain_qty" property="remainQty" />
         <result column="value" property="value" />
+        <result column="sort_weight" property="sortWeight" />
+        <result column="is_deleted" property="isDeleted" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        prize_id, box_id, awards_id, ref_id, title, pic_url, prize_type, quantity, cashed_qty, remain_qty, value, created_time, updated_time
+        prize_id, box_id, awards_id, ref_id, title, pic_url, prize_type, quantity, cashed_qty, remain_qty, value, sort_weight, is_deleted, created_time, updated_time
     </sql>
 
     <select id="listPrizeVO" resultType="com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO">

+ 2 - 1
mp-service/src/main/resources/mapper/admin/TicketBoxMapper.xml

@@ -22,6 +22,7 @@
         <result column="sale_price" property="salePrice" />
         <result column="sale_comm_rate" property="saleCommRate" />
         <result column="properties" property="properties" />
+        <result column="sort_weight" property="sortWeight" />
         <result column="on_time" property="onTime" />
         <result column="off_time" property="offTime" />
         <result column="manual_off" property="manualOff" />
@@ -33,7 +34,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        box_id, box_no, title, pic_url, category_id, description, sale_point, type, quantity, sale_qty, pkg_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, on_time, off_time, manual_off, status, is_deleted, created_time, updated_time
+        box_id, box_no, title, pic_url, category_id, description, sale_point, type, quantity, sale_qty, pkg_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, sort_weight, on_time, off_time, manual_off, status, is_deleted, created_time, updated_time
     </sql>
 
 </mapper>