소스 검색

更新券包

cup 3 년 전
부모
커밋
b7573fe63d

+ 9 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/CouponPkgMgrController.java

@@ -38,4 +38,13 @@ public class CouponPkgMgrController extends BaseApiController {
     }
 
 
+    @PostMapping("/update")
+    @ApiOperation("更新券包")
+    public AjaxResult update(@RequestBody CouponPkgParam couponPkgParam) {
+
+        couponPkgService.updateCouponPkg(couponPkgParam);
+
+        return AjaxResult.success();
+    }
+
 }

+ 28 - 0
mp-common/src/main/java/com/qs/mp/common/enums/CouponPkgStatusEnum.java

@@ -0,0 +1,28 @@
+package com.qs.mp.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+
+/**
+ * 券包类型枚举
+ * @author Cup
+ * @date 2022/5/6
+ */
+public enum CouponPkgStatusEnum implements IEnum<Integer> {
+
+    PUT_INIT(0, "待上架"),
+    PUT_ON(1, "已上架"),
+    PUT_OFF(2, "已下架");
+
+    private final Integer value;
+    private final String desc;
+
+    CouponPkgStatusEnum(final Integer value, final String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    @Override
+    public Integer getValue() {
+        return value;
+    }
+}

+ 4 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/CouponPkgItem.java

@@ -45,6 +45,10 @@ public class CouponPkgItem implements Serializable {
     @TableField("coupon_id")
     private Long couponId;
 
+    @ApiModelProperty("优惠券发放数量")
+    @TableField("coupon_num")
+    private Integer couponNum;
+
     /**
      * 创建时间
      */

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

@@ -22,4 +22,12 @@ public interface ICouponPkgService extends IService<CouponPkg> {
      */
     boolean create(CouponPkgParam couponPkgParam);
 
+    /**
+     * 修改券包
+     *
+     * @param couponPkgParam
+     * @return
+     */
+    boolean updateCouponPkg(CouponPkgParam couponPkgParam);
+
 }

+ 46 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/CouponPkgServiceImpl.java

@@ -1,5 +1,7 @@
 package com.qs.mp.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.qs.mp.admin.domain.CouponPkg;
 import com.qs.mp.admin.domain.CouponPkgItem;
@@ -9,6 +11,7 @@ import com.qs.mp.admin.mapper.CouponPkgMapper;
 import com.qs.mp.admin.service.ICouponPkgItemService;
 import com.qs.mp.admin.service.ICouponPkgService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.mp.common.enums.CouponPkgStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -33,6 +37,47 @@ public class CouponPkgServiceImpl extends ServiceImpl<CouponPkgMapper, CouponPkg
     private ICouponPkgItemService couponPkgItemService;
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateCouponPkg(CouponPkgParam couponPkgParam) {
+
+        if (Objects.isNull(couponPkgParam.getId()) || couponPkgParam.getId() == 0) {
+            throw new ServiceException("券包ID不正确");
+        }
+
+        if (!CouponPkgStatusEnum.PUT_INIT.getValue().equals(couponPkgParam.getStatus())) {
+            throw new ServiceException("券包只有待上架才可编辑");
+        }
+
+
+        List<CouponPkgItemParam> couponPkgItemList = couponPkgParam.getCouponPkgItemList();
+        if (CollectionUtils.isEmpty(couponPkgItemList)) {
+            throw new ServiceException("券包明细不能为空");
+        }
+
+        // 清除券包明细
+        couponPkgItemService.remove(new LambdaQueryWrapper<CouponPkgItem>()
+                .eq(CouponPkgItem::getCouponPkgId, couponPkgParam.getId()));
+
+        // 更新券包
+        CouponPkg couponPkg = new CouponPkg();
+        BeanUtils.copyProperties(couponPkgParam, couponPkg);
+        this.updateById(couponPkg);
+
+        // 创建券包明细
+        List<CouponPkgItem> params = new ArrayList<>();
+        for (CouponPkgItemParam couponPkgItemParam : couponPkgItemList) {
+            CouponPkgItem param = new CouponPkgItem();
+            param.setCouponPkgId(couponPkg.getId());
+            param.setCouponId(couponPkgItemParam.getCouponId());
+            param.setCouponNum(couponPkgItemParam.getCouponNum());
+            params.add(param);
+        }
+        couponPkgItemService.saveBatch(params);
+
+        return true;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean create(CouponPkgParam couponPkgParam) {
@@ -51,6 +96,7 @@ public class CouponPkgServiceImpl extends ServiceImpl<CouponPkgMapper, CouponPkg
             CouponPkgItem param = new CouponPkgItem();
             param.setCouponPkgId(couponPkg.getId());
             param.setCouponId(couponPkgItemParam.getCouponId());
+            param.setCouponNum(couponPkgItemParam.getCouponNum());
             params.add(param);
         }
         couponPkgItemService.saveBatch(params);