From a1416117c7478a66971cca278e9909811e0000d5 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 20 九月 2024 17:07:14 +0800
Subject: [PATCH] fix:商品限购

---
 src/main/resources/mapper/flower/FlowerMapper.xml                   |    6 ++++++
 src/main/java/com/mzl/flower/dto/request/flower/FlowerQueryDTO.java |    3 +++
 src/main/java/com/mzl/flower/service/flower/FlowerService.java      |   24 ++++++++++++++++++++++--
 3 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/flower/FlowerQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/flower/FlowerQueryDTO.java
index 6fb8dd4..3e78500 100644
--- a/src/main/java/com/mzl/flower/dto/request/flower/FlowerQueryDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/flower/FlowerQueryDTO.java
@@ -36,4 +36,7 @@
 
     @ApiModelProperty(hidden = true)
     private List<String> statusList;
+
+    @ApiModelProperty(value = "是否限购")
+    private Boolean isLimited;
 }
diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerService.java b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
index 3a25854..9cc9169 100644
--- a/src/main/java/com/mzl/flower/service/flower/FlowerService.java
+++ b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
@@ -247,7 +247,17 @@
     public Long editFlowerAdmin(FlowerUpdateAdminDTO dto){
         Flower g = flowerMapper.selectById(dto.getId());
         g.setSales(dto.getSales());
-        g.setLimited(dto.getLimited());
+        if (!org.springframework.util.StringUtils.isEmpty(dto.getLimited())) {
+            if (g.getStock() == 0 || org.springframework.util.StringUtils.isEmpty(g.getStock())) {
+                throw new ValidationException("库存为0或者空时不能修改限购数量");
+            }
+            if(g.getStock()<dto.getLimited()){
+                throw new ValidationException("限购数量不能大于库存");
+            }
+            g.setLimited(dto.getLimited());
+        }else{
+            g.setLimited(null);
+        }
         g.update(SecurityUtils.getUserId());
         flowerMapper.updateById(g);
 
@@ -884,7 +894,17 @@
         }
         for (Long id : ids) {
             Flower f = flowerMapper.selectById(id);
-            f.setLimited(dto.getLimited());
+            if (!org.springframework.util.StringUtils.isEmpty(dto.getLimited())) {
+                if (f.getStock() == 0 || org.springframework.util.StringUtils.isEmpty(f.getStock())) {
+                    throw new ValidationException("商品" + f.getName() + "库存为0或者空时不能修改限购数量");
+                }
+                if(f.getStock()<dto.getLimited()){
+                    throw new ValidationException("商品" + f.getName() + "限购数量不能大于库存");
+                }
+                f.setLimited(dto.getLimited());
+            }else{
+                f.setLimited(null);
+            }
             flowerMapper.updateById(f);
         }
     }
diff --git a/src/main/resources/mapper/flower/FlowerMapper.xml b/src/main/resources/mapper/flower/FlowerMapper.xml
index 308869c..1da83a9 100644
--- a/src/main/resources/mapper/flower/FlowerMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMapper.xml
@@ -45,6 +45,12 @@
         <if test="condition.recommend != null and !condition.recommend">
             AND (f.recommend = 0 or f.recommend is null)
         </if>
+        <if test="condition.isLimited != null and condition.isLimited">
+            AND f.limited > 0
+        </if>
+        <if test="condition.isLimited != null and !condition.isLimited">
+            AND (f.limited = 0 or f.limited is null)
+        </if>
         <if test="condition.statusList != null and condition.statusList.size > 0">
             and f.status in
             <foreach collection="condition.statusList" item="item" open="(" separator="," close=")">

--
Gitblit v1.9.3