From 3a429c861a577456829259e639de4141d8cf7be3 Mon Sep 17 00:00:00 2001 From: liuchuang Date: Thu, 28 Nov 2019 09:58:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8F=8B=E9=82=BB=E7=A4=BE=E7=BE=A4?= =?UTF-8?q?=E8=A1=A8=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../branch/dev_1118/db/esua_epdc_events.sql | 3 ++ .../branch/dev_1118/db/esua_epdc_group.sql | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 esua-epdc/doc/branch/dev_1118/db/esua_epdc_group.sql diff --git a/esua-epdc/doc/branch/dev_1118/db/esua_epdc_events.sql b/esua-epdc/doc/branch/dev_1118/db/esua_epdc_events.sql index b85157381..512307c15 100644 --- a/esua-epdc/doc/branch/dev_1118/db/esua_epdc_events.sql +++ b/esua-epdc/doc/branch/dev_1118/db/esua_epdc_events.sql @@ -84,6 +84,7 @@ ALTER TABLE esua_epdc_events.epdc_events DROP COLUMN `STREET`; ALTER TABLE esua_epdc_events.epdc_events DROP COLUMN `STREET_ID`; ALTER TABLE esua_epdc_events.epdc_events DROP COLUMN `COMMUNITY`; ALTER TABLE esua_epdc_events.epdc_events DROP COLUMN `COMMUNITY_ID`; +ALTER TABLE esua_epdc_events.epdc_events DROP COLUMN `ISSUE_CATEGORY_ID`; ALTER TABLE esua_epdc_events.epdc_events ADD PARENT_DEPT_IDS VARCHAR(1024) NULL COMMENT '父所有部门'; ALTER TABLE esua_epdc_events.epdc_events ADD PARENT_DEPT_NAMES VARCHAR(1024) NULL COMMENT '父所有部门'; @@ -94,6 +95,7 @@ ALTER TABLE esua_epdc_events.epdc_issue DROP COLUMN `STREET`; ALTER TABLE esua_epdc_events.epdc_issue DROP COLUMN `STREET_ID`; ALTER TABLE esua_epdc_events.epdc_issue DROP COLUMN `COMMUNITY`; ALTER TABLE esua_epdc_events.epdc_issue DROP COLUMN `COMMUNITY_ID`; +ALTER TABLE esua_epdc_events.epdc_issue DROP COLUMN `ISSUE_CATEGORY_ID`; ALTER TABLE esua_epdc_events.epdc_issue ADD PARENT_DEPT_IDS VARCHAR(1024) NULL COMMENT '父所有部门'; ALTER TABLE esua_epdc_events.epdc_issue ADD PARENT_DEPT_NAMES VARCHAR(1024) NULL COMMENT '父所有部门'; @@ -104,6 +106,7 @@ ALTER TABLE esua_epdc_events.epdc_item DROP COLUMN `STREET`; ALTER TABLE esua_epdc_events.epdc_item DROP COLUMN `STREET_ID`; ALTER TABLE esua_epdc_events.epdc_item DROP COLUMN `COMMUNITY`; ALTER TABLE esua_epdc_events.epdc_item DROP COLUMN `COMMUNITY_ID`; +ALTER TABLE esua_epdc_events.epdc_item DROP COLUMN `ISSUE_CATEGORY_ID`; ALTER TABLE esua_epdc_events.epdc_item ADD PARENT_DEPT_IDS VARCHAR(1024) NULL COMMENT '父所有部门'; ALTER TABLE esua_epdc_events.epdc_item ADD PARENT_DEPT_NAMES VARCHAR(1024) NULL COMMENT '父所有部门'; diff --git a/esua-epdc/doc/branch/dev_1118/db/esua_epdc_group.sql b/esua-epdc/doc/branch/dev_1118/db/esua_epdc_group.sql new file mode 100644 index 000000000..90b83aacf --- /dev/null +++ b/esua-epdc/doc/branch/dev_1118/db/esua_epdc_group.sql @@ -0,0 +1,29 @@ +------------------------------------------2019-11-28------------------------------------------------ +-- 社群表修改 +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `AREA`; +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `AREA_ID`; +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `STREET`; +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `STREET_ID`; +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `COMMUNITY`; +ALTER TABLE esua_epdc_group.epdc_group DROP COLUMN `COMMUNITY_ID`; + +ALTER TABLE esua_epdc_group.epdc_group ADD ALL_DEPT_IDS varchar(512) NULL COMMENT '所有部门ID'; +ALTER TABLE esua_epdc_group.epdc_group ADD ALL_DEPT_NAMES varchar(512) NULL COMMENT '所有部门名称'; +ALTER TABLE esua_epdc_group.epdc_group ADD PARENT_DEPT_IDS VARCHAR(1024) NULL COMMENT '父所有部门'; +ALTER TABLE esua_epdc_group.epdc_group ADD PARENT_DEPT_NAMES VARCHAR(1024) NULL COMMENT '父所有部门'; + + +-- 话题表修改 +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `AREA`; +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `AREA_ID`; +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `STREET`; +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `STREET_ID`; +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `COMMUNITY`; +ALTER TABLE esua_epdc_group.epdc_topic DROP COLUMN `COMMUNITY_ID`; + +ALTER TABLE esua_epdc_group.epdc_topic ADD ALL_DEPT_IDS varchar(512) NULL COMMENT '所有部门ID'; +ALTER TABLE esua_epdc_group.epdc_topic ADD ALL_DEPT_NAMES varchar(512) NULL COMMENT '所有部门名称'; +ALTER TABLE esua_epdc_group.epdc_topic ADD PARENT_DEPT_IDS VARCHAR(1024) NULL COMMENT '父所有部门'; +ALTER TABLE esua_epdc_group.epdc_topic ADD PARENT_DEPT_NAMES VARCHAR(1024) NULL COMMENT '父所有部门'; + +------------------------------------------2019-11-28------------------------------------------------ \ No newline at end of file From 79ece89517cda6371979b6332fce5acc667ef577 Mon Sep 17 00:00:00 2001 From: qushutong <1976590620@qq.com> Date: Thu, 28 Nov 2019 11:21:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=AB=AF=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E5=BE=85=E8=AE=A4=E8=AF=81=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc-user-server/src/main/resources/mapper/UserDao.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index 3f2180a3c..c99fb251a 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -107,6 +107,7 @@ + + + + diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/test/java/com/elink/esua/epdc/service/DynamicDataSourceTest.java b/esua-epdc/epdc-admin/epdc-admin-server/src/test/java/com/elink/esua/epdc/service/DynamicDataSourceTest.java index 8fe4f3dd2..90f95cd04 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/test/java/com/elink/esua/epdc/service/DynamicDataSourceTest.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/test/java/com/elink/esua/epdc/service/DynamicDataSourceTest.java @@ -44,5 +44,4 @@ public class DynamicDataSourceTest { dynamicDataSourceTestService.updateUserBySlave2(id); } - } diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/async/UserDeptTask.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/async/UserDeptTask.java new file mode 100644 index 000000000..c1305cf4c --- /dev/null +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/async/UserDeptTask.java @@ -0,0 +1,31 @@ +package com.elink.esua.epdc.async; + +import com.elink.esua.epdc.feign.UserFeignClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +/** + * 用户部门相关任务 + * + * @author work@yujt.net.cn + * @date 2019/11/28 13:20 + */ +@Component +public class UserDeptTask { + + @Autowired + private UserFeignClient userFeignClient; + + /** + * 组装用户部门层级结构 + * + * @param userId + * @author work@yujt.net.cn + * @date 2019/11/28 13:21 + */ + @Async + public void packageUserDeptOptions(Long userId) { + userFeignClient.packageUserDeptOption(userId); + } +} diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/config/ThreadConfig.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/config/ThreadConfig.java new file mode 100644 index 000000000..589e6e990 --- /dev/null +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/config/ThreadConfig.java @@ -0,0 +1,42 @@ +package com.elink.esua.epdc.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.task.TaskExecutor; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 线程池 + * + * @author rongchao + * @Date 18-11-27 + */ +@Configuration +@EnableAsync +public class ThreadConfig { + + @Bean + public TaskExecutor taskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + // 设置核心线程数 + executor.setCorePoolSize(5); + // 设置最大线程数 + executor.setMaxPoolSize(10); + // 设置队列容量 + executor.setQueueCapacity(20); + // 设置线程活跃时间(秒) + executor.setKeepAliveSeconds(60); + // 设置默认线程名称 + executor.setThreadNamePrefix("esd-"); + // 设置拒绝策略 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 等待所有任务结束后再关闭线程池 + executor.setWaitForTasksToCompleteOnShutdown(true); + executor.setAwaitTerminationSeconds(60); + executor.initialize(); + return executor; + } +} diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index ca790017b..88e354940 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -16,6 +16,7 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -45,11 +46,10 @@ public interface UserFeignClient { Result getByUsername(@RequestParam("username") String username); /** - * * 根据用户ID获取用户角色权限信息 * - * @params [id] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [id] * @author liuchuang * @since 2019/11/19 23:31 */ @@ -57,15 +57,25 @@ public interface UserFeignClient { Result> getDataScopeList(@RequestParam("id") Long id); /** - * * 根据用户名更新用户微信openId * - * @params [sysUserOpenIdFormDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [sysUserOpenIdFormDto] * @author liuchuang * @since 2019/11/20 9:52 */ @PostMapping("sys/user/modifyOpenId") Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto); + /** + * 组装用户部门层级结构 + * + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/11/28 13:19 + */ + @GetMapping("sys/user/packageOption/{userId}") + Result packageUserDeptOption(@PathVariable("userId") Long userId); + } diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 8e0e09368..b05ace690 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -32,7 +32,7 @@ public class UserFeignClientFallback implements UserFeignClient { } @Override - public Result getByUsername(String username) { + public Result getByUsername(String username) { return new Result<>(); } @@ -45,4 +45,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto) { return new Result<>(); } + + @Override + public Result packageUserDeptOption(Long userId) { + return new Result<>(); + } } diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java index debe7e8b7..39023f35b 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java @@ -8,10 +8,10 @@ package com.elink.esua.epdc.service.impl; +import com.elink.esua.epdc.async.UserDeptTask; import com.elink.esua.epdc.common.token.dto.DeptDataScopeDTO; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO; -import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO; import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; @@ -42,6 +42,7 @@ import com.elink.esua.epdc.service.AuthService; import io.jsonwebtoken.Claims; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; @@ -69,6 +70,9 @@ public class AuthServiceImpl implements AuthService { @Autowired private JwtProperties jwtProperties; + @Autowired + private UserDeptTask userDeptTask; + @Override public AuthorizationDTO login(LoginDTO login) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); @@ -132,6 +136,8 @@ public class AuthServiceImpl implements AuthService { log.setStatus(LoginStatusEnum.SUCCESS.value()); logProducer.saveLog(log); + userDeptTask.packageUserDeptOptions(user.getId()); + return authorization; } @@ -206,6 +212,8 @@ public class AuthServiceImpl implements AuthService { authorization.setUserTagKey(user.getTypeKey()); authorization.setRegisterState(NumConstant.ONE_STR); + userDeptTask.packageUserDeptOptions(user.getId()); + return new Result().ok(authorization); } diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java index 3610e433a..fabb55dbb 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java @@ -114,4 +114,16 @@ public class RedisKeys { public static String getPhoneSmsCodeKey(String phone) { return rootPrefix.concat("phone:sms:code:").concat(phone); } + + /** + * 管理员部门层级关系 + * + * @param userId 用户id + * @return java.lang.String + * @author work@yujt.net.cn + * @date 2019/11/28 09:56 + */ + public static String getAdminUserDeptOptionKey(Long userId) { + return rootPrefix.concat("sys:user:dept:options:").concat(String.valueOf(userId)); + } }