浏览代码

Merge branch 'master' of http://101.36.160.140:21044/delivery-warehouse-java/delivery-depot-admin into liuj_pc_dev

liujing-123 2 周之前
父节点
当前提交
8cfc1ed95f
共有 18 个文件被更改,包括 340 次插入81 次删除
  1. 2 1
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskDkxxRespVO.java
  2. 2 1
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskDkxxSaveVO.java
  3. 22 0
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskKqxxRespVO.java
  4. 6 0
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskRespVO.java
  5. 8 2
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/dal/dataobject/dk/DkDO.java
  6. 19 0
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/dal/dataobject/spxx/SpxxDO.java
  7. 12 0
      delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/service/task/TaskServiceImpl.java
  8. 8 6
      delivery-module-core/delivery-module-core-biz/src/main/resources/mapper/dk/DkMapper.xml
  9. 1 1
      delivery-module-core/delivery-module-core-biz/src/main/resources/mapper/kshzs/KshzsMapper.xml
  10. 2 2
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/arealevel/AreaLevelController.java
  11. 22 0
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java
  12. 38 2
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/user/UserController.java
  13. 5 4
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/user/vo/user/UserSaveReqVO.java
  14. 3 0
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/dal/mysql/user/AdminUserMapper.java
  15. 2 2
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/arealevel/AreaLevelService.java
  16. 170 46
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/arealevel/AreaLevelServiceImpl.java
  17. 10 3
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/user/AdminUserService.java
  18. 8 11
      delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/user/AdminUserServiceImpl.java

+ 2 - 1
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskDkxxRespVO.java

@@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
7 7
 import lombok.Data;
8 8
 
9 9
 import java.time.LocalDateTime;
10
+import java.util.List;
10 11
 
11 12
 @Schema(description = "APP - 打卡信息 Response VO")
12 13
 @Data
@@ -30,6 +31,6 @@ public class TaskDkxxRespVO {
30 31
     private String dkdd;
31 32
 
32 33
     @Schema(description = "拍照信息多个逗号分隔','(INFRA_FILE.ID)")
33
-    private String pzxx;
34
+    private List<Long> pzxx;
34 35
 
35 36
 }

+ 2 - 1
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskDkxxSaveVO.java

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
5 5
 import lombok.Data;
6 6
 
7 7
 import java.time.LocalDateTime;
8
+import java.util.List;
8 9
 
9 10
 @Schema(description = "APP - 打卡信息 Response VO")
10 11
 @Data
