Browse Source

no message

FengChaoYu 1 ngày trước cách đây
mục cha
commit
09a76b587a

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/controller/member/UserCompanyCreditController.java

@@ -101,7 +101,7 @@ public class UserCompanyCreditController {
         try {
             userCompanyCreditLogic.billRepay(billId, userCompanyCreditId, amount);
             return ResponseHelper.success();
-        }finally {
+        } finally {
             obtain.unlock();
         }
     }

+ 49 - 31
mall-server-api/src/main/java/com/gree/mall/manager/logic/user/UserLogic.java

@@ -477,12 +477,17 @@ public class UserLogic {
 
     @Transactional
     public void companyDeliveryAdd(UserCompanyDeliveryAddBean bean) {
+        if (CollectionUtil.isEmpty(bean.getStorageIds())) {
+            throw new RemoteServiceException("至少选择一个仓库");
+        }
         AdminUserCom adminUser = commonLogic.getAdminUser();
 
         User user = userService.lambdaQuery()
                 .eq(User::getMobile, bean.getMobile())
                 .one();
 
+
+        List<UserCompanyDeliveryRela> relaList = new ArrayList<>();
         if (Objects.isNull(user)) {
             // 没有生成数据到user表
             final String userId = IdWorker.getIdStr();
@@ -495,48 +500,61 @@ public class UserLogic {
                     .setType(UserTypeEnum.WORKER.getKey());
 
             user.insert();
+
+            UserCompanyDelivery delivery = new UserCompanyDelivery();
+
+            delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
+                    .setUserId(user.getUserId())
+                    .setAllStorage(false)
+                    .insert();
         } else {
             final Integer count = userCompanyDeliveryService.lambdaQuery()
                     .eq(UserCompanyDelivery::getCompanyWechatId, adminUser.getCompanyWechatId())
                     .eq(UserCompanyDelivery::getUserId, user.getUserId())
                     .count();
 
+            // 已存在的配送员
             if (count > 0) {
-                throw new RemoteServiceException("配送员重复添加,请检查");
+                // 找出历史的仓库关系
+                final List<UserCompanyDeliveryRela> existsRelaList = userCompanyDeliveryRelaService.lambdaQuery()
+                        .eq(UserCompanyDeliveryRela::getCompanyWechatId, adminUser.getCompanyWechatId())
+                        .eq(UserCompanyDeliveryRela::getUserId, user.getUserId())
+                        .list();
+
+                final List<String> existsList = existsRelaList.stream().map(UserCompanyDeliveryRela::getStorageId).collect(Collectors.toList());
+
+                for (String beanStorageId : bean.getStorageIds()) {
+                    if (existsList.contains(beanStorageId)) {
+                        continue;
+                    }
+                    UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
+                    rela.setUserId(user.getUserId())
+                            .setCompanyWechatId(adminUser.getCompanyWechatId())
+                            .setStorageId(beanStorageId);
+                    relaList.add(rela);
+                }
+            } else {
+                // 不存在的配送员
+                UserCompanyDelivery delivery = new UserCompanyDelivery();
+
+                delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
+                        .setUserId(user.getUserId())
+                        .setAllStorage(false)
+                        .insert();
+
+                for (String beanStorageId : bean.getStorageIds()) {
+                    UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
+                    rela.setUserId(user.getUserId())
+                            .setCompanyWechatId(adminUser.getCompanyWechatId())
+                            .setStorageId(beanStorageId);
+                    relaList.add(rela);
+                }
             }
         }
 
-        UserCompanyDelivery delivery = new UserCompanyDelivery();
-
-        delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
-                .setUserId(user.getUserId())
-                .setAllStorage(CollectionUtil.isEmpty(bean.getStorageIds()))
-                .insert();
-
-        List<UserCompanyDeliveryRela> relaList = new ArrayList<>();
-        if (delivery.getAllStorage()) {
-            // 全部仓储
-            final List<Storage> storages = storageService.lambdaQuery()
-                    .eq(Storage::getCompanyWechatId, delivery.getCompanyWechatId())
-                    .list();
-            for (Storage storage : storages) {
-                UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
-                rela.setUserId(user.getUserId())
-                        .setCompanyWechatId(delivery.getCompanyWechatId())
-                        .setStorageId(storage.getStorageId());
-                relaList.add(rela);
-            }
-        } else {
-            for (String storageId : bean.getStorageIds()) {
-                UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
-                rela.setUserId(user.getUserId())
-                        .setCompanyWechatId(delivery.getCompanyWechatId())
-                        .setStorageId(storageId);
-                relaList.add(rela);
-            }
+        if (CollectionUtil.isNotEmpty(relaList)) {
+            userCompanyDeliveryRelaService.saveBatch(relaList);
         }
-
-        userCompanyDeliveryRelaService.saveBatch(relaList);
     }
 
     @Transactional