Просмотр исходного кода

feat: 地址簿增加唯一校验;

hanchaolong 1 день назад
Родитель
Сommit
78671eec7b

+ 16 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizAddressBookServiceImpl.java

@@ -1,9 +1,12 @@
 package com.ruoyi.logistics.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.logistics.mapper.BizAddressBookMapper;
@@ -63,6 +66,13 @@ public class BizAddressBookServiceImpl implements IBizAddressBookService
         bizAddressBook.setCreateTime(DateUtils.getNowDate());
         bizAddressBook.setCreateBy(loginUser.getUsername());
 
+
+        List<BizAddressBook> bizAddressBooks = bizAddressBookMapper.selectBizAddressBookList(bizAddressBook);
+        if (CollectionUtils.isNotEmpty(bizAddressBooks)) {
+            throw new ServiceException("地址已存在");
+        }
+
+
         if ("1".equals(bizAddressBook.getDefaultFlag())) {
             bizAddressBookMapper.updateBizAddressBookDefault(loginUser.getUserid());
         }
@@ -86,6 +96,12 @@ public class BizAddressBookServiceImpl implements IBizAddressBookService
         bizAddressBook.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
         bizAddressBook.setUpdateTime(DateUtils.getNowDate());
 
+        bizAddressBook.setUserId(loginUser.getUserid());
+        List<BizAddressBook> bizAddressBooks = bizAddressBookMapper.selectBizAddressBookList(bizAddressBook);
+        if (CollectionUtils.isNotEmpty(bizAddressBooks)) {
+            throw new ServiceException("地址已存在");
+        }
+
         if ("1".equals(bizAddressBook.getDefaultFlag())) {
             bizAddressBookMapper.updateBizAddressBookDefault(loginUser.getUserid());
         }

+ 20 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java

@@ -23,10 +23,12 @@ import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.dto.OrderStatisticsDto;
 import com.ruoyi.logistics.domain.dto.RecentAddressDto;
 import com.ruoyi.logistics.enums.OrderStatusEnum;
+import com.ruoyi.logistics.mapper.BizAddressBookMapper;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
 import com.ruoyi.logistics.service.LogisticsOrderService;
 import com.ruoyi.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -60,6 +62,9 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
     @Autowired
     private RedisService redisService;
 
+    @Autowired
+    private BizAddressBookMapper bizAddressBookMapper;
+
     /**
      * 查询运单管理
      * 
@@ -278,6 +283,20 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
         if (provinceName == null || cityName == null || contactName == null || contactPhone == null) {
             return; //基信息不完整,不保存
         }
+
+        BizAddressBook bizAddressBook = new BizAddressBook();
+        bizAddressBook.setUserId(userId);
+        bizAddressBook.setContactName(contactName);
+        bizAddressBook.setContactPhone(contactPhone);
+        bizAddressBook.setProvinceName(provinceName);
+        bizAddressBook.setCityName(cityName);
+        bizAddressBook.setCountyName(countyName);
+        bizAddressBook.setDetailedAddress(detailedAddress);
+
+        List<BizAddressBook> bizAddressBooks = bizAddressBookMapper.selectBizAddressBookList(bizAddressBook);
+        if (CollectionUtils.isEmpty(bizAddressBooks)) {
+            bizAddressBookMapper.insertBizAddressBook(bizAddressBook);
+        }
         
         //构造Redis key
         String redisKey = RedisCacheConstants.USER_RECENT_ADDRESS_CACHE_KEY + userId;
@@ -290,7 +309,7 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
         addressDto.setDetailedAddress(detailedAddress);
         addressDto.setContactName(contactName);
         addressDto.setContactPhone(contactPhone);
-        
+
         // 获取当前列表
         List<RecentAddressDto> addressList = redisService.getCacheList(redisKey);
         if (addressList == null) {