From fa9696d8aa43bc4f362aebb6431cffc319f6f424 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Fri, 29 Jan 2021 17:09:48 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/SysUserController.java | 20 +++ .../esua/epdc/service/SysDeptService.java | 8 + .../epdc/service/impl/SysDeptServiceImpl.java | 15 ++ .../src/main/resources/mapper/SysDeptDao.xml | 2 +- .../esua/epdc/filter/WorkLogAuthFilter.java | 139 ++++++++++++++++++ .../epdc/utils/jwt/JwtTokenProperties.java | 33 +++++ .../esua/epdc/utils/jwt/JwtTokenUtils.java | 71 +++++++++ .../src/main/resources/application.yml | 12 ++ .../worklog/WorkLogAnalysisController.java | 36 +++++ .../dto/result/EpdcWorkLogUserDetailDTO.java | 96 ++++++++++++ .../epdc/controller/ApiWorkLogController.java | 59 ++++++++ .../esua/epdc/feign/AdminFeignClient.java | 11 ++ .../esua/epdc/feign/AnalysisFeignClient.java | 30 ++++ .../fallback/AdminFeignClientFallback.java | 5 + .../fallback/AnalysisFeignClientFallback.java | 20 +++ .../elink/esua/epdc/service/AdminService.java | 26 ++++ .../epdc/service/impl/AdminServiceImpl.java | 51 +++++++ esua-epdc/pom.xml | 25 +--- 18 files changed, 637 insertions(+), 22 deletions(-) create mode 100644 esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/filter/WorkLogAuthFilter.java create mode 100644 esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenProperties.java create mode 100644 esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenUtils.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/worklog/WorkLogAnalysisController.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcWorkLogUserDetailDTO.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java index 94793eb9..78d50af6 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java @@ -8,9 +8,11 @@ package com.elink.esua.epdc.controller; +import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.annotation.LogOperation; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.exception.ErrorCode; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.security.bo.ResourceBO; import com.elink.esua.epdc.commons.tools.security.password.PasswordUtils; @@ -415,4 +417,22 @@ public class SysUserController { return new Result().ok(userDetail); } + + /** + * 获取用户部门多层结构,用户前端显示,请求需携带token - 工作日志使用 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author songyunpeng + * @date 2020/1/27 14:31 + */ + @PostMapping("deptOptions/getUserDeptOptionByUserId") + public Result getUserDeptOptionByUserId(@RequestBody String userId) { + JSONObject paramsJSONObject = JSONObject.parseObject(userId); + String realUserId = paramsJSONObject.getString("userId"); + if (realUserId == null) { + throw new RenException("参数错误"); + } + return sysDeptService.getUserDeptOptionByUserId(realUserId); + } + } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index 83180500..af7cf646 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -280,4 +280,12 @@ public interface SysDeptService extends BaseService { * @since 2021/1/20 9:59 */ List listOfDeptInfoByTypeKey(String typeKey); + /** + * @Description 获取用户部门多层结构,用户前端显示,请求需携带token - 工作日志使用 + * @Author songyunpeng + * @Date 2021/1/27 + * @Param [userId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result getUserDeptOptionByUserId(String userId); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 035b53ee..0fc9ec3e 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -472,6 +472,8 @@ public class SysDeptServiceImpl extends BaseServiceImpl listOfDeptInfoByTypeKey(String typeKey) { return baseDao.selectListOfDeptInfoByTypeKey(typeKey); } + + @Override + public Result getUserDeptOptionByUserId(String userId) { + Long realUserId = Long.parseLong(userId); + String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(realUserId); + Object obj = redisUtils.get(deptOptionKey); + if (null == obj) { + this.packageUserDeptOption(realUserId); + obj = redisUtils.get(deptOptionKey); + } + return new Result().ok((DeptOption) obj); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index d712572e..15a52698 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -133,7 +133,7 @@ @@ -147,8 +148,8 @@ SELECT tem2.* FROM - ( SELECT * FROM sys_dept d1 WHERE d1.id IN #{item} ) tem1, - ( SELECT * FROM sys_dept d2 WHERE d2.pid IN #{deptId} ) tem2 + ( SELECT * FROM sys_dept d1 WHERE DEL_FLAG = '0' and d1.id IN #{item} ) tem1, + ( SELECT * FROM sys_dept d2 WHERE DEL_FLAG = '0' and d2.pid IN #{deptId} ) tem2 WHERE ( tem1.PIDS LIKE CONCAT( '%', tem2.id, '%' ) OR tem1.PID = tem2.ID ) OR ( tem2.ID = tem1.ID AND NOT EXISTS ( SELECT 1 FROM sys_dept d WHERE d.PID = tem2.ID ) ) From 256c7b2b07c211fc76e25b682f2195577384c009 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Wed, 3 Feb 2021 10:56:55 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=A7=98=E9=92=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java | 4 ++-- esua-epdc/epdc-gateway/src/main/resources/application.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 655c24e9..3de1aa0f 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -970,10 +970,10 @@ public class SysDeptServiceImpl extends BaseServiceImpl getUserDeptOptionByUserId(String userId) { Long realUserId = Long.parseLong(userId); - String deptOptionKey = RedisKeys.getAllAdminUserDeptOptionKey(realUserId); + String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(realUserId); Object obj = redisUtils.get(deptOptionKey); if (null == obj) { - this.packageAllUserDeptOption(realUserId); + this.packageUserDeptOption(realUserId); obj = redisUtils.get(deptOptionKey); } return new Result().ok((DeptOption) obj); diff --git a/esua-epdc/epdc-gateway/src/main/resources/application.yml b/esua-epdc/epdc-gateway/src/main/resources/application.yml index 372ed22b..18ffe317 100644 --- a/esua-epdc/epdc-gateway/src/main/resources/application.yml +++ b/esua-epdc/epdc-gateway/src/main/resources/application.yml @@ -246,9 +246,9 @@ ribbon: jwt: token: #秘钥 - secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epdc] + secret: 007e7e3620291354947e8b9791e2a4fa[elink.epdc] #APPID - appid: 3b60f3e6e8281efe96a032682e5e5f7e + appid: 003edc9c09463b30e39a94353313ce56 renren: urls: From 660e5829882ec2c231410de27a8d743dde3ec648 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Fri, 5 Feb 2021 10:17:17 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=9D=83=E9=99=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esua-epdc/epdc-gateway/src/main/resources/application.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/esua-epdc/epdc-gateway/src/main/resources/application.yml b/esua-epdc/epdc-gateway/src/main/resources/application.yml index 18ffe317..8e801d07 100644 --- a/esua-epdc/epdc-gateway/src/main/resources/application.yml +++ b/esua-epdc/epdc-gateway/src/main/resources/application.yml @@ -288,7 +288,8 @@ renren: worklog: urls: - - /api/plugins/workLog/** #工作日志相关 + - /api/plugins/workLog/getUserInfo #获取用户信息 + - /api/plugins/workLog/getUserDeptOptionByUserId #获取用户部门权限 epdc: # 党建e家接口 From db1487519eb3f1c2d8de052c0b921cdd018416c3 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Fri, 5 Feb 2021 17:27:22 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/EpdcAppWorkLogUserResult.java | 20 +++++++++++++++++++ .../epdc/controller/ApiWorkLogController.java | 9 ++++++--- .../elink/esua/epdc/service/AdminService.java | 4 ++-- .../epdc/service/impl/AdminServiceImpl.java | 19 +++++++++++++++--- 4 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppWorkLogUserResult.java diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppWorkLogUserResult.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppWorkLogUserResult.java new file mode 100644 index 00000000..9f64b3ef --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppWorkLogUserResult.java @@ -0,0 +1,20 @@ +package com.elink.esua.epdc.dto.result; + +import com.elink.esua.epdc.dto.DeptOption; +import lombok.Data; + +import java.util.List; + +/** + * @author songyunpeng + * @Description + * @create 2021-02-05 + */ +@Data +public class EpdcAppWorkLogUserResult { + + + private DeptOption deptOption; + + private List deptIds; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java index 27642c6d..7300a5c9 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java @@ -1,11 +1,14 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.DeptOption; +import com.elink.esua.epdc.dto.result.EpdcAppWorkLogUserResult; import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO; import com.elink.esua.epdc.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 工作日志相关 @@ -38,7 +41,7 @@ public class ApiWorkLogController { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ @PostMapping("getUserDeptOptionByUserId") - public Result getUserDeptOptionByUserId(){ + public Result getUserDeptOptionByUserId(){ return adminService.getUserDeptOptionByUserId(); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java index 9cfe1356..27804d82 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java @@ -2,8 +2,8 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.DeptOption; import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; +import com.elink.esua.epdc.dto.result.EpdcAppWorkLogUserResult; import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO; import java.util.List; @@ -76,7 +76,7 @@ public interface AdminService { * @Param [userId] * @return com.elink.esua.epdc.commons.tools.utils.Result **/ - Result getUserDeptOptionByUserId(); + Result getUserDeptOptionByUserId(); /** * @Description 获取customId * @Author songyunpeng diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java index e2ff209e..eeacc527 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java @@ -12,6 +12,7 @@ import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; +import com.elink.esua.epdc.dto.result.EpdcAppWorkLogUserResult; import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.AnalysisFeignClient; @@ -115,16 +116,28 @@ public class AdminServiceImpl implements AdminService { } @Override - public Result getUserDeptOptionByUserId() { + public Result getUserDeptOptionByUserId() { //缓存中用户信息 UserDetail user = SecurityUser.getUser(); if(user == null){ throw new RenException("用户未登录"); } + EpdcAppWorkLogUserResult epdcAppWorkLogUserResult = new EpdcAppWorkLogUserResult(); + epdcAppWorkLogUserResult.setDeptIds(user.getDeptIdList()); if(user.getSuperAdmin() == SuperAdminEnum.YES.value()){ - return adminFeignClient.getAllDeptTree(); + Result allDeptTree = adminFeignClient.getAllDeptTree(); + if(allDeptTree==null || allDeptTree.getData() ==null){ + return new Result().error("获取部门列表失败"); + } + epdcAppWorkLogUserResult.setDeptOption(allDeptTree.getData()); + return new Result().ok(epdcAppWorkLogUserResult); } - return adminFeignClient.getUserDeptOptionByUserId(); + Result userDeptOptionByUserId = adminFeignClient.getUserDeptOptionByUserId(); + if(userDeptOptionByUserId==null || userDeptOptionByUserId.getData() ==null){ + return new Result().error("获取部门列表失败"); + } + epdcAppWorkLogUserResult.setDeptOption(userDeptOptionByUserId.getData()); + return new Result().ok(epdcAppWorkLogUserResult); } @Override