Przeglądaj źródła

商品名称判重

yzc 2 lat temu
rodzic
commit
7cb774763f

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java

@@ -307,11 +307,11 @@ public class KwpWantBuyService {
     public void dels(WantBuyDels param) {
         List<Long> ids = StringUtils.splitStrToList(param.getIds(), Long.class);
         LambdaQueryWrapper<KwoWantBuy> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(KwoWantBuy::getId, ids).eq(KwoWantBuy::getStatus, 0)
+        wrapper.in(KwoWantBuy::getId, ids).ne(KwoWantBuy::getStatus, 1)
                 .eq(KwoWantBuy::getEntId, LoginUserHolder.getEntId()).eq(KwoWantBuy::getDelFlag, Global.NO);
         List<KwoWantBuy> list = kwpWantBuyMapper.selectList(wrapper);
         if (!Objects.equals(ids.size(), list.size())) {
-            throw new BusinessException("删除操作仅针对“草稿”状态的单据");
+            throw new BusinessException("删除操作仅针对“已下架”“草稿”状态的单据");
         }
         LambdaUpdateWrapper<KwoWantBuy> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(KwoWantBuy::getDelFlag, Global.YES).in(KwoWantBuy::getId, ids);

+ 13 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/KwpGoodsController.java

@@ -225,4 +225,17 @@ public class KwpGoodsController {
         kwpGoodsService.updateAmount(param);
         return HttpResult.ok("更新商品库存成功");
     }
+
+    /**
+     * @desc: 商品名称判重
+     * @author: yzc
+     * @date: 2023-08-16 15:24
+     * @Param name:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @Log(description = "商品名称判重")
+    @GetMapping("/nameDuplicationJudgment")
+    public HttpResult nameDuplicationJudgment(@RequestParam String name) {
+        return HttpResult.ok("商品名称判重成功", kwpGoodsService.nameDuplicationJudgment(name, null));
+    }
 }

+ 2 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsDraftParam.java

@@ -6,6 +6,7 @@ import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
 
@@ -25,6 +26,7 @@ public class AddGoodsDraftParam {
      * 商品名称
      */
     @Length(max = 50, message = "商品名称最多支持50字")
+    @NotBlank(message= "商品名称不能为空")
     private String name;
 
     /**

+ 2 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java

@@ -7,6 +7,7 @@ import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
 
@@ -33,6 +34,7 @@ public class UpdateGoodsParam {
      * 商品名称
      */
     @Length(max = 50, message = "商品名称最多支持50字")
+    @NotBlank(message= "商品名称不能为空")
     private String name;
 
     /**

+ 28 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -82,6 +82,9 @@ public class KwpGoodsService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void addDraft(AddGoodsDraftParam param) {
+        if (nameDuplicationJudgment(param.getName(), null)) {
+            throw new BusinessException("已存在相同商品名称!");
+        }
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(param, KwpGoods.class);
         AddressInfo address = param.getAddressInfo();
@@ -106,6 +109,9 @@ public class KwpGoodsService {
         if (Objects.equals(param.getPrepaidLimit(), 1) && Objects.isNull(param.getAdvancePrice())) {
             throw new BusinessException("设置预付限额时,预付款最低限额不能为空!");
         }
+        if (nameDuplicationJudgment(param.getName(), null)) {
+            throw new BusinessException("已存在相同商品名称!");
+        }
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(param, KwpGoods.class);
         AddressInfo address = param.getAddressInfo();
@@ -258,6 +264,9 @@ public class KwpGoodsService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void update(UpdateGoodsParam param) {
+        if (nameDuplicationJudgment(param.getName(), param.getId())) {
+            throw new BusinessException("已存在相同商品名称!");
+        }
         KwpGoods goods = getGoodsById(param.getId());
         if (Objects.isNull(goods)) {
             throw new BusinessException("当前商品不存在!");
@@ -968,4 +977,23 @@ public class KwpGoodsService {
                 ne(KwpGoods::getStatus, GoodsStatusEnum.SAVED.getCode());
         return kwpGoodsMapper.selectCount(wrapper);
     }
+
+    /**
+     * @desc: 商品名称判重
+     * @author: yzc
+     * @date: 2023-08-16 15:24
+     * @Param name:
+     * @Param id:
+     * @return: java.lang.Boolean
+     */
+    public Boolean nameDuplicationJudgment(String name, Long id) {
+        LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwpGoods::getSupplyEntId, LoginUserHolder.getEntId())
+                .eq(KwpGoods::getName, name).eq(KwpGoods::getDelFlag, Global.NO);
+        if (Objects.nonNull(id)) {
+            wrapper.ne(KwpGoods::getId, id);
+        }
+        Long count = kwpGoodsMapper.selectCount(wrapper);
+        return Objects.nonNull(count) && count > 0L;
+    }
 }