@@ -28,7 +29,7 @@ public class TaskDkxxSaveVO {
28 29
     private String dkdd;
29 30
 
30 31
     @Schema(description = "拍照信息多个逗号分隔','(INFRA_FILE.ID)")
31
-    private String pzxx;
32
+    private List<Long> pzxx;
32 33
 
33 34
     @Schema(description = "打卡类型:1:省核验人,2:银行核验人")
34 35
     private Integer dkType;

+ 22 - 0
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskKqxxRespVO.java

@@ -3,6 +3,7 @@ package com.unis.module.coding.controller.admin.task.vo;
3 3
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
4 4
 import io.swagger.v3.oas.annotations.media.Schema;
5 5
 import lombok.Data;
6
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
6 7
 
7 8
 import java.math.BigDecimal;
8 9
 
@@ -43,4 +44,25 @@ public class TaskKqxxRespVO {
43 44
 
44 45
     @Schema(description = "库区图")
45 46
     private String resid;
47
+
48
+    @Schema(description = "社会信用代码")
49
+    private String shxydm;
50
+
51
+    @Schema(description = "库区编码")
52
+    private String kqbm;
53
+
54
+    @Schema(description = "库区地址-省")
55
+    private String sheng;
56
+
57
+    private Long userId;
58
+    /**
59
+     * 用户账号
60
+     */
61
+    private String username;
62
+    /**
63
+     * 加密后的密码
64
+     *
65
+     * 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐
66
+     */
67
+    private String password;
46 68
 }

+ 6 - 0
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/controller/admin/task/vo/TaskRespVO.java

@@ -51,4 +51,10 @@ public class TaskRespVO {
51 51
     @Schema(description = "核验数量")
52 52
     private Integer hyNum;
53 53
 
54
+    @Schema(description = "社会信用代码")
55
+    private String shxydm;
56
+
57
+    @Schema(description = "库区编码")
58
+    private String kqbm;
59
+
54 60
 }

+ 8 - 2
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/dal/dataobject/dk/DkDO.java

@@ -1,19 +1,23 @@
1 1
 package com.unis.module.coding.dal.dataobject.dk;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.KeySequence;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4 5
 import com.baomidou.mybatisplus.annotation.TableId;
5 6
 import com.baomidou.mybatisplus.annotation.TableName;
6 7
 import com.unis.framework.mybatis.core.dataobject.BaseDO;
8
+import com.unis.framework.mybatis.core.type.LongListTypeHandler;
9
+import io.swagger.v3.oas.annotations.media.Schema;
7 10
 import lombok.*;
8 11
 
9 12
 import java.time.LocalDateTime;
13
+import java.util.List;
10 14
 
11 15
 /**
12 16
  * 打卡信息 DO
13 17
  *
14 18
  * @author 超级管理员
15 19
  */
16
-@TableName("delivery_dk")
20
+@TableName(value = "delivery_dk",autoResultMap = true)
17 21
 @KeySequence("delivery_dk_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
18 22
 @Data
19 23
 @EqualsAndHashCode(callSuper = true)
@@ -47,7 +51,9 @@ public class DkDO extends BaseDO {
47 51
     /**
48 52
      * 拍照信息多个逗号分隔','(INFRA_FILE.ID)
49 53
      */
50
-    private String pzxx;
54
+    @TableField(typeHandler = LongListTypeHandler.class)
55
+    @Schema(description = "拍照信息多个逗号分隔','(INFRA_FILE.ID)")
56
+    private List<Long> pzxx;
51 57
     /** 打卡类型:1:省核验人,2:银行核验人 */
52 58
     private Integer dkType;
53 59
 

+ 19 - 0
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/dal/dataobject/spxx/SpxxDO.java

@@ -52,5 +52,24 @@ public class SpxxDO {
52 52
      * 是否在线
53 53
      */
54 54
     private Integer sfzx;
55
+    /**
56
+     * 监控点类型
57
+     */
58
+    private Integer jkdlx;
59
+    /**
60
+     * 所属区域路径
61
+     */
62
+    private String ssqylj;
63
+    /**
64
+     * 区域路径名称
65
+     */
66
+    private String qyljmc;
67
+    /**
68
+     * 所属区域路径名称
69
+     */
70
+    private String ssqyljmc;
71
+
72
+
73
+
55 74
 
56 75
 }

+ 12 - 0
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/service/task/TaskServiceImpl.java

@@ -32,6 +32,7 @@ import com.unis.module.core.enums.ErrorCodeConstants;
32 32
 import com.unis.module.core.enums.project.DeliveryHyState;
33 33
 import com.unis.module.system.api.permission.PermissionApi;
34 34
 import com.unis.module.system.enums.permission.RoleCodeEnum;
35
+import com.unis.module.system.service.user.AdminUserService;
35 36
 import lombok.extern.slf4j.Slf4j;
36 37
 import org.jetbrains.annotations.NotNull;
37 38
 import org.springframework.stereotype.Service;
@@ -77,6 +78,8 @@ public class TaskServiceImpl implements TaskService {
77 78
     private BankMapper bankMapper;
78 79
     @Resource
79 80
     private UsersMapper usersMapper;
81
+    @Resource
82
+    private AdminUserService userService;
80 83
 
81 84
     @Override
82 85
     public IPage<TaskRespVO> getTaskList(TaskPageReqVO pageReqVO) {
@@ -210,6 +213,7 @@ public class TaskServiceImpl implements TaskService {
210 213
 
211 214
         if(ObjectUtils.isNotEmpty(kqxxDO)) {
212 215
 
216
+            //单位信息
213 217
             DwxxDO dwxxDO = dwxxMapper.selectById(kqxxDO.getDwid());
214 218
 
215 219
             TaskKqxxRespVO kqxx = BeanUtils.toBean(kqxxDO, TaskKqxxRespVO.class);
@@ -218,6 +222,14 @@ public class TaskServiceImpl implements TaskService {
218 222
             kqxx.setQyxz(dwxxDO.getQyxz());
219 223
             kqxx.setJd(dwxxDO.getJd());
220 224
             kqxx.setWd(dwxxDO.getWd());
225
+
226
+            // 账号信息
227
+//            AdminUserDO user = userService.getUserByKqbm(kqxxDO.getKqbm());
228
+//            if(ObjectUtils.isNotEmpty(user)){
229
+//                kqxx.setUserId(user.getId());
230
+//                kqxx.setUsername(user.getUsername());
231
+//                kqxx.setPassword(user.getPassword());
232
+//            }
221 233
             return kqxx;
222 234
         }
223 235
 

+ 8 - 6
delivery-module-core/delivery-module-core-biz/src/main/resources/mapper/dk/DkMapper.xml

@@ -13,13 +13,15 @@
13 13
             dp.HYRY_ID ,
14 14
             dp.HYRY_NAME ,
15 15
             dp.HY_STATE ,
16
+            dk.SHXYDM ,
17
+            dk.KQBM ,
16 18
             COUNT(distinct dc.ID) AS HY_NUM
17 19
         FROM
18 20
             ${pageReqVO.tableName} dp
21
+        LEFT JOIN DELIVERY_CAXX dc ON dp.CA_ID = dc.ID
19 22
         LEFT JOIN DELIVERY_KQXX dk ON dp.KQ_ID = dk.ID
20
-        LEFT JOIN DELIVERY_CAXX dc ON dk.ID = dc.KQID AND dc.DELETED = 0
21 23
         WHERE
22
-            dk.DELETED = 0 AND dk.SFZX = 0 and dp.DELETED = 0
24
+            dk.DELETED = 0 AND dk.SFZX = 0 and dp.DELETED = 0 AND dc.DELETED = 0
23 25
         <if test="pageReqVO.sheng != null and pageReqVO.sheng != ''">
24 26
             AND dk.SHENG = #{pageReqVO.sheng}
25 27
         </if>
@@ -60,9 +62,9 @@
60 62
         COUNT(distinct dc.ID) AS HY_NUM
61 63
         FROM
62 64
         DELIVERY_USERS du
65
+        LEFT JOIN DELIVERY_CAXX dc ON du.CA_ID = dc.ID
63 66
         LEFT JOIN DELIVERY_KQXX dk ON du.KQ_ID = dk.ID
64
-        LEFT JOIN DELIVERY_CAXX dc ON dk.ID = dc.KQID AND dc.DELETED = 0
65
-        WHERE dk.DELETED = 0 AND dk.SFZX = 0 and du.DELETED = 0
67
+        WHERE dk.DELETED = 0 AND dk.SFZX = 0 and du.DELETED = 0 AND dc.DELETED = 0
66 68
             <if test="pageReqVO.sheng != null and pageReqVO.sheng != ''">
67 69
                 AND dk.SHENG = #{pageReqVO.sheng}
68 70
             </if>
@@ -94,8 +96,8 @@
94 96
         COUNT(distinct dc.ID) AS HY_NUM
95 97
         FROM
96 98
         DELIVERY_BANK dp
99
+        LEFT JOIN DELIVERY_CAXX dc ON dp.CA_ID = dc.ID
97 100
         LEFT JOIN DELIVERY_KQXX dk ON dp.KQ_ID = dk.ID
98
-        LEFT JOIN DELIVERY_CAXX dc ON dk.ID = dc.KQID
99 101
         LEFT JOIN DELIVERY_USERS du ON dc.ID = du.CA_ID AND du.DELETED = 0
100 102
         WHERE
101 103
         dk.DELETED = 0 AND dk.SFZX = 0 and dp.DELETED = 0 AND dc.DELETED = 0
@@ -143,7 +145,7 @@
143 145
         FROM
144 146
             DELIVERY_KQXX dk
145 147
         LEFT JOIN DELIVERY_CAXX dc ON dk.ID = dc.KQID
146
-        left join DELIVERY_BANK db on dk.ID = db.KQ_ID and db.deleted = 0
148
+        left join DELIVERY_BANK db on DC.ID = db.CA_ID and db.deleted = 0
147 149
         LEFT JOIN DELIVERY_USERS du ON dc.ID = du.CA_ID and du.deleted = 0
148 150
         WHERE
149 151
             dk.DELETED =0 AND dc.DELETED = 0 AND dk.SFZX = 0

+ 1 - 1
delivery-module-core/delivery-module-core-biz/src/main/resources/mapper/kshzs/KshzsMapper.xml

@@ -35,7 +35,7 @@
35 35
     </select>
36 36
 
37 37
     <select id="selectSpList" parameterType="com.unis.module.coding.controller.admin.kshzs.vo.paramVo" resultType="map">
38
-        select jkdbm,jkdmc,url from DELIVERY_SPXX;
38
+        select jkdbm,jkdmc,url from DELIVERY_SPXX
39 39
         <where>
40 40
             <if test="kqdm!= null and kqdm!= ''">
41 41
                 and kqdm = #{kqdm}

+ 2 - 2
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/arealevel/AreaLevelController.java

@@ -77,7 +77,7 @@ public class AreaLevelController {
77 77
     @Operation(summary = "获得行政区划")
78 78
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
79 79
     @PreAuthorize("@ss.hasPermission('system:area-level:query')")
80
-    public CommonResult<AreaLevelRespVO> getAreaLevel(@RequestParam("id") Integer id) {
80
+    public CommonResult<AreaLevelRespVO> getAreaLevel(@RequestParam("id") Long id) {
81 81
         AreaLevelDO areaLevel = areaLevelService.getAreaLevel(id);
82 82
         return success(BeanUtils.toBean(areaLevel, AreaLevelRespVO.class));
83 83
     }
@@ -146,7 +146,7 @@ public class AreaLevelController {
146 146
             return error(400, "无此用户");
147 147
         }
148 148
 
149
-        return success(areaLevelService.getLoginUserXzqhConcise(user.getAreaCode(),user));
149
+        return success(areaLevelService.getLoginUserXzqhConcise(user.getAreaCode()));
150 150
 
151 151
     }
152 152
 

+ 22 - 0
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java

@@ -50,6 +50,28 @@ public class AuthPermissionInfoRespVO {
50 50
         @Schema(description = "行政区域编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
51 51
         private String uCode;
52 52
 
53
+
54
+        /**行政区域编码(已选择)*/
55
+        private String areaCode;
56
+
57
+        /**行政区域等级 1-省 2-市 3-区县 4-街道镇 5-村*/
58
+        private Integer areaLevel;
59
+
60
+        /**行政区域编码(省)*/
61
+        private String shengCode;
62
+
63
+        /**行政区域编码(市)*/
64
+        private String shiCode;
65
+
66
+        /**行政区域编码(区县)*/
67
+        private String xianCode;
68
+
69
+        /**银行类型*/
70
+        private String bankType;
71
+
72
+        /**库区编码,库区角色非空(CODING_FMXX.KQDM)*/
73
+        private String kqbm;
74
+
53 75
     }
54 76
 
55 77
     @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO")

+ 38 - 2
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/user/UserController.java

@@ -1,17 +1,22 @@
1 1
 package com.unis.module.system.controller.admin.user;
2 2
 
3 3
 import cn.hutool.core.collection.CollUtil;
4
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
5
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
4 6
 import com.unis.framework.apilog.core.annotation.ApiAccessLog;
5 7
 import com.unis.framework.common.enums.CommonStatusEnum;
6 8
 import com.unis.framework.common.pojo.CommonResult;
7 9
 import com.unis.framework.common.pojo.PageParam;
8 10
 import com.unis.framework.common.pojo.PageResult;
9 11
 import com.unis.framework.excel.core.util.ExcelUtils;
12
+import com.unis.framework.security.core.LoginUser;
13
+import com.unis.framework.security.core.util.SecurityFrameworkUtils;
10 14
 import com.unis.module.system.controller.admin.user.vo.user.*;
11 15
 import com.unis.module.system.convert.user.UserConvert;
12 16
 import com.unis.module.system.dal.dataobject.dept.DeptDO;
13 17
 import com.unis.module.system.dal.dataobject.user.AdminUserDO;
14 18
 import com.unis.module.system.enums.common.SexEnum;
19
+import com.unis.module.system.enums.permission.RoleIdEnum;
15 20
 import com.unis.module.system.service.dept.DeptService;
16 21
 import com.unis.module.system.service.permission.RoleService;
17 22
 import com.unis.module.system.service.user.AdminUserService;
@@ -28,12 +33,17 @@ import javax.annotation.Resource;
28 33
 import javax.servlet.http.HttpServletResponse;
29 34
 import javax.validation.Valid;
30 35
 import java.io.IOException;
31
-import java.util.*;
36
+import java.util.Arrays;
37
+import java.util.List;
38
+import java.util.Map;
39
+import java.util.Set;
32 40
 
33 41
 import static com.unis.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
42
+import static com.unis.framework.common.exception.util.ServiceExceptionUtil.exception;
34 43
 import static com.unis.framework.common.pojo.CommonResult.error;
35 44
 import static com.unis.framework.common.pojo.CommonResult.success;
36 45
 import static com.unis.framework.common.util.collection.CollectionUtils.convertList;
46
+import static com.unis.module.infra.enums.ErrorCodeConstants.ERROR;
37 47
 
38 48
 @Tag(name = "管理后台 - 用户")
39 49
 @RestController
@@ -67,7 +77,26 @@ public class UserController {
67 77
                 && (reqVO.getBankType() == null || reqVO.getBankType().isEmpty())) {
68 78
             return error(400, "请选择银行类型");
69 79
         }
70
-
80
+        LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
81
+        if (ObjectUtils.isEmpty(loginUser)) {
82
+            throw exception(ERROR, "不存在用户信息");
83
+        }
84
+        String roles = loginUser.getInfo().get("roleIds");
85
+        if (ObjectUtils.isEmpty(roles)) {
86
+            throw exception(ERROR, "当前用户不存在角色信息");
87
+        }
88
+        if (roles.contains("[") && roles.contains("]")) {
89
+            String roleIdsReal = roles.substring(1, roles.length() - 1);
90
+            String[] items = roleIdsReal.split(",");
91
+            List<String> roleIdList = Arrays.asList(items);
92
+            if (roleIdList.contains(RoleIdEnum.BANK_ADMIN.getRoleId())) {
93
+                String bankType = loginUser.getInfo().get("bankType");
94
+                if (StringUtils.isBlank(bankType)) {
95
+                    throw exception(ERROR, "当前银行用户不存在银行信息");
96
+                }
97
+                reqVO.setBankType(bankType);
98
+            }
99
+        }
71 100
         Long id = userService.createUser(reqVO);
72 101
         return success(id);
73 102
     }
@@ -198,4 +227,11 @@ public class UserController {
198 227
         return success(userService.importUserList(list, updateSupport));
199 228
     }
200 229
 
230
+    @PostMapping("/createUserForKq")
231
+    @Operation(summary = "新增用户")
232
+    public CommonResult<Long> createUserForKq(@Valid @RequestBody UserSaveReqVO reqVO) {
233
+
234
+        Long id = userService.createUser(reqVO);
235
+        return success(id);
236
+    }
201 237
 }

+ 5 - 4
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/controller/admin/user/vo/user/UserSaveReqVO.java

@@ -1,17 +1,15 @@
1 1
 package com.unis.module.system.controller.admin.user.vo.user;
2 2
 
3 3
 import cn.hutool.core.util.ObjectUtil;
4
+import com.fasterxml.jackson.annotation.JsonIgnore;
4 5
 import com.fasterxml.jackson.annotation.JsonProperty;
6
+import com.mzt.logapi.starter.annotation.DiffLogField;
5 7
 import com.unis.framework.common.validation.Mobile;
6 8
 import com.unis.module.system.framework.operatelog.core.DeptParseFunction;
7 9
 import com.unis.module.system.framework.operatelog.core.PostParseFunction;
8 10
 import com.unis.module.system.framework.operatelog.core.SexParseFunction;
9
-import com.fasterxml.jackson.annotation.JsonIgnore;
10
-import com.mzt.logapi.starter.annotation.DiffLogField;
11 11
 import io.swagger.v3.oas.annotations.media.Schema;
12 12
 import lombok.Data;
13
-import lombok.Getter;
14
-import lombok.Setter;
15 13
 import org.hibernate.validator.constraints.Length;
16 14
 
17 15
 import javax.validation.constraints.*;
@@ -119,6 +117,9 @@ public class UserSaveReqVO implements Serializable {
119 117
     @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
120 118
     private String password;
121 119
 
120
+    @Schema(description = "库区编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
121
+    private String kqbm;
122
+
122 123
     @AssertTrue(message = "密码不能为空")
123 124
     @JsonIgnore
124 125
     public boolean isPasswordValid() {

+ 3 - 0
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/dal/mysql/user/AdminUserMapper.java

@@ -49,4 +49,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
49 49
         return selectList(AdminUserDO::getDeptId, deptIds);
50 50
     }
51 51
 
52
+    default AdminUserDO getUserByKqbm(String kqbm){
53
+        return selectOne(AdminUserDO::getKqbm, kqbm);
54
+    }
52 55
 }

+ 2 - 2
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/arealevel/AreaLevelService.java

@@ -45,7 +45,7 @@ public interface AreaLevelService {
45 45
      * @return 行政区划
46 46
      */
47 47
 
48
-    AreaLevelDO getAreaLevel(Integer id);
48
+    AreaLevelDO getAreaLevel(Long id);
49 49
 
50 50
 
51 51
     /**
@@ -68,5 +68,5 @@ public interface AreaLevelService {
68 68
     List<AreaLevelDO> getAreaListByParentCode(String parentCode);
69 69
 
70 70
     List<AreaLevelDO> getAreaLevelListAll(AdminUserDO user);
71
-    List<AreaLevelDO> getLoginUserXzqhConcise(String areaCode,AdminUserDO user);
71
+    List<AreaLevelDO> getLoginUserXzqhConcise(String areaCode);
72 72
 }

+ 170 - 46
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/arealevel/AreaLevelServiceImpl.java

@@ -6,6 +6,7 @@ import com.unis.framework.security.core.LoginUser;
6 6
 import com.unis.framework.security.core.util.SecurityFrameworkUtils;
7 7
 import com.unis.module.system.dal.dataobject.user.AdminUserDO;
8 8
 import lombok.extern.slf4j.Slf4j;
9
+import org.springframework.data.redis.core.RedisTemplate;
9 10
 import org.springframework.stereotype.Service;
10 11
 
11 12
 import javax.annotation.Resource;
@@ -14,6 +15,7 @@ import org.springframework.validation.annotation.Validated;
14 15
 import org.springframework.transaction.annotation.Transactional;
15 16
 
16 17
 import java.util.*;
18
+import java.util.stream.Collectors;
17 19
 
18 20
 import com.unis.module.system.controller.admin.arealevel.vo.*;
19 21
 import com.unis.module.system.dal.dataobject.arealevel.AreaLevelDO;
@@ -39,31 +41,97 @@ public class AreaLevelServiceImpl implements AreaLevelService {
39 41
     @Resource
40 42
     private AreaLevelMapper areaLevelMapper;
41 43
 
44
+    @Resource
45
+    private RedisTemplate<String, Object> redisTemplate;
46
+
47
+    private static final String ALL_AREA_LEVEL_KEY = "all_area_levels";
48
+
42 49
     @Override
50
+    @Transactional(rollbackFor = Exception.class)
43 51
     public Long createAreaLevel(AreaLevelSaveReqVO createReqVO) {
44
-        // 插入
45
-        AreaLevelDO areaLevel = BeanUtils.toBean(createReqVO, AreaLevelDO.class);
46
-        areaLevel.setId(YitIdHelper.nextId());
47
-        areaLevelMapper.insert(areaLevel);
48
-        // 返回
49
-        return areaLevel.getId();
52
+        try {
53
+            // 插入
54
+            AreaLevelDO areaLevel = BeanUtils.toBean(createReqVO, AreaLevelDO.class);
55
+            areaLevel.setId(YitIdHelper.nextId());
56
+            areaLevelMapper.insert(areaLevel);
57
+
58
+            // 删除缓存
59
+            redisTemplate.delete(ALL_AREA_LEVEL_KEY);
60
+
61
+            // 重新获取并设置缓存
62
+            List<AreaLevelDO> allAreaLevels = areaLevelMapper.selectList();
63
+            // 将数据存入 Redis,设置过期时间为不过期
64
+            AreaLevelDO areaLevelDO = new AreaLevelDO();
65
+            areaLevelDO.setAreaLevel(0);
66
+            areaLevelDO.setAreaCode("0");
67
+            areaLevelDO.setAreaName("国家粮食交易中心");
68
+            areaLevelDO.setId(0L);
69
+            allAreaLevels.add(areaLevelDO);
70
+            redisTemplate.opsForValue().set(ALL_AREA_LEVEL_KEY, allAreaLevels);
71
+
72
+            // 返回
73
+            return areaLevel.getId();
74
+        } catch (Exception e) {
75
+            // 发生异常时回滚数据库事务
76
+            throw e;
77
+        }
50 78
     }
51 79
 
52 80
     @Override
81
+    @Transactional(rollbackFor = Exception.class)
53 82
     public void updateAreaLevel(AreaLevelSaveReqVO updateReqVO) {
54
-        // 校验存在
55
-        validateAreaLevelExists(updateReqVO.getId());
56
-        // 更新
57
-        AreaLevelDO updateObj = BeanUtils.toBean(updateReqVO, AreaLevelDO.class);
58
-        areaLevelMapper.updateById(updateObj);
83
+        try {
84
+            // 校验存在
85
+            validateAreaLevelExists(updateReqVO.getId());
86
+            // 更新
87
+            AreaLevelDO updateObj = BeanUtils.toBean(updateReqVO, AreaLevelDO.class);
88
+            areaLevelMapper.updateById(updateObj);
89
+
90
+            // 删除缓存
91
+            redisTemplate.delete(ALL_AREA_LEVEL_KEY);
92
+
93
+            // 重新获取并设置缓存
94
+            List<AreaLevelDO> allAreaLevels = areaLevelMapper.selectList();
95
+            // 将数据存入 Redis,设置过期时间为不过期
96
+            AreaLevelDO areaLevelDO = new AreaLevelDO();
97
+            areaLevelDO.setAreaLevel(0);
98
+            areaLevelDO.setAreaCode("0");
99
+            areaLevelDO.setAreaName("国家粮食交易中心");
100
+            areaLevelDO.setId(0L);
101
+            allAreaLevels.add(areaLevelDO);
102
+            redisTemplate.opsForValue().set(ALL_AREA_LEVEL_KEY, allAreaLevels);
103
+        } catch (Exception e) {
104
+            // 发生异常时回滚数据库事务
105
+            throw e;
106
+        }
59 107
     }
60 108
 
61 109
     @Override
110
+    @Transactional(rollbackFor = Exception.class)
62 111
     public void deleteAreaLevel(Long id) {
63
-        // 校验存在
64
-        validateAreaLevelExists(id);
65
-        // 删除
66
-        areaLevelMapper.deleteById(id);
112
+        try {
113
+            // 校验存在
114
+            validateAreaLevelExists(id);
115
+            // 删除
116
+            areaLevelMapper.deleteById(id);
117
+
118
+            // 删除缓存
119
+            redisTemplate.delete(ALL_AREA_LEVEL_KEY);
120
+
121
+            // 重新获取并设置缓存
122
+            List<AreaLevelDO> allAreaLevels = areaLevelMapper.selectList();
123
+            // 将数据存入 Redis,设置过期时间为不过期
124
+            AreaLevelDO areaLevelDO = new AreaLevelDO();
125
+            areaLevelDO.setAreaLevel(0);
126
+            areaLevelDO.setAreaCode("0");
127
+            areaLevelDO.setAreaName("国家粮食交易中心");
128
+            areaLevelDO.setId(0L);
129
+            allAreaLevels.add(areaLevelDO);
130
+            redisTemplate.opsForValue().set(ALL_AREA_LEVEL_KEY, allAreaLevels);
131
+        } catch (Exception e) {
132
+            // 发生异常时回滚数据库事务
133
+            throw e;
134
+        }
67 135
     }
68 136
 
69 137
     private void validateAreaLevelExists(Long id) {
@@ -73,77 +141,133 @@ public class AreaLevelServiceImpl implements AreaLevelService {
73 141
     }
74 142
 
75 143
     @Override
76
-    public AreaLevelDO getAreaLevel(Integer id) {
77
-        return areaLevelMapper.selectById(id);
144
+    public AreaLevelDO getAreaLevel(Long id) {
145
+        AreaLevelDO resp = new AreaLevelDO();
146
+
147
+        List<AreaLevelDO> allAreaLevels = (List<AreaLevelDO>) redisTemplate.opsForValue().get(ALL_AREA_LEVEL_KEY);
148
+        if (allAreaLevels != null) {
149
+            for (AreaLevelDO allAreaLevel : allAreaLevels) {
150
+                if (Objects.equals(id, allAreaLevel.getId())) {
151
+                    resp = allAreaLevel;
152
+                    break;
153
+                }
154
+            }
155
+        }else {
156
+            resp = areaLevelMapper.selectById(id);
157
+        }
158
+        return resp;
78 159
     }
79 160
 
80 161
     @Override
81 162
     public List<AreaLevelDO> getAreaShengLevel() {
82
-        return areaLevelMapper.selectShengLevel();
163
+        List<AreaLevelDO> respList;
164
+
165
+        List<AreaLevelDO> allAreaLevels = (List<AreaLevelDO>) redisTemplate.opsForValue().get(ALL_AREA_LEVEL_KEY);
166
+        if (allAreaLevels != null) {
167
+            respList = allAreaLevels.stream().filter(areaLevelDO -> areaLevelDO.getAreaLevel() == 1).collect(Collectors.toList());
168
+        }else {
169
+            respList = areaLevelMapper.selectShengLevel();
170
+        }
171
+        return respList;
83 172
 
84 173
     }
85 174
 
86 175
     @Override
87 176
     public List<AreaLevelDO> getAreaListByParentCode(String parentCode) {
88
-        return areaLevelMapper.selectListByParentCode(parentCode);
177
+        List<AreaLevelDO> respList;
178
+
179
+        List<AreaLevelDO> allAreaLevels = (List<AreaLevelDO>) redisTemplate.opsForValue().get(ALL_AREA_LEVEL_KEY);
180
+        if (allAreaLevels != null) {
181
+            respList = allAreaLevels.stream().filter(areaLevelDO -> parentCode.equals(areaLevelDO.getParentCode())).collect(Collectors.toList());
182
+        }else {
183
+            respList = areaLevelMapper.selectListByParentCode(parentCode);
184
+        }
185
+        return respList;
89 186
     }
90 187
 
91 188
     @Override
92 189
     public List<AreaLevelDO> getAreaLevelListAll(AdminUserDO user) {
93
-        log.info("user: {}", user);
94
-        //国家局或者管理员
95
-        if (ObjectUtil.isEmpty(user.getAreaLevel()) || user.getAreaLevel() == 0) {
190
+        // 尝试从 Redis 中获取所有行政区划数据
191
+        List<AreaLevelDO> allAreaLevels = (List<AreaLevelDO>) redisTemplate.opsForValue().get(ALL_AREA_LEVEL_KEY);
192
+        if (allAreaLevels == null) {
193
+            // 如果 Redis 中没有数据,则从数据库中获取
194
+            allAreaLevels = areaLevelMapper.selectList();
195
+            // 将数据存入 Redis,设置过期时间为不过期
96 196
             AreaLevelDO areaLevelDO = new AreaLevelDO();
97 197
             areaLevelDO.setAreaLevel(0);
98 198
             areaLevelDO.setAreaCode("0");
99 199
             areaLevelDO.setAreaName("国家粮食交易中心");
100 200
             areaLevelDO.setId(0L);
101
-            List<AreaLevelDO> temp = areaLevelMapper.selectList();
102
-            temp.add(areaLevelDO);
103
-            return  temp;
201
+            allAreaLevels.add(areaLevelDO);
202
+            redisTemplate.opsForValue().set(ALL_AREA_LEVEL_KEY, allAreaLevels);
203
+        }
104 204
 
205
+        // 国家局或者管理员
206
+        if (ObjectUtil.isEmpty(user.getAreaLevel()) || user.getAreaLevel() == 0) {
207
+            return allAreaLevels;
105 208
         }
106 209
         // 省一级用户
107 210
         else if (user.getAreaLevel() == 1) {
108
-            AreaLevelDO areaLevelDO = areaLevelMapper.selectListByAreaCode(user.getAreaCode());
109
-            List<AreaLevelDO> temp = getSubAreasRecursively(user.getAreaCode());
110
-            temp.add(areaLevelDO);
211
+            AreaLevelDO areaLevelDO = getAreaLevelFromList(allAreaLevels, user.getAreaCode());
212
+            List<AreaLevelDO> temp = getSubAreasRecursivelyFromList(allAreaLevels, user.getAreaCode());
213
+            if (areaLevelDO != null) {
214
+                temp.add(areaLevelDO);
215
+            }
111 216
             return temp;
112 217
         }
113 218
         // 市一级用户
114 219
         else if (user.getAreaLevel() == 2) {
115
-            AreaLevelDO areaLevelDO = areaLevelMapper.selectListByAreaCode(user.getAreaCode());
116
-            List<AreaLevelDO> temp = getSubAreasRecursively(user.getAreaCode());
117
-            temp.add(areaLevelDO);
220
+            AreaLevelDO areaLevelDO = getAreaLevelFromList(allAreaLevels, user.getAreaCode());
221
+            List<AreaLevelDO> temp = getSubAreasRecursivelyFromList(allAreaLevels, user.getAreaCode());
222
+            if (areaLevelDO != null) {
223
+                temp.add(areaLevelDO);
224
+            }
118 225
             return temp;
119 226
         }
120 227
         // 县一级用户
121 228
         else if (user.getAreaLevel() == 3) {
122 229
             // 县级是最低级别,只返回自身
123
-            AreaLevelDO areaLevelDO = areaLevelMapper.selectListByAreaCode(user.getAreaCode());
124
-            return Collections.singletonList(areaLevelDO);
230
+            AreaLevelDO areaLevelDO = getAreaLevelFromList(allAreaLevels, user.getAreaCode());
231
+            if (areaLevelDO != null) {
232
+                return Collections.singletonList(areaLevelDO);
233
+            }
125 234
         }
126 235
         // 返回空列表或其他默认行为
127 236
         return Collections.emptyList();
128 237
     }
129 238
 
130
-    @Override
131
-    public List<AreaLevelDO> getLoginUserXzqhConcise(String areaCode,AdminUserDO user) {
132
-//        AreaLevelDO areaLevelDO = new AreaLevelDO();
133
-
134
-        return areaLevelMapper.selectListByParentCode(areaCode);
239
+    private AreaLevelDO getAreaLevelFromList(List<AreaLevelDO> allAreaLevels, String areaCode) {
240
+        for (AreaLevelDO areaLevel : allAreaLevels) {
241
+            if (areaCode.equals(areaLevel.getAreaCode())) {
242
+                return areaLevel;
243
+            }
244
+        }
245
+        return null;
135 246
     }
136 247
 
137
-    private List<AreaLevelDO> getSubAreasRecursively(String parentCode) {
138
-        List<AreaLevelDO> subAreas = areaLevelMapper.selectListByParentCode(parentCode);
139
-        if (ObjectUtil.isEmpty(subAreas) || subAreas.isEmpty()) {
140
-            return subAreas;
248
+    private List<AreaLevelDO> getSubAreasRecursivelyFromList(List<AreaLevelDO> allAreaLevels, String parentCode) {
249
+        List<AreaLevelDO> subAreas = new ArrayList<>();
250
+        for (AreaLevelDO areaLevel : allAreaLevels) {
251
+            if (parentCode.equals(areaLevel.getParentCode())) {
252
+                subAreas.add(areaLevel);
253
+                subAreas.addAll(getSubAreasRecursivelyFromList(allAreaLevels, areaLevel.getAreaCode()));
254
+            }
141 255
         }
142
-        List<AreaLevelDO> allSubAreas = new ArrayList<>(subAreas);
143
-        for (AreaLevelDO area : subAreas) {
144
-            allSubAreas.addAll(getSubAreasRecursively(area.getAreaCode()));
256
+        return subAreas;
257
+    }
258
+
259
+    @Override
260
+    public List<AreaLevelDO> getLoginUserXzqhConcise(String areaCode) {
261
+        List<AreaLevelDO> respList;
262
+
263
+        List<AreaLevelDO> allAreaLevels = (List<AreaLevelDO>) redisTemplate.opsForValue().get(ALL_AREA_LEVEL_KEY);
264
+        if (allAreaLevels != null) {
265
+            respList = allAreaLevels.stream().filter(areaLevelDO -> areaCode.equals(areaLevelDO.getParentCode())).collect(Collectors.toList());
266
+        }else {
267
+            respList = areaLevelMapper.selectListByParentCode(areaCode);
145 268
         }
146
-        return allSubAreas;
269
+
270
+        return respList;
147 271
     }
148 272
 
149 273
     @Override

+ 10 - 3
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/user/AdminUserService.java

@@ -1,16 +1,22 @@
1 1
 package com.unis.module.system.service.user;
2 2
 
3 3
 import cn.hutool.core.collection.CollUtil;
4
+import com.unis.framework.common.pojo.PageResult;
4 5
 import com.unis.framework.common.util.collection.CollectionUtils;
5 6
 import com.unis.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
6 7
 import com.unis.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
7
-import com.unis.module.system.controller.admin.user.vo.user.*;
8
-import com.unis.framework.common.pojo.PageResult;
8
+import com.unis.module.system.controller.admin.user.vo.user.UserImportExcelVO;
9
+import com.unis.module.system.controller.admin.user.vo.user.UserImportRespVO;
10
+import com.unis.module.system.controller.admin.user.vo.user.UserPageReqVO;
11
+import com.unis.module.system.controller.admin.user.vo.user.UserSaveReqVO;
9 12
 import com.unis.module.system.dal.dataobject.user.AdminUserDO;
10 13
 
11 14
 import javax.validation.Valid;
12 15
 import java.io.InputStream;
13
-import java.util.*;
16
+import java.util.Collection;
17
+import java.util.HashMap;
18
+import java.util.List;
19
+import java.util.Map;
14 20
 
15 21
 /**
16 22
  * 后台用户 Service 接口
@@ -201,4 +207,5 @@ public interface AdminUserService {
201 207
      */
202 208
     boolean isPasswordMatch(String rawPassword, String encodedPassword);
203 209
 
210
+    AdminUserDO getUserByKqbm(String kqbm);
204 211
 }

+ 8 - 11
delivery-module-system/delivery-module-system-biz/src/main/java/com/unis/module/system/service/user/AdminUserServiceImpl.java

@@ -4,19 +4,18 @@ import cn.hutool.core.collection.CollUtil;
4 4
 import cn.hutool.core.collection.CollectionUtil;
5 5
 import cn.hutool.core.io.IoUtil;
6 6
 import cn.hutool.core.util.StrUtil;
7
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
8
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
9 7
 import com.github.yitter.idgen.YitIdHelper;
8
+import com.google.common.annotations.VisibleForTesting;
9
+import com.mzt.logapi.context.LogRecordContext;
10
+import com.mzt.logapi.service.impl.DiffParseFunction;
11
+import com.mzt.logapi.starter.annotation.LogRecord;
10 12
 import com.unis.framework.common.enums.CommonStatusEnum;
11 13
 import com.unis.framework.common.exception.ServiceException;
12 14
 import com.unis.framework.common.pojo.PageResult;
13
-import com.unis.framework.common.util.business.PermissionUtils;
14 15
 import com.unis.framework.common.util.collection.CollectionUtils;
15 16
 import com.unis.framework.common.util.object.BeanUtils;
16 17
 import com.unis.framework.datapermission.core.util.DataPermissionUtils;
17
-import com.unis.framework.security.core.LoginUser;
18 18
 import com.unis.framework.security.core.util.AreaUtils;
19
-import com.unis.framework.security.core.util.SecurityFrameworkUtils;
20 19
 import com.unis.module.infra.api.file.FileApi;
21 20
 import com.unis.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
22 21
 import com.unis.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
@@ -26,19 +25,13 @@ import com.unis.module.system.controller.admin.user.vo.user.UserPageReqVO;
26 25
 import com.unis.module.system.controller.admin.user.vo.user.UserSaveReqVO;
27 26
 import com.unis.module.system.dal.dataobject.dept.DeptDO;
28 27
 import com.unis.module.system.dal.dataobject.dept.UserPostDO;
29
-import com.unis.module.system.dal.dataobject.permission.UserRoleDO;
30 28
 import com.unis.module.system.dal.dataobject.user.AdminUserDO;
31 29
 import com.unis.module.system.dal.mysql.dept.UserPostMapper;
32
-import com.unis.module.system.dal.mysql.permission.UserRoleMapper;
33 30
 import com.unis.module.system.dal.mysql.user.AdminUserMapper;
34 31
 import com.unis.module.system.service.dept.DeptService;
35 32
 import com.unis.module.system.service.dept.PostService;
36 33
 import com.unis.module.system.service.permission.PermissionService;
37 34
 import com.unis.module.system.service.tenant.TenantService;
38
-import com.google.common.annotations.VisibleForTesting;
39
-import com.mzt.logapi.context.LogRecordContext;
40
-import com.mzt.logapi.service.impl.DiffParseFunction;
41
-import com.mzt.logapi.starter.annotation.LogRecord;
42 35
 import lombok.extern.slf4j.Slf4j;
43 36
 import org.springframework.beans.factory.annotation.Value;
44 37
 import org.springframework.context.annotation.Lazy;
@@ -506,4 +499,8 @@ public class AdminUserServiceImpl implements AdminUserService {
506 499
         return passwordEncoder.encode(password);
507 500
     }
508 501
 
502
+    @Override
503
+    public AdminUserDO getUserByKqbm(String kqbm) {
504
+        return userMapper.getUserByKqbm(kqbm);
505
+    }
509 506
 }