Преглед изворни кода

feat: 根据登录用户查询所属部门开通的快递业务;

hanchaolong пре 3 недеља
родитељ
комит
a494c4c5bb

+ 10 - 28
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WxMiniController.java

@@ -8,9 +8,11 @@ import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.front.service.IWxService;
 import com.ruoyi.logistics.domain.SysDeptRate;
 import com.ruoyi.logistics.service.ISysDeptRateService;
+import com.ruoyi.system.api.domain.SysDictData;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysDictTypeService;
 import com.ruoyi.system.service.ISysPermissionService;
 import com.ruoyi.system.service.ISysUserService;
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -18,10 +20,11 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * WX-用户信息管理
@@ -42,9 +45,6 @@ public class WxMiniController {
     @Autowired
     private ISysConfigService configService;
 
-    @Autowired
-    private ISysDeptRateService sysDeptRateService;
-
     @InnerAuth
     @GetMapping("/getOpenId")
     public R<String> getOpenId(@RequestParam("jsCode") String jsCode) {
@@ -104,27 +104,9 @@ public class WxMiniController {
         SysUser user = loginUser.getSysUser();
         AjaxResult ajax = AjaxResult.success();
         ajax.put("user", user);
-    
-        SysDeptRate sysDeptRate = new SysDeptRate();
-        sysDeptRate.setDeptId(user.getDeptId());
-        List<SysDeptRate> sysDeptRates = sysDeptRateService.selectSysDeptRateList(sysDeptRate);
-            
-        // 判断物流公司类型是否存在
-        Map<String, Boolean> companyTypeMap = new HashMap<>();
-        companyTypeMap.put("jd", false);
-        companyTypeMap.put("sf", false);
-            
-        if (CollectionUtils.isNotEmpty(sysDeptRates)) {
-            for (SysDeptRate rate : sysDeptRates) {
-                if ("1".equals(rate.getCompanyType())) {
-                    companyTypeMap.put("jd", true);
-                } else if ("2".equals(rate.getCompanyType())) {
-                    companyTypeMap.put("sf", true);
-                }
-            }
-        }
-            
-        ajax.put("menu", companyTypeMap);
+
+        sysUserService.loginUserExtendInfo(ajax, user.getDeptId());
+
         return ajax;
     }
 

+ 1 - 20
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/controller/SysUserController.java

@@ -208,27 +208,8 @@ public class SysUserController extends BaseController
         ajax.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate()));
         ajax.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate()));
 
+        userService.loginUserExtendInfo(ajax, user.getDeptId());
 
-        SysDeptRate sysDeptRate = new SysDeptRate();
-        sysDeptRate.setDeptId(user.getDeptId());
-        List<SysDeptRate> sysDeptRates = sysDeptRateService.selectSysDeptRateList(sysDeptRate);
-
-        // 判断物流公司类型是否存在
-        Map<String, Boolean> companyTypeMap = new HashMap<>();
-        companyTypeMap.put("jd", false);
-        companyTypeMap.put("sf", false);
-
-        if (CollectionUtils.isNotEmpty(sysDeptRates)) {
-            for (SysDeptRate rate : sysDeptRates) {
-                if ("1".equals(rate.getCompanyType())) {
-                    companyTypeMap.put("jd", true);
-                } else if ("2".equals(rate.getCompanyType())) {
-                    companyTypeMap.put("sf", true);
-                }
-            }
-        }
-
-        ajax.put("menu", companyTypeMap);
         return ajax;
     }
 

+ 9 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.domain.dto.UserImportDTO;
 
@@ -230,4 +232,11 @@ public interface ISysUserService
      * @return 用户对象信息
      */
     public SysUser selectUserByPhoneNumber(String phoneNumber);
+
+    /**
+     * 登录用户信息扩展
+     *
+     * @param ajax 登录用户信息
+     */
+    public void loginUserExtendInfo(AjaxResult ajax, Long deptId);
 }

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

@@ -1,15 +1,23 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
 
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.logistics.config.GemaiyunSmsConfig;
+import com.ruoyi.logistics.domain.SysDeptRate;
+import com.ruoyi.logistics.service.ISysDeptRateService;
 import com.ruoyi.logistics.util.GemaiyunSmsUtil;
 import com.ruoyi.logistics.util.PasswordUtils;
 
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.system.api.domain.SysDictData;
+import com.ruoyi.system.service.ISysDictTypeService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,6 +88,12 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     private GemaiyunSmsConfig smsConfig;
 
+    @Autowired
+    private ISysDeptRateService sysDeptRateService;
+
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
     /**
      * 根据条件分页查询用户列表
      * 
@@ -707,4 +721,40 @@ public class SysUserServiceImpl implements ISysUserService
     public SysUser selectUserByPhoneNumber(String phoneNumber) {
         return userMapper.selectUserByPhoneNumber(phoneNumber);
     }
+
+    @Override
+    public void loginUserExtendInfo(AjaxResult ajax, Long deptId) {
+
+        SysDeptRate sysDeptRate = new SysDeptRate();
+        sysDeptRate.setDeptId(deptId);
+        List<SysDeptRate> sysDeptRates = sysDeptRateService.selectSysDeptRateList(sysDeptRate);
+
+        List<SysDictData> dict = dictTypeService.selectDictDataByType("jd_logistics_product_code");
+        dict.addAll(dictTypeService.selectDictDataByType("sf_logistics_product_code"));
+        Map<String, SysDictData> collect = dict.stream().collect(Collectors.toMap(SysDictData::getDictValue, Function.identity()));
+
+
+        // 判断物流公司类型是否存在
+        Map<String, Boolean> companyTypeMap = new HashMap<>();
+        companyTypeMap.put("jd", false);
+        companyTypeMap.put("sf", false);
+
+        List<SysDictData> jdDict = new ArrayList<>();
+        List<SysDictData> sfDict = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(sysDeptRates)) {
+            for (SysDeptRate rate : sysDeptRates) {
+                if ("1".equals(rate.getCompanyType())) {
+                    companyTypeMap.put("jd", true);
+                    jdDict.add(collect.get(rate.getProductType()));
+                } else if ("2".equals(rate.getCompanyType())) {
+                    companyTypeMap.put("sf", true);
+                    sfDict.add(collect.get(rate.getProductType()));
+                }
+            }
+        }
+        ajax.put("menu", companyTypeMap);
+
+        ajax.put("jdDict", jdDict);
+        ajax.put("sfDict", sfDict);
+    }
 }