From 0b459f932333ab6b67fe5aaac6b8bff871ada5f6 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 16 Feb 2023 14:54:53 +0800
Subject: [PATCH] 运费模板指定省份不能重复

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java     |    7 +++++++
 src/main/resources/templates/febs/views/modules/goods/carriageRuleAdd.html    |   11 +++++++----
 src/main/resources/templates/febs/views/modules/goods/carriageRuleUpdate.html |   10 ++++++++--
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallCarriageRuleVo.java             |    2 ++
 4 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 94b3d3e..ee9826b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -672,6 +672,7 @@
 
         List<MallCarriageRuleInfo> mallCarriageRuleInfos = mallCarriageRuleInfoMapper.selectMallCarriageRuleInfoByRuleIdAndAreaAddress(id,null);
         if(CollUtil.isNotEmpty(mallCarriageRuleInfos)){
+            StringBuffer areaAddressStr = new StringBuffer();
             List<AdminMallCarriageRuleInfoVo> adminCarriageRuleInfoVos = new ArrayList<>();
             for(MallCarriageRuleInfo mallCarriageRuleInfo : mallCarriageRuleInfos){
                 if(StrUtil.isNotEmpty(mallCarriageRuleInfo.getAreaAddress())){
@@ -683,6 +684,8 @@
                     adminMallCarriageRuleInfoVo.setMoreCnt(mallCarriageRuleInfo.getMoreCnt());
                     adminMallCarriageRuleInfoVo.setMorePrice(mallCarriageRuleInfo.getMorePrice());
                     adminCarriageRuleInfoVos.add(adminMallCarriageRuleInfoVo);
+
+                    areaAddressStr.append(mallCarriageRuleInfo.getAreaAddress());
                 }else{
                     //默认规则
                     adminMallCarriageRuleVo.setBasicCntDefault(mallCarriageRuleInfo.getBasicCnt());
@@ -693,6 +696,7 @@
                 }
             }
             adminMallCarriageRuleVo.setAdminCarriageRuleInfoVos(adminCarriageRuleInfoVos);
+            adminMallCarriageRuleVo.setAreaAddressStr(areaAddressStr.toString());
         }
         return adminMallCarriageRuleVo;
     }
@@ -715,6 +719,9 @@
             }
             return new FebsResponse().fail().message(goodsNameBuffer+"正在使用当前模板,请先下架商品");
         }
+
+        mallCarriageRule.setName(adminCarriageRuleUpdateDto.getRuleName());
+        mallCarriageRuleMapper.updateById(mallCarriageRule);
         //删除现有的所有运费模板子表数据
         List<MallCarriageRuleInfo> mallCarriageRuleInfos = mallCarriageRuleInfoMapper.selectMallCarriageRuleInfoByRuleIdAndAreaAddress(id, null);
         if(CollUtil.isNotEmpty(mallCarriageRuleInfos)){
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallCarriageRuleVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallCarriageRuleVo.java
index 0d563ae..6e3b185 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallCarriageRuleVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallCarriageRuleVo.java
@@ -26,4 +26,6 @@
 
     private List<AdminMallCarriageRuleInfoVo> adminCarriageRuleInfoVos;
 
+    private String areaAddressStr;
+
 }
diff --git a/src/main/resources/templates/febs/views/modules/goods/carriageRuleAdd.html b/src/main/resources/templates/febs/views/modules/goods/carriageRuleAdd.html
index 04413db..2991ed9 100644
--- a/src/main/resources/templates/febs/views/modules/goods/carriageRuleAdd.html
+++ b/src/main/resources/templates/febs/views/modules/goods/carriageRuleAdd.html
@@ -163,7 +163,7 @@
                 {name: '澳门特别行政区',value: 34,selected:false},
             ],
         })
-
+        let provinceChoiceExist = "";
         $('#test3').on('click', function (){
             let provinceChoice = provinceSet.getValue('name');
             if(provinceChoice == null || provinceChoice == ""){
@@ -171,12 +171,15 @@
                 return false;
             }
             let provinceChoiceStr = "";
-            console.log(provinceChoice);
             for (let i = 0; i < provinceChoice.length; i++) {
+                //判断字符串是否出现过  =-1则没有出现
+                if(provinceChoiceExist.indexOf(provinceChoice[i]) != -1){
+                    febs.alert.warn('['+provinceChoice[i]+'],指定省份不能重复');
+                    return false;
+                }
                 provinceChoiceStr = provinceChoiceStr + provinceChoice[i]+",";
+                provinceChoiceExist = provinceChoiceExist + provinceChoiceStr;
             }
-
-            console.log(provinceChoiceStr);
             let data = {};
             data.areaAddress = provinceChoiceStr;
             data.basicCnt = 1;
diff --git a/src/main/resources/templates/febs/views/modules/goods/carriageRuleUpdate.html b/src/main/resources/templates/febs/views/modules/goods/carriageRuleUpdate.html
index 829a14f..8f43ec4 100644
--- a/src/main/resources/templates/febs/views/modules/goods/carriageRuleUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/goods/carriageRuleUpdate.html
@@ -167,6 +167,7 @@
             ],
         })
 
+        let provinceChoiceExist = "";
         $('#test3').on('click', function (){
             let provinceChoice = provinceSet.getValue('name');
             if(provinceChoice == null || provinceChoice == ""){
@@ -174,12 +175,16 @@
                 return false;
             }
             let provinceChoiceStr = "";
-            console.log(provinceChoice);
             for (let i = 0; i < provinceChoice.length; i++) {
+                //判断字符串是否出现过  =-1则没有出现
+                if(provinceChoiceExist.indexOf(provinceChoice[i]) != -1){
+                    febs.alert.warn('['+provinceChoice[i]+'],指定省份不能重复');
+                    return false;
+                }
                 provinceChoiceStr = provinceChoiceStr + provinceChoice[i]+",";
+                provinceChoiceExist = provinceChoiceExist + provinceChoiceStr;
             }
 
-            console.log(provinceChoiceStr);
             let data = {};
             data.areaAddress = provinceChoiceStr;
             data.basicCnt = 1;
@@ -224,6 +229,7 @@
                 "moreCntDefault": carriageRule.moreCntDefault,
                 "morePriceDefault": carriageRule.morePriceDefault
             });
+            provinceChoiceExist = carriageRule.areaAddressStr;
             let carriageRuleInfos = carriageRule.adminCarriageRuleInfoVos;
             if(Array.isArray(carriageRuleInfos) && carriageRuleInfos.length){
                 for (let i = 0; i < carriageRuleInfos.length; i++) {

--
Gitblit v1.9.1