瀏覽代碼

特定价格

zoujiajian 3 年之前
父節點
當前提交
9a65e4db2b

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -123,6 +123,16 @@ public class GoodsDonSku extends BaseEntity {
      */
     private Boolean isDp;
 
+    /**
+     * 特定价格
+     */
+    private BigDecimal specificPrice;
+
+    /**
+     * 特定平台购买用户人群
+     */
+    private String specificGoodsIds;
+
     /**
      * 优惠加购商品规格展示
      */

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -91,6 +91,16 @@ public class ReqGoodsSkuInsert {
          */
         private List<GoodsDiscountPlusPurchaseRelation> dpSku;
 
+        /**
+         * 特定价格
+         */
+        private String specificPrice;
+
+        /**
+         * 特定平台购买用户人群
+         */
+        private String specificGoodsIds;
+
     }
 
 }

+ 15 - 0
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonSpecServiceImpl.java

@@ -219,6 +219,21 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
 				if (sku.getMonths() == null && sku.getDays() == null)
 					throw BusinessRuntimeException.getInstance("请输入对应续费时间");
 			}
+			String specificGoodsIds = goodsDonSku.getSpecificGoodsIds();
+			if (StrUtil.isNotBlank(specificGoodsIds)) {
+				Set<Long> specificGids = Jsons.parseSet(specificGoodsIds, Long.class);
+				Integer count = goodsDonMapper.selectCount(Wrappers.lambdaQuery(GoodsDon.class)
+						.in(GoodsDon::getId, specificGids)
+						.eq(GoodsDon::getStatus, true)
+						.eq(GoodsDon::getDeleted, true));
+				if (count != specificGids.size()) {
+					throw BusinessRuntimeException.getInstance("存在被删除或已下架的平台");
+				}
+				BigDecimal specificPrice = goodsDonSku.getSpecificPrice();
+				if (specificPrice == null || specificPrice.compareTo(BigDecimal.ZERO) <= 0) {
+					throw BusinessRuntimeException.getInstance("请输入正确的特定价格");
+				}
+			}
 			goodsDonSkuMapper.insert(goodsDonSku);
 
 		}

+ 22 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonSkuController.java

@@ -1,8 +1,11 @@
 package com.cyksj.web.controller.manage.goods;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
@@ -25,6 +28,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Set;
 
@@ -104,7 +108,7 @@ public class CmsGoodsDonSkuController {
     @Transactional(rollbackFor = Throwable.class)
     @PutMapping(value = "/update")
     @Log(module = "平台管理/编辑规格", businessType = BusinessType.PUT, isSaveRequestData = true)
-    public Result<String> skuUpdate(@RequestBody GoodsDonSku sku){
+    public Result<String> skuUpdate(@RequestBody GoodsDonSku sku) throws Exception {
         Long goodsId = sku.getGoodsId();
         GoodsDon goods = goodsDonService.getById(goodsId);
         if (goods.getType() == 1) {
@@ -119,6 +123,23 @@ public class CmsGoodsDonSkuController {
         if (sku.getDays() == null) {
             sku.setDays(null);
         }
+        String specificGoodsIds = sku.getSpecificGoodsIds();
+        if (StrUtil.isEmpty(specificGoodsIds)) {
+            sku.setSpecificPrice(BigDecimal.ZERO);
+        } else {
+            Set<Long> specificGids = Jsons.parseSet(specificGoodsIds, Long.class);
+            Integer count = goodsDonService.count(Wrappers.lambdaQuery(GoodsDon.class)
+                    .in(GoodsDon::getId, specificGids)
+                    .eq(GoodsDon::getStatus, true)
+                    .eq(GoodsDon::getDeleted, true));
+            if (count != specificGids.size()) {
+                throw BusinessRuntimeException.getInstance("存在被删除或已下架的平台");
+            }
+            BigDecimal specificPrice = sku.getSpecificPrice();
+            if (specificPrice == null || specificPrice.compareTo(BigDecimal.ZERO) <= 0) {
+                throw BusinessRuntimeException.getInstance("请输入正确的特定价格");
+            }
+        }
         //优惠加购
         goodsDonSkuService.handleDiscountPurchaseGoods(sku, sku.getDpSku());
         goodsDonSkuService.saveOrUpdate(sku);