From c10d897c5d72fe80f271acbd909107e42dccff1c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 12 九月 2022 16:15:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/service/CstmrService.java          |    4 +
 src/main/java/com/zy/crm/manager/controller/CstmrController.java    |    9 +++-
 src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java |   27 ++++++++++++-
 src/main/resources/mapper/CstmrMapper.xml                           |   16 +++++++
 src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java            |    5 ++
 5 files changed, 53 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/CstmrController.java b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
index c28bbc8..41bd8d0 100644
--- a/src/main/java/com/zy/crm/manager/controller/CstmrController.java
+++ b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
@@ -9,6 +9,7 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.crm.common.web.BaseController;
 import com.zy.crm.manager.entity.Cstmr;
 import com.zy.crm.manager.service.CstmrService;
@@ -61,8 +62,12 @@
     @RequestMapping(value = "/cstmr/add/auth")
     @ManagerAuth
     public R add(Cstmr cstmr) {
-        cstmr.setHostId(getHostId());
-        cstmr.setUuid(cstmrService.getNextUuid());  // 瀹㈡埛浠e彿
+        Long hostId = getHostId();
+        if (cstmrService.selectByUuid(hostId, cstmr.getUuid()) != null) {
+            throw new CoolException("瀹㈡埛宸插瓨鍦�");
+        }
+        cstmr.setHostId(hostId);
+        cstmr.setUuid(cstmrService.getNextUuid(hostId));  // 瀹㈡埛浠e彿
         cstmr.setDeptId(getDeptId());               // 鎵�灞為儴闂�
         cstmr.setUserId(getUserId());               // 鎵�灞炰汉鍛�
 
diff --git a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
index 1c6dae2..7cd6702 100644
--- a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
+++ b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
@@ -3,12 +3,15 @@
 import com.zy.crm.manager.entity.Cstmr;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 @Mapper
 @Repository
 public interface CstmrMapper extends BaseMapper<Cstmr> {
 
-    Cstmr selectCstmrByNewestUuid();
+    Cstmr selectByUuid(@Param("hostId") Long hostId, @Param("uuid") String uuid);
+
+    Cstmr selectCstmrByNewestUuid(Long hostId);
 
 }
diff --git a/src/main/java/com/zy/crm/manager/service/CstmrService.java b/src/main/java/com/zy/crm/manager/service/CstmrService.java
index 5c75aba..30a7584 100644
--- a/src/main/java/com/zy/crm/manager/service/CstmrService.java
+++ b/src/main/java/com/zy/crm/manager/service/CstmrService.java
@@ -5,6 +5,8 @@
 
 public interface CstmrService extends IService<Cstmr> {
 
-    String getNextUuid();
+    Cstmr selectByUuid(Long hostId, String uuid);
+
+    String getNextUuid(Long hostId);
 
 }
diff --git a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
index 8af1c89..d0b29a8 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
@@ -10,11 +10,32 @@
 public class CstmrServiceImpl extends ServiceImpl<CstmrMapper, Cstmr> implements CstmrService {
 
     @Override
-    public String getNextUuid() {
-        Cstmr cstmr = this.baseMapper.selectCstmrByNewestUuid();
+    public Cstmr selectByUuid(Long hostId, String uuid) {
+        return this.baseMapper.selectByUuid(hostId, uuid);
+    }
+
+    @Override
+    public String getNextUuid(Long hostId) {
+        Cstmr cstmr = this.baseMapper.selectCstmrByNewestUuid(hostId);
         if (cstmr == null) {
             return "0001";
         }
-        return String.valueOf(Integer.parseInt(cstmr.getUuid()) + 1);
+        return zerofill(String.valueOf(Integer.parseInt(cstmr.getUuid()) + 1), 4);
     }
+
+
+    public static String zerofill(String msg, Integer count){
+        if (msg.length() == count){
+            return msg;
+        } else if (msg.length() > count){
+            return msg.substring(0, 16);
+        } else {
+            StringBuilder msgBuilder = new StringBuilder(msg);
+            for (int i = 0; i<count-msg.length(); i++){
+                msgBuilder.insert(0,"0");
+            }
+            return msgBuilder.toString();
+        }
+    }
+
 }
diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index 8279834..17f5dc6 100644
--- a/src/main/resources/mapper/CstmrMapper.xml
+++ b/src/main/resources/mapper/CstmrMapper.xml
@@ -33,8 +33,22 @@
 
     </resultMap>
 
+    <select id="selectByUuid" resultMap="BaseResultMap">
+        select * from man_cstmr
+        where 1=1
+        and uuid = #{uuid}
+        <if test="hostId != null">
+            and host_id = #{hostId}
+        </if>
+    </select>
+
     <select id="selectCstmrByNewestUuid" resultMap="BaseResultMap">
-        select * from man_cstmr where 1=1 order by uuid + 0 desc
+        select * from man_cstmr
+        where 1=1
+        <if test="hostId != null">
+            and host_id = #{hostId}
+        </if>
+        order by uuid + 0 desc
     </select>
 
 </mapper>

--
Gitblit v1.9.1