Browse Source

Merge branch 'dev_analysis' of http://121.42.41.42:7070/r/esua-epdc-cloud into dev_1118

 Conflicts:
	esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
	esua-epdc/epdc-gateway/pom.xml
	esua-epdc/epdc-gateway/src/main/resources/application.yml
	esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
feature/dangjian
李鹏飞 6 years ago
parent
commit
ecd14c54d6
  1. 20
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  2. 37
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  3. 52
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  4. 26
      esua-epdc/epdc-gateway/pom.xml
  5. 9
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  6. 0
      esua-epdc/epdc-module/epdc-analysis/db/mysql.sql
  7. 0
      esua-epdc/epdc-module/epdc-analysis/db/oracle.sql
  8. 0
      esua-epdc/epdc-module/epdc-analysis/db/postgresql.sql
  9. 0
      esua-epdc/epdc-module/epdc-analysis/db/sqlserver.sql
  10. 27
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/pom.xml
  11. 64
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java
  12. 63
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemResultDTO.java
  13. 61
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java
  14. 205
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml
  15. 31
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java
  16. 26
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java
  17. 22
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java
  18. 41
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java
  19. 111
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java
  20. 17
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java
  21. 61
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java
  22. 52
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueController.java
  23. 52
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
  24. 31
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
  25. 59
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
  26. 59
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java
  27. 42
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  28. 24
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  29. 41
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  30. 71
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicController.java
  31. 53
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicDao.java
  32. 49
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicService.java
  33. 61
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicServiceImpl.java
  34. 21
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ModuleConstant.java
  35. 74
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-dev.yml
  36. 74
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-prod.yml
  37. 74
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-test.yml
  38. 62
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application.yml
  39. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages.properties
  40. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_en_US.properties
  41. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_CN.properties
  42. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_TW.properties
  43. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation.properties
  44. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_en_US.properties
  45. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_CN.properties
  46. 1
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_TW.properties
  47. 159
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/logback-spring.xml
  48. 106
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/issue/IssueDao.xml
  49. 53
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemDao.xml
  50. 96
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/topic/TopicDao.xml
  51. 21
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/registry.conf
  52. 21
      esua-epdc/epdc-module/epdc-analysis/pom.xml
  53. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java
  54. 3
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java
  55. 36
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java
  56. 13
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java
  57. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java
  58. 6
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java
  59. 603
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  60. 1
      esua-epdc/epdc-module/pom.xml

20
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -299,6 +299,8 @@ public class SysUserController {
/**
* 组装用户部门多层结构
* <p>auth模块调用用户登录时获取用户机构权限返回页面组装下拉菜单所需数据保存在redis</p>
* <p>组装三层街道-社区-网格</p>
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result
@ -313,6 +315,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构用户前端显示请求需携带token
* <p>调接口从redis获取{@link SysUserController#packageUserDeptOption(Long)}接口生成的数据</p>
* <p>此接口展示三级机构层级街道-社区-网格不包括区级</p>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
@ -325,6 +329,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
* <p>新闻通知发布选择机构可多选且展示完整层级结构市区-街道-社区-网格</p>
* <P>新闻通知页面主动触发不在用户登录是自动调用</P>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
@ -336,6 +342,20 @@ public class SysUserController {
return new Result().ok(option);
}
/**
* 用户数据分析pc端页面获取用户街道-社区层级关系前端显示请求需携带token
* <p>网格开通情况与用户排名分析页面用只组装街道-社区两级</p>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
* @date 2020/2/10 14:45
*/
@GetMapping("deptOptions/getMiddleByLoginUser")
public Result<DeptOption> getMiddleByLoginUser() {
DeptOption option = sysDeptService.getMiddleByLoginUser();
return new Result().ok(option);
}
/**
* 退出登录
*

37
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -79,11 +79,11 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* 通过网格ID获取该网格所有上级机构
*
* @param deptId
* @return com.elink.esua.epdc.dto.CompleteDeptDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CompleteDeptDTO>
* @author yujintao
* @date 2019/9/7 09:13
*/
ParentAndAllDeptDTO getParentAndAllDept(String deptId);
Result<ParentAndAllDeptDTO> getParentAndAllDept(String deptId);
/**
* 通过街道ID获取项目可流转部门
@ -172,6 +172,7 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
**/
List<UserSysDeptInfoResultDTO> listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO);
/***
* 组装所有部门
* @param
@ -211,40 +212,18 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
*
* @return com.elink.esua.epdc.dto.DeptOption
* @author work@yujt.net.cn
* @date 2020/1/28 10:40
*/
DeptOption getAllDeptOptionByLoginUser();
/***
* 获取所有网格
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author qushutong
* @date 2019/12/12 17:29
*/
Result<List<Long>> listAllGridId();
/**
* 按部门类型分页查询部门列表
*
* @param typeKey 部门类型
* @param pageSize 页容量
* @param pageIndex 页码
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author work@yujt.net.cn
* @date 2019/12/17 16:05
*/
Result<List<Long>> pageDeptIdByTypeKey(String typeKey, Integer pageSize, Integer pageIndex);
/**
* 根据部门id获取部门层级关系获取部门领导姓名
* 获取用户部门层级结构街道-社区用户前端显示请求需携带token
*
* @param deptId 部门id
* @param leaderFlag 是否需要查询网格长姓名 0 1
* @return com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO
* @return com.elink.esua.epdc.dto.DeptOption
* @author work@yujt.net.cn
* @date 2019/12/18 11:05
* @date 2020/2/10 13:38
*/
DeptLevelAndLeaderDTO getDeptInfoById(Long deptId, String leaderFlag);
DeptOption getMiddleByLoginUser();
}

52
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -360,6 +360,56 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return (DeptOption) obj;
}
@Override
public DeptOption getMiddleByLoginUser() {
Long userId = SecurityUser.getUserId();
String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(userId);
Object obj = redisUtils.get(deptOptionKey);
if (null == obj) {
this.packageUserDeptOption(userId);
obj = redisUtils.get(deptOptionKey);
}
DeptOption result = (DeptOption) obj;
List<JSONObject> options = result.getOptions();
if (options.isEmpty()) {
return result;
}
// 代表存在子级机构的json key
String childJsonOptionKey = "children";
// 一个街道机构
JSONObject streetOption;
// 一个街道下所有社区机构
JSONArray communityOptionArray;
// 一个社区机构
JSONObject communityOption;
// 循环所有街道
for (int i = options.size() - NumConstant.ONE; i >= NumConstant.ZERO; i--) {
// 取出一个街道
streetOption = options.get(i);
// 街道有children,代表有下级社区(没有children的,其实是区直)
if (null != streetOption.get(childJsonOptionKey)) {
// 获取该街道的所有社区
communityOptionArray = streetOption.getJSONArray(childJsonOptionKey);
if (!communityOptionArray.isEmpty()) {
// 社区不为空,循环所有社区
for (int j = 0; j < communityOptionArray.size(); j++) {
// 取出一个社区
communityOption = communityOptionArray.getJSONObject(j);
// 社区有children,代表有下级网格,
if (null != communityOption.get(childJsonOptionKey)) {
// 移除网格
communityOption.remove(childJsonOptionKey);
}
}
}
} else {
// 移除区直机构
options.remove(i);
}
}
return result;
}
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
@ -415,7 +465,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
packageDeptOptionByUser(userId, false);
}
public void packageAllUserDeptOption(Long userId) {
private void packageAllUserDeptOption(Long userId) {
packageDeptOptionByUser(userId, true);
}

26
esua-epdc/epdc-gateway/pom.xml

@ -99,12 +99,12 @@
<!-- gateway routes -->
<gateway.routes.epdc-auth-server.uri>lb://epdc-auth-server</gateway.routes.epdc-auth-server.uri>
<gateway.routes.epdc-admin-server.uri>lb://epdc-admin-server</gateway.routes.epdc-admin-server.uri>
<!-- <gateway.routes.epdc-admin-server.uri>http://127.0.0.1:9092</gateway.routes.epdc-admin-server.uri>-->
<!-- <gateway.routes.epdc-admin-server.uri>lb://epdc-admin-server</gateway.routes.epdc-admin-server.uri>-->
<gateway.routes.epdc-admin-server.uri>http://127.0.0.1:9092</gateway.routes.epdc-admin-server.uri>
<gateway.routes.epdc-activiti-server.uri>lb://epdc-activiti-server
</gateway.routes.epdc-activiti-server.uri>
<!--<gateway.routes.epdc-api-server.uri>lb://epdc-api-server</gateway.routes.epdc-api-server.uri>-->
<gateway.routes.epdc-api-server.uri>http://127.0.0.1:9040</gateway.routes.epdc-api-server.uri>
<gateway.routes.epdc-api-server.uri>lb://epdc-api-server</gateway.routes.epdc-api-server.uri>
<!-- <gateway.routes.epdc-api-server.uri>http://127.0.0.1:9040</gateway.routes.epdc-api-server.uri>-->
<gateway.routes.epdc-app-server.uri>lb://epdc-app-server</gateway.routes.epdc-app-server.uri>
<!-- <gateway.routes.epdc-app-server.uri>http://127.0.0.1:9058</gateway.routes.epdc-app-server.uri>-->
<gateway.routes.epdc-heart-server.uri>lb://epdc-heart-server</gateway.routes.epdc-heart-server.uri>
@ -127,11 +127,11 @@
<gateway.routes.epdc-group-server.uri>http://127.0.0.1:9063</gateway.routes.epdc-group-server.uri>
<!--<gateway.routes.epdc-group-server.uri>lb://epdc-group-server</gateway.routes.epdc-group-server.uri>-->
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>
<!-- <gateway.routes.epdc-custom-server.uri>http://127.0.0.1:9076</gateway.routes.epdc-kpi-server.uri>-->
<gateway.routes.epdc-custom-server.uri>lb://epdc-custom-server</gateway.routes.epdc-custom-server.uri>
<gateway.routes.epdc-points-server.uri>lb://epdc-points-server</gateway.routes.epdc-points-server.uri>
<!-- <gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>-->
<gateway.routes.epdc-kpi-server.uri>http://127.0.0.1:9069</gateway.routes.epdc-kpi-server.uri>
<!-- <gateway.routes.epdc-analysis-server.uri>http://127.0.0.1:9077</gateway.routes.epdc-analysis-server.uri>-->
<gateway.routes.epdc-analysis-server.uri>lb://epdc-analysis-server</gateway.routes.epdc-analysis-server.uri>
<!-- nacos -->
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
@ -169,11 +169,10 @@
<gateway.routes.epdc-user-server.uri>lb://epdc-user-server</gateway.routes.epdc-user-server.uri>
<gateway.routes.epdc-demo-server.uri>lb://epdc-demo-server</gateway.routes.epdc-demo-server.uri>
<gateway.routes.epdc-group-server.uri>lb://epdc-group-server</gateway.routes.epdc-group-server.uri>
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server
</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>
<gateway.routes.epdc-custom-server.uri>lb://epdc-custom-server</gateway.routes.epdc-custom-server.uri>
<gateway.routes.epdc-points-server.uri>lb://epdc-points-server</gateway.routes.epdc-points-server.uri>
<gateway.routes.epdc-analysis-server.uri>lb://epdc-analysis-server</gateway.routes.epdc-analysis-server.uri>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
@ -207,11 +206,10 @@
<gateway.routes.epdc-user-server.uri>lb://epdc-user-server</gateway.routes.epdc-user-server.uri>
<gateway.routes.epdc-demo-server.uri>lb://epdc-demo-server</gateway.routes.epdc-demo-server.uri>
<gateway.routes.epdc-group-server.uri>lb://epdc-group-server</gateway.routes.epdc-group-server.uri>
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server
</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>
<gateway.routes.epdc-custom-server.uri>lb://epdc-custom-server</gateway.routes.epdc-custom-server.uri>
<gateway.routes.epdc-points-server.uri>lb://epdc-points-server</gateway.routes.epdc-points-server.uri>
<gateway.routes.epdc-analysis-server.uri>lb://epdc-analysis-server</gateway.routes.epdc-analysis-server.uri>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
@ -251,6 +249,7 @@
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>
<gateway.routes.epdc-custom-server.uri>lb://epdc-custom-server</gateway.routes.epdc-custom-server.uri>
<gateway.routes.epdc-analysis-server.uri>lb://epdc-analysis-server</gateway.routes.epdc-analysis-server.uri>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
@ -291,6 +290,7 @@
<gateway.routes.epdc-websocket-server.uri>lb://epdc-websocket-server</gateway.routes.epdc-websocket-server.uri>
<gateway.routes.epdc-kpi-server.uri>lb://epdc-kpi-server</gateway.routes.epdc-kpi-server.uri>
<gateway.routes.epdc-custom-server.uri>lb://epdc-custom-server</gateway.routes.epdc-custom-server.uri>
<gateway.routes.epdc-analysis-server.uri>lb://epdc-analysis-server</gateway.routes.epdc-analysis-server.uri>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>

9
esua-epdc/epdc-gateway/src/main/resources/application.yml

@ -162,12 +162,12 @@ spring:
- Path=${server.servlet.context-path}/custom/**
filters:
- StripPrefix=1
#积分管理
- id: epdc-points-server
uri: @gateway.routes.epdc-points-server.uri@
#数据分析模块
- id: epdc-analysis-server
uri: @gateway.routes.epdc-analysis-server.uri@
order: 18
predicates:
- Path=${server.servlet.context-path}/points/**
- Path=${server.servlet.context-path}/analysis/**
filters:
- StripPrefix=1
nacos:
@ -222,6 +222,7 @@ renren:
- /activiti/service/**
- /activiti/editor-app/**
- /message/sms/sendCode #发送验证码
- /heart/**
- /oss/file/download
- /ws/**
workLoginUrls:

0
esua-epdc/epdc-module/epdc-analysis/db/mysql.sql

0
esua-epdc/epdc-module/epdc-analysis/db/oracle.sql

0
esua-epdc/epdc-module/epdc-analysis/db/postgresql.sql

0
esua-epdc/epdc-module/epdc-analysis/db/sqlserver.sql

27
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/pom.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-analysis</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>epdc-analysis-client</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-tools</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
</build>
</project>

64
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java

@ -0,0 +1,64 @@
package com.elink.esua.epdc.dto.issue.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 议题列表DTO
* @Author yinzuomei
* @Date 2020/2/10 15:58
*/
@Data
public class IssueResultDTO implements Serializable {
/**
* epdc_issue主键
*/
private String id;
/**
* 议题内容
*/
private String issueContent;
/**
* 来源网格-所有部门
*/
private String allDeptNames;
/**
* 用户昵称
*/
private String nickName;
/**
* 发布时间
*/
private Date createdTime;
/**
* 支持-点赞次数
*/
private Integer approveNum;
/**
* 反对-踩次数
*/
private Integer opposeNum;
/**
* 评论数
*/
private Integer commentNum;
/**
* 浏览数
*/
private Integer browseNum;
/**
* 表达态度评论+回复+浏览
*/
private Integer expressAttitudeNum;
}

63
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemResultDTO.java

@ -0,0 +1,63 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 项目列表DTO
* @Author yinzuomei
* @Date 2020/2/10 13:44
*/
@Data
public class ItemResultDTO implements Serializable {
/**
* epdc_item表主键
*/
private String id;
/**
* 议题内容-项目摘要
*/
private String itemContent;
/**
* 所有部门
*/
private String allDeptNames;
/**
* 发布人用户昵称
*/
private String nickName;
/**
* 发布时间
*/
private Date releaseTime;
/**
* 支持-点赞次数
*/
private Integer approveNum;
/**
* 反对-踩次数
*/
private Integer opposeNum;
/**
* 评论数
*/
private Integer commentNum;
/**
* 浏览数
*/
private Integer browseNum;
/**
* 表达态度评论+回复+浏览
*/
private Integer expressAttitudeNum;
}

61
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java

@ -0,0 +1,61 @@
package com.elink.esua.epdc.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 话题列表DTO
* @Author yinzuomei
* @Date 2020/2/10 11:31
*/
@Data
public class TopicResultDTO implements Serializable {
private static final long serialVersionUID = -1938141144074477454L;
/**
* 主键
*/
private String id;
/**
* 话题摘要
*/
private String topicContent;
/**
* 所有部门
*/
private String allDeptNames;
/**
* 网格来源群名称
*/
private String groupName;
/**
* 话题发布人姓名
*/
private String nickName;
/**
* 发布时间
*/
private Date releaseTime;
/**
* 评论数评论+回复
*/
private Integer commentNum;
/**
* 浏览数
*/
private Integer browseNum;
/**
* 表达态度评论+回复+浏览
*/
private Integer expressAttitudeNum;
}

205
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-analysis</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>epdc-analysis-server</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-analysis-client</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-tools</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-mybatis</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring.boot.admin.version}</version>
</dependency>
<!-- nacos start -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos end -->
<!--版本控制-->
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-api-version-control</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
</plugin>
</plugins>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/application*.yml</include>
<include>**/*.properties</include>
<include>logback-spring.xml</include>
<include>registry.conf</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/application*.yml</exclude>
<exclude>**/*.properties</exclude>
<exclude>logback-spring.xml</exclude>
<exclude>registry.conf</exclude>
</excludes>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
<server.port>9077</server.port>
<spring.redis.index>2</spring.redis.index>
<spring.redis.host>47.104.224.45</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>elink@888</spring.redis.password>
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<spring.profiles.active>test</spring.profiles.active>
<server.port>9077</server.port>
<spring.redis.index>2</spring.redis.index>
<spring.redis.host>47.104.224.45</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>elink@888</spring.redis.password>
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<server.port>9077</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>10.5.34.164</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>Elink@833066</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>10.5.34.164:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>prod_kongcun</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<server.port>9077</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.16.1.238</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>Elink833066</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.1.238:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>prod_shibei_aliyun</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<server.port>9077</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.16.0.54</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>Elink833066</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
</properties>
</profile>
</profiles>
</project>

31
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java

@ -0,0 +1,31 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.elink.esua.epdc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* 模块
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class AnalysisApplication {
public static void main(String[] args) {
SpringApplication.run(AnalysisApplication.class, args);
}
}

26
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java

@ -0,0 +1,26 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
package com.elink.esua.epdc.config;
import com.elink.esua.epdc.commons.tools.config.ModuleConfig;
import org.springframework.stereotype.Service;
/**
* 模块配置信息
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Service
public class ModuleConfigImpl implements ModuleConfig {
@Override
public String getName() {
return "analysis";
}
}

22
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java

@ -0,0 +1,22 @@
package com.elink.esua.epdc.datasources;
/**
*
* 增加多数据源在此配置
*
* @Authorliuchuang
* @Date2020/2/9 14:50
*/
public interface DataSourceNames {
String FIRST = "first";
String SECOND = "second";
String THIRD = "third";
String FOURTH = "fourth";
String FIFTH = "fifth";
String SIXTH = "sixth";
String SEVENTH = "seventh";
String EIGHTH = "eighth";
String NINTH = "ninth";
String TENTH = "tenth";
String ELEVENTH = "eleventh";
}

41
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java

@ -0,0 +1,41 @@
package com.elink.esua.epdc.datasources;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import javax.sql.DataSource;
import java.util.Map;
/**
*
* 动态数据源
*
* @Authorliuchuang
* @Date2020/2/9 14:59
*/
public class DynamicDataSource extends AbstractRoutingDataSource {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();
public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) {
super.setDefaultTargetDataSource(defaultTargetDataSource);
super.setTargetDataSources(targetDataSources);
super.afterPropertiesSet();
}
@Override
protected Object determineCurrentLookupKey() {
return getDataSource();
}
public static void setDataSource(String dataSource) {
contextHolder.set(dataSource);
}
public static String getDataSource() {
return contextHolder.get();
}
public static void clearDataSource() {
contextHolder.remove();
}
}

111
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java

@ -0,0 +1,111 @@
package com.elink.esua.epdc.datasources;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
/**
*
* 配置多数据源
*
* @Authorliuchuang
* @Date2020/2/9 15:04
*/
@Configuration
public class DynamicDataSourceConfig {
@Bean
@ConfigurationProperties("spring.datasource.druid.first")
public DataSource firstDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.second")
public DataSource secondDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.third")
public DataSource thirdDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.fourth")
public DataSource fourthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.fifth")
public DataSource fifthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.sixth")
public DataSource sixthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.seventh")
public DataSource seventhDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.eighth")
public DataSource eighthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.ninth")
public DataSource ninthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.tenth")
public DataSource tenthDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.eleventh")
public DataSource eleventhDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@Primary
public DynamicDataSource dataSource(DataSource firstDataSource, DataSource secondDataSource,
DataSource thirdDataSource, DataSource fourthDataSource,
DataSource fifthDataSource, DataSource sixthDataSource,
DataSource seventhDataSource, DataSource eighthDataSource,
DataSource ninthDataSource, DataSource tenthDataSource,
DataSource eleventhDataSource) {
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceNames.FIRST, firstDataSource);
targetDataSources.put(DataSourceNames.SECOND, secondDataSource);
targetDataSources.put(DataSourceNames.THIRD, thirdDataSource);
targetDataSources.put(DataSourceNames.FOURTH, fourthDataSource);
targetDataSources.put(DataSourceNames.FIFTH, fifthDataSource);
targetDataSources.put(DataSourceNames.SIXTH, sixthDataSource);
targetDataSources.put(DataSourceNames.SEVENTH, seventhDataSource);
targetDataSources.put(DataSourceNames.EIGHTH, eighthDataSource);
targetDataSources.put(DataSourceNames.NINTH, ninthDataSource);
targetDataSources.put(DataSourceNames.TENTH, tenthDataSource);
targetDataSources.put(DataSourceNames.ELEVENTH, eleventhDataSource);
return new DynamicDataSource(firstDataSource, targetDataSources);
}
}

17
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java

@ -0,0 +1,17 @@
package com.elink.esua.epdc.datasources.annotation;
import java.lang.annotation.*;
/**
*
* 多数据源注解
*
* @Authorliuchuang
* @Date2020/2/9 14:50
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSource {
String name() default "";
}

61
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java

@ -0,0 +1,61 @@
package com.elink.esua.epdc.datasources.aspect;
import com.elink.esua.epdc.datasources.DataSourceNames;
import com.elink.esua.epdc.datasources.DynamicDataSource;
import com.elink.esua.epdc.datasources.annotation.DataSource;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
/**
*
* 多数据源切面处理类
*
* @Authorliuchuang
* @Date2020/2/9 15:12
*/
@Aspect
@Component
public class DataSourceAspect implements Ordered {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Pointcut("@annotation(com.elink.esua.epdc.datasources.annotation.DataSource)")
public void dataSourcePointCut() {
}
@Around("dataSourcePointCut()")
public Object around(ProceedingJoinPoint point) throws Throwable {
MethodSignature signature = (MethodSignature) point.getSignature();
Method method = signature.getMethod();
DataSource ds = method.getAnnotation(DataSource.class);
if(ds == null){
DynamicDataSource.setDataSource(DataSourceNames.FIRST);
logger.debug("set datasource is " + DataSourceNames.FIRST);
}else {
DynamicDataSource.setDataSource(ds.name());
logger.debug("set datasource is " + ds.name());
}
try {
return point.proceed();
} finally {
DynamicDataSource.clearDataSource();
logger.debug("clean datasource");
}
}
@Override
public int getOrder() {
return 1;
}
}

52
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueController.java

@ -0,0 +1,52 @@
package com.elink.esua.epdc.modules.issue.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.modules.issue.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @Description 议题相关
* @Author yinzuomei
* @Date 2020/2/10 16:06
*/
@RestController
@RequestMapping("issue")
public class IssueController {
@Autowired
private IssueService issueService;
/**
* @param params
* @return com.elink.esua.epdc.dto.issue.result.IssueResultDTO
* @Author yinzuomei
* @Description 最热议题列表
* @Date 2020/2/10 16:15
**/
@GetMapping("pageHottestIssue")
public Result<PageData<IssueResultDTO>> pageHottestIssue(@RequestParam Map<String, Object> params) {
PageData<IssueResultDTO> page = issueService.listHottestIssue(params);
return new Result<PageData<IssueResultDTO>>().ok(page);
}
/**
* @param params
* @return com.elink.esua.epdc.dto.issue.result.IssueResultDTO
* @Author yinzuomei
* @Description 最新议题列表
* @Date 2020/2/10 16:15
**/
@GetMapping("pageLatestIssue")
public Result<PageData<IssueResultDTO>> pageLatestIssue(@RequestParam Map<String, Object> params) {
PageData<IssueResultDTO> page = issueService.listLatestIssue(params);
return new Result<PageData<IssueResultDTO>>().ok(page);
}
}

52
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java

@ -0,0 +1,52 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.issue.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @Description 议题相关
* @Author yinzuomei
* @Date 2020/2/10 16:06
*/
@Mapper
public interface IssueDao extends BaseDao<IssueResultDTO> {
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最热议题列表
* @Date 2020/2/10 16:19
**/
List<IssueResultDTO> selectListHottestIssue(Map<String, Object> params);
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最新议题列表
* @Date 2020/2/10 16:19
**/
List<IssueResultDTO> selectListLatestIssue(Map<String, Object> params);
}

31
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java

@ -0,0 +1,31 @@
package com.elink.esua.epdc.modules.issue.service;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import java.util.Map;
/**
* @Description 议题相关
* @Author yinzuomei
* @Date 2020/2/10 16:06
*/
public interface IssueService {
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最热议题列表
* @Date 2020/2/10 16:16
**/
PageData<IssueResultDTO> listHottestIssue(Map<String, Object> params);
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最新议题列表
* @Date 2020/2/10 16:16
**/
PageData<IssueResultDTO> listLatestIssue(Map<String, Object> params);
}

59
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java

@ -0,0 +1,59 @@
package com.elink.esua.epdc.modules.issue.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.datasources.DataSourceNames;
import com.elink.esua.epdc.datasources.annotation.DataSource;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.modules.issue.dao.IssueDao;
import com.elink.esua.epdc.modules.issue.service.IssueService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @Description 议题相关
* @Author yinzuomei
* @Date 2020/2/10 16:06
*/
@Service
public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueResultDTO> implements IssueService {
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最热议题列表
* @Date 2020/2/10 16:17
**/
@DataSource(name = DataSourceNames.FOURTH)
@Override
public PageData<IssueResultDTO> listHottestIssue(Map<String, Object> params) {
UserDetail userDetail= SecurityUser.getUser();
params.put("deptIdList",userDetail.getDeptIdList());
IPage<IssueResultDTO> page = getPage(params);
List<IssueResultDTO> list = baseDao.selectListHottestIssue(params);
return new PageData<>(list, page.getTotal());
}
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.issue.result.IssueResultDTO>
* @Author yinzuomei
* @Description 最新议题列表
* @Date 2020/2/10 16:17
**/
@DataSource(name = DataSourceNames.FOURTH)
@Override
public PageData<IssueResultDTO> listLatestIssue(Map<String, Object> params) {
UserDetail userDetail= SecurityUser.getUser();
params.put("deptIdList",userDetail.getDeptIdList());
IPage<IssueResultDTO> page = getPage(params);
List<IssueResultDTO> list = baseDao.selectListLatestIssue(params);
return new PageData<>(list, page.getTotal());
}
}

59
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java

@ -0,0 +1,59 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.item.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import com.elink.esua.epdc.modules.item.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* 项目表 项目表
*
* @author yujintao yujintao@elink-cn.com
* @since v1.0.0 2019-09-04
*/
@RestController
@RequestMapping("item")
public class ItemController {
@Autowired
private ItemService itemService;
/**
* @param params
* @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
* @Author yinzuomei
* @Description 最热项目列表查询
* @Date 2020/2/10 13:45
**/
@GetMapping("pageHottestItem")
public Result<PageData<ItemResultDTO>> pageHottestItem(@RequestParam Map<String, Object> params) {
PageData<ItemResultDTO> page = itemService.listItemResultDTO(params);
return new Result<PageData<ItemResultDTO>>().ok(page);
}
}

42
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java

@ -0,0 +1,42 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.item.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @Description 项目模块
* @Author yinzuomei
* @Date 2020/2/10 13:43
*/
@Mapper
public interface ItemDao extends BaseDao<ItemResultDTO> {
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>
* @Author yinzuomei
* @Description 最热项目列表查询
* @Date 2020/2/10 13:53
**/
List<ItemResultDTO> selectListHottestItemResultDTO(Map<String, Object> params);
}

24
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java

@ -0,0 +1,24 @@
package com.elink.esua.epdc.modules.item.service;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import java.util.Map;
/**
* 项目模块
*
* @Author yinzuomei
* @Date 2020/2/10 13:43
*/
public interface ItemService {
/**
* @param params
* @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
* @Author yinzuomei
* @Description 最热项目列表查询
* @Date 2020/2/10 13:46
**/
PageData<ItemResultDTO> listItemResultDTO(Map<String, Object> params);
}

41
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java

@ -0,0 +1,41 @@
package com.elink.esua.epdc.modules.item.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.datasources.DataSourceNames;
import com.elink.esua.epdc.datasources.annotation.DataSource;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import com.elink.esua.epdc.modules.item.dao.ItemDao;
import com.elink.esua.epdc.modules.item.service.ItemService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @Description 项目模块
* @Author yinzuomei
* @Date 2020/2/10 13:43
*/
@Service
public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemResultDTO> implements ItemService {
/**
* @param params
* @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
* @Author yinzuomei
* @Description 最热项目列表查询
* @Date 2020/2/10 13:47
**/
@DataSource(name = DataSourceNames.FOURTH)
@Override
public PageData<ItemResultDTO> listItemResultDTO(Map<String, Object> params) {
UserDetail userDetail = SecurityUser.getUser();
params.put("deptIdList", userDetail.getDeptIdList());
IPage<ItemResultDTO> page = getPage(params);
List<ItemResultDTO> list = baseDao.selectListHottestItemResultDTO(params);
return new PageData<>(list, page.getTotal());
}
}

71
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicController.java

@ -0,0 +1,71 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.topic.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* 话题相关接口
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-10
*/
@RestController
@RequestMapping("topic")
public class TopicController {
@Autowired
private TopicService topicService;
/**
* @param params
* @return com.elink.esua.epdc.dto.result.TopicResultDTO
* @Author yinzuomei
* @Description 最热话题列表查询
* @Date 2020/2/10 11:34
**/
@GetMapping("pageHottestTopic")
public Result<PageData<TopicResultDTO>> pageHottestTopic(@RequestParam Map<String, Object> params) {
PageData<TopicResultDTO> page = topicService.listHottestTopic(params);
return new Result<PageData<TopicResultDTO>>().ok(page);
}
/**
* @param params
* @return com.elink.esua.epdc.dto.result.TopicResultDTO
* @Author yinzuomei
* @Description 最新话题列表查询
* @Date 2020/2/10 12:50
**/
@GetMapping("pageLatestTopic")
public Result<PageData<TopicResultDTO>> pageLatestTopic(@RequestParam Map<String, Object> params) {
PageData<TopicResultDTO> page = topicService.listLatestTopic(params);
return new Result<PageData<TopicResultDTO>>().ok(page);
}
}

53
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicDao.java

@ -0,0 +1,53 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.topic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 话题表 话题表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-10
*/
@Mapper
public interface TopicDao extends BaseMapper<TopicResultDTO> {
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.result.TopicResultDTO>
* @Author yinzuomei
* @Description 最热话题列表查询
* @Date 2020/2/10 11:52
**/
List<TopicResultDTO> selectListHottestTopicDTO(Map<String, Object> params);
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.result.TopicResultDTO>
* @Author yinzuomei
* @Description 最新话题列表查询
* @Date 2020/2/10 12:51
**/
List<TopicResultDTO> selectListLatesttTopicDTO(Map<String, Object> params);
}

49
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicService.java

@ -0,0 +1,49 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.topic.service;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
import java.util.Map;
/**
* 话题相关Service
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-10
*/
public interface TopicService {
/**
* @param params
* @return com.elink.esua.epdc.dto.result.TopicResultDTO
* @Author yinzuomei
* @Description 最热话题列表查询
* @Date 2020/2/10 11:34
**/
PageData<TopicResultDTO> listHottestTopic(Map<String, Object> params);
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.result.TopicResultDTO>
* @Author yinzuomei
* @Description 最新话题列表查询
* @Date 2020/2/10 12:50
**/
PageData<TopicResultDTO> listLatestTopic(Map<String, Object> params);
}

61
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicServiceImpl.java

@ -0,0 +1,61 @@
package com.elink.esua.epdc.modules.topic.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.datasources.DataSourceNames;
import com.elink.esua.epdc.datasources.annotation.DataSource;
import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
import com.elink.esua.epdc.modules.topic.dao.TopicDao;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @Description 话题相关Service
* @Author yinzuomei
* @Date 2020/2/10 10:56
*/
@Service
public class TopicServiceImpl extends BaseServiceImpl<TopicDao, TopicResultDTO> implements TopicService {
/**
* @param params
* @return com.elink.esua.epdc.dto.result.HottestTopicResultDTO
* @Author yinzuomei
* @Description 最热话题列表查询
* @Date 2020/2/10 12:53
**/
@DataSource(name = DataSourceNames.FIFTH)
@Override
public PageData<TopicResultDTO> listHottestTopic(Map<String, Object> params) {
UserDetail userDetail = SecurityUser.getUser();
params.put("deptIdList", userDetail.getDeptIdList());
IPage<TopicResultDTO> page = getPage(params);
List<TopicResultDTO> list = baseDao.selectListHottestTopicDTO(params);
return new PageData<>(list, page.getTotal());
}
/**
* @param params
* @return com.elink.esua.epdc.dto.result.LatestTopicResultDTO
* @Author yinzuomei
* @Description 最新话题列表查询
* @Date 2020/2/10 12:53
**/
@DataSource(name = DataSourceNames.FIFTH)
@Override
public PageData<TopicResultDTO> listLatestTopic(Map<String, Object> params) {
UserDetail userDetail = SecurityUser.getUser();
params.put("deptIdList", userDetail.getDeptIdList());
IPage<TopicResultDTO> page = getPage(params);
List<TopicResultDTO> list = baseDao.selectListLatesttTopicDTO(params);
return new PageData<>(list, page.getTotal());
}
}

21
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ModuleConstant.java

@ -0,0 +1,21 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.elink.esua.epdc.utils;
import com.elink.esua.epdc.commons.tools.constant.Constant;
/**
* 模块常量
*
* @author Mark sunlightcs@gmail.com
* @since 1.1.0
*/
public interface ModuleConstant extends Constant {
}

74
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-dev.yml

@ -0,0 +1,74 @@
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
first: #数据源1
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
second: #数据源2
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_api?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
third: #数据源3
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_custom?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
fourth: #数据源4
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_events?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
fifth: #数据源5
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_group?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
sixth: #数据源6
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_job?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
seventh: #数据源7
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_kpi?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
eighth: #数据源8
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_mutuality?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
ninth: #数据源9
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_news?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
tenth: #数据源10
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_points?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
eleventh: #数据源11
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_user?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

74
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-prod.yml

@ -0,0 +1,74 @@
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
first: #数据源1
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
second: #数据源2
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_api?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
third: #数据源3
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_custom?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
fourth: #数据源4
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_events?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
fifth: #数据源5
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_group?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
sixth: #数据源6
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_job?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
seventh: #数据源7
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_kpi?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
eighth: #数据源8
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_mutuality?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
ninth: #数据源9
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_news?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
tenth: #数据源10
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_points?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
eleventh: #数据源11
url: jdbc:mysql://172.16.0.52:3308/esua_epdc_user?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: Elink@833066
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

74
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-test.yml

@ -0,0 +1,74 @@
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
first: #数据源1
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
second: #数据源2
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_api?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
third: #数据源3
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_custom?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
fourth: #数据源4
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_events?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
fifth: #数据源5
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_group?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
sixth: #数据源6
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_job?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
seventh: #数据源7
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_kpi?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
eighth: #数据源8
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_mutuality?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
ninth: #数据源9
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_news?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
tenth: #数据源10
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_points?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
eleventh: #数据源11
url: jdbc:mysql://47.104.224.45:3308/esua_epdc_user?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: epdc
password: elink833066
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

62
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application.yml

@ -0,0 +1,62 @@
server:
port: @server.port@
servlet:
context-path: /analysis
spring:
main:
allow-bean-definition-overriding: true
application:
name: epdc-analysis-server
# 环境 dev|test|prod
profiles:
active: @spring.profiles.active@
messages:
encoding: UTF-8
basename: i18n/messages,i18n/messages_common
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
redis:
database: @spring.redis.index@
host: @spring.redis.host@
timeout: 30s
port: @spring.redis.port@
password: @spring.redis.password@
cloud:
nacos:
discovery:
server-addr: @nacos.server-addr@
register-enabled: @nacos.register-enabled@
alibaba:
seata:
tx-service-group: epdc-analysis-server-fescar-service-group
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.elink.esua.epdc.modules.*.entity
global-config:
#数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: UUID
#字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
field-strategy: NOT_NULL
#驼峰下划线转换
column-underline: true
banner: false
#原生配置
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages.properties

@ -0,0 +1 @@
#Default

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_en_US.properties

@ -0,0 +1 @@
#English

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_CN.properties

@ -0,0 +1 @@
#\u7B80\u4F53\u4E2D\u6587

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_TW.properties

@ -0,0 +1 @@
#\u7E41\u4F53\u4E2D\u6587

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation.properties

@ -0,0 +1 @@
#Default

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_en_US.properties

@ -0,0 +1 @@
#English

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_CN.properties

@ -0,0 +1 @@
#\u7B80\u4F53\u4E2D\u6587

1
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_TW.properties

@ -0,0 +1 @@
#\u7E41\u4F53\u4E2D\u6587

159
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/logback-spring.xml

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property name="log.path" value="logs/analysis"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!--1. 输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--2. 输出到文档-->
<!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/debug.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>${log.path}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.2 level为 INFO 日志,时间滚动输出 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/info.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.3 level为 WARN 日志,时间滚动输出 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/warn.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/error.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<logger name="com.elink.esua.epdc.dao" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="ERROR"/>
<logger name="org.springboot.sample" level="ERROR"/>
<logger name="com.elink.esua.epdc" level="ERROR"/>
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
</configuration>

106
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/issue/IssueDao.xml

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.modules.issue.dao.IssueDao">
<!-- 最热议题列表 -->
<select id="selectListHottestIssue" resultType="com.elink.esua.epdc.dto.issue.result.IssueResultDTO">
SELECT
ei.ID,
ei.ISSUE_CONTENT,
ei.ALL_DEPT_NAMES,
ei.NICK_NAME,
ei.CREATED_TIME,
ee.APPROVE_NUM,
ee.OPPOSE_NUM,
ee.COMMENT_NUM,
ee.BROWSE_NUM,
( ee.COMMENT_NUM + ee.BROWSE_NUM + ee.APPROVE_NUM + ee.OPPOSE_NUM ) AS expressAttitudeNum
FROM
esua_epdc_events.epdc_issue ei
LEFT JOIN esua_epdc_events.epdc_events ee ON ee.ID = ei.EVENT_ID
AND ee.DEL_FLAG = '0'
<if test="issueContent != null and issueContent != ''">
AND ei.ISSUE_CONTENT LIKE CONCAT('%',#{issueContent},'%')
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},ei.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},ei.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (ei.GRID_ID = #{gridId}
OR find_in_set(#{gridId},ei.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &gt;=#{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &lt;=#{endTime}
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
and ei.GRID_ID in
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
WHERE
ei.DEL_FLAG = '0'
AND ei.ISSUE_STATE IN ( 0, 2 )
ORDER BY
expressAttitudeNum DESC
</select>
<!-- 最新议题列表 -->
<select id="selectListLatestIssue" resultType="com.elink.esua.epdc.dto.issue.result.IssueResultDTO">
SELECT
ei.ID,
ei.ISSUE_CONTENT,
ei.ALL_DEPT_NAMES,
ei.NICK_NAME,
ei.CREATED_TIME,
ee.APPROVE_NUM,
ee.OPPOSE_NUM,
ee.COMMENT_NUM,
ee.BROWSE_NUM,
( ee.COMMENT_NUM + ee.BROWSE_NUM + ee.APPROVE_NUM + ee.OPPOSE_NUM ) AS expressAttitudeNum
FROM
esua_epdc_events.epdc_issue ei
LEFT JOIN esua_epdc_events.epdc_events ee ON ee.ID = ei.EVENT_ID
AND ee.DEL_FLAG = '0'
<if test="issueContent != null and issueContent != ''">
AND ei.ISSUE_CONTENT LIKE CONCAT('%',#{issueContent},'%')
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},ei.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},ei.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (ei.GRID_ID = #{gridId}
OR find_in_set(#{gridId},ei.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &gt;=#{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &lt;=#{endTime}
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
and ei.GRID_ID in
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
WHERE
ei.DEL_FLAG = '0'
AND ei.ISSUE_STATE IN ( 0, 2 )
ORDER BY
expressAttitudeNum DESC,CREATED_TIME desc
</select>
</mapper>

53
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemDao.xml

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.modules.item.dao.ItemDao">
<select id="selectListHottestItemResultDTO" resultType="com.elink.esua.epdc.dto.item.result.ItemResultDTO">
SELECT
ei.id,
ei.ITEM_CONTENT,
ei.ALL_DEPT_NAMES,
ei.GRID,
ei.NICK_NAME,
ei.CREATED_TIME AS releaseTime,
ee.APPROVE_NUM,
ee.OPPOSE_NUM,
ee.COMMENT_NUM,
ee.BROWSE_NUM,
(ee.APPROVE_NUM + ee.OPPOSE_NUM + ee.COMMENT_NUM + ee.BROWSE_NUM ) AS expressAttitudeNum
FROM
epdc_item ei
LEFT JOIN epdc_events ee ON ( ei.EVENT_ID = ee.ID )
WHERE
ei.DEL_FLAG = '0'
AND ee.DEL_FLAG = '0'
<if test='searchContent != null and searchContent != ""'>
AND ei.ITEM_CONTENT LIKE CONCAT('%',#{searchContent},'%')
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},ei.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},ei.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},ei.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (ei.GRID_ID = #{gridId}
OR find_in_set(#{gridId},ei.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &gt;=#{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) &lt;=#{endTime}
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
and ei.GRID_ID in
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
ORDER BY expressAttitudeNum DESC
</select>
</mapper>

96
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/topic/TopicDao.xml

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.modules.topic.dao.TopicDao">
<!-- 最热话题列表查询 -->
<select id="selectListHottestTopicDTO" resultType="com.elink.esua.epdc.dto.topic.result.TopicResultDTO">
select
et.ID,
et.TOPIC_CONTENT,
et.ALL_DEPT_NAMES,
et.GRID,
et.GROUP_NAME,
et.NICKNAME,
et.CREATED_TIME as releaseTime,
et.COMMENT_NUM,
et.BROWSE_NUM,
et.COMMENT_NUM+et.BROWSE_NUM as expressAttitudeNum
from epdc_topic et
where et.DEL_FLAG='0'
and et.STATE='0'
<if test="topicContent != null and topicContent != ''">
and et.TOPIC_CONTENT like concat('%', #{topicContent}, '%')
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},et.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},et.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},et.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},et.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (et.GRID_ID = #{gridId}
OR find_in_set(#{gridId},et.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( et.CREATED_TIME, '%Y-%m-%d' ) &gt;=#{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT( et.CREATED_TIME, '%Y-%m-%d' ) &lt;=#{endTime}
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
and et.GRID_ID in
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
order by expressAttitudeNum desc
</select>
<!-- 最新话题列表查询 -->
<select id="selectListLatesttTopicDTO" resultType="com.elink.esua.epdc.dto.topic.result.TopicResultDTO">
select
et.ID,
et.TOPIC_CONTENT,
et.ALL_DEPT_NAMES,
et.GRID,
et.GROUP_NAME,
et.NICKNAME,
et.CREATED_TIME as releaseTime,
et.COMMENT_NUM,
et.BROWSE_NUM,
et.COMMENT_NUM+et.BROWSE_NUM as expressAttitudeNum
from epdc_topic et
where et.DEL_FLAG='0'
and et.STATE='0'
<if test="topicContent != null and topicContent != ''">
and et.TOPIC_CONTENT like concat('%', #{topicContent}, '%')
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},et.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},et.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},et.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},et.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (et.GRID_ID = #{gridId}
OR find_in_set(#{gridId},et.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( et.CREATED_TIME, '%Y-%m-%d' ) &gt;=#{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT( et.CREATED_TIME, '%Y-%m-%d' ) &lt;=#{endTime}
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
and et.GRID_ID in
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
order by expressAttitudeNum desc,releaseTime desc
</select>
</mapper>

21
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/registry.conf

@ -0,0 +1,21 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
serverAddr = "@nacos.server-addr@"
namespace = "public"
cluster = "default"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "@nacos.server-addr@"
namespace = "public"
cluster = "default"
}
}

21
esua-epdc/epdc-module/epdc-analysis/pom.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-module</artifactId>
<version>1.0.0</version>
</parent>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-analysis</artifactId>
<packaging>pom</packaging>
<modules>
<module>epdc-analysis-client</module>
<module>epdc-analysis-server</module>
</modules>
</project>

10
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java

@ -1,6 +1,8 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.*;
@ -9,6 +11,7 @@ import com.elink.esua.epdc.service.NewsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@ -24,6 +27,9 @@ public class NewsServiceImpl implements NewsService {
@Autowired
private NewsFeignClient newsFeignClient;
@Autowired
private RedisUtils redisUtils;
@Override
public Result<List<EpdcNoticeListResultDTO>> listNotice(TokenDto userDetail, EpdcNoticeListFormDTO formDto) {
formDto.setDeptId(userDetail.getGridId());
@ -42,6 +48,10 @@ public class NewsServiceImpl implements NewsService {
@Override
public Result<List<EpdcNewsListResultDTO>> listNews(TokenDto userDetail, EpdcNewsListFromDTO formDto) {
Object requireNewsList = redisUtils.get("epdc:switch:require:newsList");
if (null != requireNewsList && YesOrNoEnum.NO.value().equals(requireNewsList.toString())) {
return new Result().ok(new ArrayList<EpdcNewsListResultDTO>());
}
formDto.setDeptId(userDetail.getGridId());
return newsFeignClient.listNews(formDto);

3
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java

@ -54,6 +54,9 @@ public class PartyMembersDTO implements Serializable {
private String cadreFlag;
/**
* {@link com.elink.esua.epdc.enums.PartyMemberRegFlagEnum}
*/
private String registFlag;
private Date registTime;

36
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.enums;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
/**
* 党员注册认证状态枚举类
*
* @author work@yujt.net.cn
* @date 2020/2/5 17:37
*/
public enum PartyMemberRegFlagEnum {
/**
* 未注册
*/
NO(NumConstant.ZERO_STR),
/**
* 自动匹配认证通过完善信息接口
*/
AUTO(NumConstant.ONE_STR),
/**
* 手动认证PC端待认证居民列表页面操作
*/
MANUAL(NumConstant.TWO_STR);
private String value;
public String getValue() {
return value;
}
PartyMemberRegFlagEnum(String value) {
this.value = value;
}
}

13
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java

@ -17,13 +17,7 @@
package com.elink.esua.epdc.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSON;
import com.elink.esua.epdc.async.PartyTask;
import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
@ -33,22 +27,15 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.service.PartyMembersService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

2
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java

@ -62,7 +62,7 @@ public class PartyMembersEntity extends DeptScope {
*/
private String cadreFlag;
/**
* 注册状态0-1-
* {@link com.elink.esua.epdc.enums.PartyMemberRegFlagEnum}
*/
private String registFlag;
/**

6
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java

@ -23,11 +23,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.async.PartyTask;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
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.utils.ConvertUtils;
@ -40,6 +37,7 @@ import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.dto.PartyTagRelationDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcPartyErroyResultDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.enums.PartyMemberRegFlagEnum;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.redis.PartyMembersRedis;
@ -205,7 +203,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
for (int i = 0; i < partyMembersEntityList.size(); i++) {
PartyMembersEntity partyMembersEntity = partyMembersEntityList.get(i);
partyMembersEntity.setCadreFlag("0");
partyMembersEntity.setRegistFlag("0");
partyMembersEntity.setRegistFlag(PartyMemberRegFlagEnum.NO.getValue());
partyMembersEntity.setGridName(null);
}
insertBatch(partyMembersEntityList);

603
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -21,39 +21,45 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.enums.UserAuthTypeEnum;
import com.elink.esua.epdc.commons.tools.enums.UserSexEnum;
import com.elink.esua.epdc.commons.tools.enums.UserTagEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationEnum;
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.redis.UserDetailRedis;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.MessageUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.AuthenticatedConsant;
import com.elink.esua.epdc.constant.UserFieldConsant;
import com.elink.esua.epdc.dao.*;
import com.elink.esua.epdc.dto.CachingUserInfoDTO;
import com.elink.esua.epdc.dao.PartyAuthenticationFailedDao;
import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dao.UserAuthenticateHistoryDao;
import com.elink.esua.epdc.dao.UserDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO;
import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO;
import com.elink.esua.epdc.entity.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO;
import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
import com.elink.esua.epdc.enums.AppUserStatesEnum;
import com.elink.esua.epdc.enums.PartyMemberRegFlagEnum;
import com.elink.esua.epdc.exception.UserModuleErrorCode;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.service.PartyMembersService;
import com.elink.esua.epdc.service.UserGridRelationService;
import com.elink.esua.epdc.service.UserInvitationRecordService;
import com.elink.esua.epdc.service.UserService;
@ -62,10 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 用户信息表
@ -76,38 +79,30 @@ import java.util.Map;
@Service
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
@Autowired
private UserGridRelationService userGridRelationService;
@Autowired
private UserInvitationRecordService userInvitationRecordService;
@Autowired
private PartyMembersService partyMembersService;
@Autowired
private PartyMembersDao partyMembersDao;
@Autowired
private UserAuthenticateHistoryDao userAuthenticateHistoryDao;
private UserGridRelationService userGridRelationService;
@Autowired
private PartyAuthenticationFailedDao partyAuthenticationFailedDao;
private UserAuthenticateHistoryDao userAuthenticateHistoryDao;
@Autowired
private UserTagDao userTagDao;
private UserInvitationRecordService userInvitationRecordService;
@Autowired
private UserTagRelationDao userTagRelationDao;
private UserDetailRedis userDetailRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private PartyAuthenticationFailedDao partyAuthenticationFailedDao;
@Override
public PageData<UserDTO> page(Map<String, Object> params) {
this.verifyParams(params);
Long userId = SecurityUser.getUserId();
// 查询当前用户所具有的的数据权限
UserDetail userDetail = userDetailRedis.get(userId);
IPage<UserDTO> iPage = this.getPage(params);
List<UserDTO> userDtoList = this.baseDao.selectListUserDto(params);
return new PageData<>(userDtoList, iPage.getTotal());
@ -174,37 +169,106 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
@Override
@Transactional(rollbackFor = Exception.class)
public void audit(UserDTO dto) {
String userId = dto.getId();
UserEntity findUser = this.baseDao.selectById(userId);
// 手动认证为党员
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) {
// 校验是否为党员
checkUserInfoForPartyMember(findUser);
}
// createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间)
dto.setRegisterTime(new Date());
//先删除以前审核未通过的那条数据
UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class);
// createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间)
entity.setRegisterTime(new Date());
updateById(entity);
/*JSONArray jsonArray = JSON.parseArray(dto.getTagIds());
for (int i = 0; i < jsonArray.size(); i++) {
String tagId = jsonArray.getString(i);
UserTagRelationDTO userTagRelationDTO = new UserTagRelationDTO();
userTagRelationDTO.setUserId(entity.getId());
userTagRelationDTO.setTagId(tagId);
userTagRelationService.save(userTagRelationDTO);
}*/
//组装数据并插入用户认证历史表(epdc_user_authenticate_history)
UserEntity userEntity = this.baseDao.selectById(entity.getId());
// 组装数据并插入用户认证历史表
saveUserAuthenticateHistory(findUser, dto.getPartyFlag(), dto.getRemark(), dto.getState());
// 修改党员库信息
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) {
updatePartyMember(findUser, dto.getRegisterTime());
}
}
/**
* 更新党员库信息
*
* @param findUser 用户信息
* @param registerTime 认证时间
* @return void
* @author work@yujt.net.cn
* @date 2020/2/5 17:50
*/
private void updatePartyMember(UserEntity findUser, Date registerTime) {
PartyMembersEntity partyMembersEntity = new PartyMembersEntity();
partyMembersEntity.setRegistFlag(PartyMemberRegFlagEnum.MANUAL.getValue());
partyMembersEntity.setDeptId(findUser.getDeptId());
// 已认证党员列表,数据权限匹配的字段是grid_id。至于dept_id,暂时没用 @202002061021
partyMembersEntity.setGridId(findUser.getDeptId());
partyMembersEntity.setAllDeptIds(findUser.getAllDeptIds());
partyMembersEntity.setAllDeptNames(findUser.getAllDeptNames());
partyMembersEntity.setParentDeptIds(findUser.getParentDeptIds());
partyMembersEntity.setParentDeptNames(findUser.getParentDeptNames());
partyMembersEntity.setMobile(findUser.getMobile());
partyMembersEntity.setRegistTime(registerTime);
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, findUser.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, findUser.getRealName());
this.partyMembersDao.update(partyMembersEntity, partyUpdate);
}
/**
* 组装数据并插入用户认证历史表(epdc_user_authenticate_history)
*
* @param userEntity 用户信息
* @param partyFlag 是否党员
* @param remark 审核备注
* @param userState 审核状态
* @return void
* @author work@yujt.net.cn
* @date 2020/2/5 17:49
*/
private void saveUserAuthenticateHistory(UserEntity userEntity, String partyFlag, String remark, String userState) {
// 组装数据并插入用户认证历史表(epdc_user_authenticate_history)
UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity();
userAuthenticateHistoryEntity.setUserId(userEntity.getId());
userAuthenticateHistoryEntity.setMobile(userEntity.getMobile());
userAuthenticateHistoryEntity.setRealName(userEntity.getRealName());
userAuthenticateHistoryEntity.setAddress(userEntity.getAddress());
userAuthenticateHistoryEntity.setAuthenticatedFlag(userEntity.getState());//状态(0-已注册,1-已完善信息待审核,2-信息审核不通过,3-信息审核通过)
if (NumConstant.THREE_STR.equals(entity.getState())) {
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.YES.value());
} else {
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.NO.value());
}
userAuthenticateHistoryEntity.setRemark(dto.getRemark());
userAuthenticateHistoryEntity.setAuthenticatedType(AuthenticatedConsant.partyAuth); // 新维护的 认证类别(0-居民认证,1-党员认证,2-志愿者认证)
userAuthenticateHistoryEntity.setRemark(remark);
// 状态(0-已注册,1-已完善信息待审核,2-信息审核不通过,3-信息审核通过)
userAuthenticateHistoryEntity.setAuthenticatedFlag(
AppUserStatesEnum.STATE_INFORMATION_PASSED.value().equals(userState) ?
YesOrNoEnum.YES.value() : YesOrNoEnum.NO.value());
// 新维护的 认证类别(0-居民认证,1-党员认证,2-志愿者认证)
userAuthenticateHistoryEntity.setAuthenticatedType(YesOrNoEnum.YES.equals(partyFlag)
? AuthenticatedConsant.partyAuth : AuthenticatedConsant.userAuth);
userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity);
}
/**
* 校验用户是否有匹配的党员信息
*
* @param userEntity 用户信息
* @return void
* @author work@yujt.net.cn
* @date 2020/2/5 17:49
*/
private void checkUserInfoForPartyMember(UserEntity userEntity) {
// 手动认证为党员
if (StringUtils.isBlank(userEntity.getIdentityNo())) {
throw new RenException("该用户未完善身份证号码");
}
QueryWrapper<PartyMembersEntity> wrapper = new QueryWrapper<>();
wrapper.eq(UserFieldConsant.IDENTITY_NO, userEntity.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, userEntity.getRealName());
Integer count = this.partyMembersDao.selectCount(wrapper);
if (count == NumConstant.ZERO) {
throw new RenException("党员库中无此人信息");
}
}
@Override
public Result<UserDTO> getUserForLoginByOpenId(String openId) {
@ -385,6 +449,14 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
UserDTO userDto = this.selectUserByWxInfo(fromDto.getOpenId(), fromDto.getWxUnionId());
// QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
// wrapper.eq(UserFieldConsant.WX_OPEN_ID, fromDto.getOpenId())
// .select(FieldConstant.ID, UserFieldConsant.NICKNAME, UserFieldConsant.FACE_IMG,
// FieldConstant.MOBILE, UserFieldConsant.REAL_NAME,
// FieldConstant.STATE, UserFieldConsant.PARTY_FLAG, UserFieldConsant.REMARK)
// .orderByDesc(FieldConstant.CREATED_TIME);
// List<UserEntity> userEntityList = this.baseDao.selectList(wrapper);
EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO();
resultDto.setGridId(fromDto.getGridId());
// 已注册
@ -480,8 +552,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
QueryWrapper<UserEntity> userWrapper = new QueryWrapper<>();
userWrapper.eq(FieldConstant.MOBILE, mobile)
.ne(FieldConstant.ID, userId)
.ne(StringUtils.isNotBlank(userDto.getWxUnionId()), UserFieldConsant.WX_UNION_ID, userDto.getWxUnionId());
.ne(FieldConstant.ID, userId);
Integer selectCount = this.baseDao.selectCount(userWrapper);
if (selectCount > NumConstant.ZERO) {
return new Result().error("手机号已被注册");
@ -490,8 +561,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
userWrapper = new QueryWrapper<>();
userWrapper.eq(UserFieldConsant.IDENTITY_NO, userDto.getIdentityNo())
.ne(FieldConstant.ID, userId)
.ne(StringUtils.isNotBlank(userDto.getWxUnionId()), UserFieldConsant.WX_UNION_ID, userDto.getWxUnionId());
.ne(FieldConstant.ID, userId);
selectCount = this.baseDao.selectCount(userWrapper);
if (selectCount > NumConstant.ZERO) {
return new Result().error("身份证号已被注册");
@ -501,260 +571,113 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<String>().ok(userEntity.getState());
}
/**
* 生成党员认证失败记录
*
* @param dto
* @param userGridRelationDTO
* @param parentAndAllDeptDTO
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generatePartyAuthenticationFailedRecord(EpdcCompleteAppUserDTO dto, UserGridRelationDTO userGridRelationDTO, ParentAndAllDeptDTO parentAndAllDeptDTO) {
PartyAuthenticationFailedEntity authenticationFailedEntity = ConvertUtils.sourceToTarget(dto, PartyAuthenticationFailedEntity.class);
// 装载部门冗余信息
DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
authenticationFailedEntity
);
authenticationFailedEntity.setUserId(dto.getId());
authenticationFailedEntity.setState(dto.getState());
authenticationFailedEntity.setAddress(dto.getAddress());
authenticationFailedEntity.setDeptId(dto.getDeptId());
authenticationFailedEntity.setGridId(userGridRelationDTO.getGridId());
authenticationFailedEntity.setGridName(userGridRelationDTO.getGrid());
authenticationFailedEntity.setRegistTime(new Date());
authenticationFailedEntity.setRegistFlag(YesOrNoEnum.YES.value());
authenticationFailedEntity.setIdentityNo(dto.getIdentityNo());
authenticationFailedEntity.setMobile(dto.getMobile());
authenticationFailedEntity.setRealName(dto.getRealName());
return SqlHelper.retBool(partyAuthenticationFailedDao.insert(authenticationFailedEntity));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
Result result = new Result();
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
/**
* 生成认证历史
*
* @param completeAppUser
* @param userAuthTypeEnum
* @param yesOrNoEnum
* @param remark
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generateUserAuthenticateHistory(EpdcCompleteAppUserDTO completeAppUser, UserAuthTypeEnum userAuthTypeEnum, YesOrNoEnum yesOrNoEnum, String remark) {
UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity();
userAuthenticateHistoryEntity.setUserId(completeAppUser.getId());
userAuthenticateHistoryEntity.setMobile(completeAppUser.getMobile());
userAuthenticateHistoryEntity.setRealName(completeAppUser.getRealName());
userAuthenticateHistoryEntity.setAddress(completeAppUser.getAddress());
userAuthenticateHistoryEntity.setAuthenticatedType(userAuthTypeEnum.value());
userAuthenticateHistoryEntity.setAuthenticatedFlag(yesOrNoEnum.value());
if (StringUtils.isNotEmpty(remark)) {
userAuthenticateHistoryEntity.setRemark(remark);
UserDTO userDto = ConvertUtils.sourceToTarget(completeAppUser, UserDTO.class);
if (StringUtils.isBlank(userDto.getWxUnionId())) {
userDto.setWxUnionId(null);
}
return SqlHelper.retBool(userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity));
}
/**
* 更新党员库信息
*
* @param parentAndAllDeptDTO
* @param formDto
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean modifyPartyMembers(ParentAndAllDeptDTO parentAndAllDeptDTO, EpdcAppUserCompleteInfoFormDTO formDto) {
PartyMembersEntity partyMembersEntity = DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
PartyMembersEntity.class
);
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
partyMembersEntity.setGridId(userGridRelation.getGridId());
partyMembersEntity.setGridName(userGridRelation.getGrid());
partyMembersEntity.setRegistFlag(YesOrNoEnum.YES.value());
partyMembersEntity.setRegistTime(new Date());
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, completeAppUser.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, completeAppUser.getRealName());
return SqlHelper.retBool(partyMembersDao.update(partyMembersEntity, partyUpdate));
}
/**
* 修改居民信息
*
* @param completeAppUser
* @param userGridRelation
* @param parentAndAllDeptDTO
* @return com.elink.esua.epdc.entity.UserEntity
* @author rongchao
* @since 2019-12-19
*/
private UserDTO modifyResidentInfo(EpdcCompleteAppUserDTO completeAppUser, UserGridRelationDTO userGridRelation, ParentAndAllDeptDTO parentAndAllDeptDTO) {
String userId = userDto.getId();
UserEntity oldEntity = this.baseDao.selectById(userId);
// 数据库已有的用户信息
// 查询此用户是否已经注册并且完善了用户信息
UserDTO findUser = this.selectUserByWxInfo(completeAppUser.getWxOpenId(), completeAppUser.getWxUnionId());
if (null == findUser) {
throw new RenException("无法匹配用户信息,请先注册");
}
if (!findUser.getId().equals(completeAppUser.getId())) {
this.deleteById(completeAppUser.getId());
completeAppUser.setId(findUser.getId());
}
// 身份证号
String identityNo = userDto.getIdentityNo();
UserEntity userEntity = ConvertUtils.sourceToTarget(completeAppUser, UserEntity.class);
if (StringUtils.isBlank(userEntity.getWxUnionId())) {
userEntity.setWxUnionId(null);
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(String.valueOf(userGridRelation.getGridId()));
if (!parentAndAllDeptDTOResult.success()) {
return new Result<UserDTO>().error(parentAndAllDeptDTOResult.getMsg());
}
if (findUser.getState().equals(AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value())) {
userEntity.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
PartyMembersEntity partyMembersEntity = new PartyMembersEntity();
partyMembersEntity.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
partyMembersEntity.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
partyMembersEntity.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
partyMembersEntity.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
partyMembersEntity.setGridId(userGridRelation.getGridId());
partyMembersEntity.setGridName(userGridRelation.getGrid());
partyMembersEntity.setRegistFlag(PartyMemberRegFlagEnum.AUTO.getValue());
partyMembersEntity.setRegistTime(oldEntity.getRegisterTime());
QueryWrapper<PartyMembersEntity> partyWrapper = new QueryWrapper<>();
partyWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo)
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
int selectCount = this.partyMembersDao.selectCount(partyWrapper);
//用户认证历史
UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity();
if (selectCount == NumConstant.ZERO) {
// 党员库中没有,存进党员认证失败表
PartyAuthenticationFailedEntity authenticationFailedEntity = ConvertUtils.sourceToTarget(partyMembersEntity, PartyAuthenticationFailedEntity.class);
authenticationFailedEntity.setUserId(userId);
authenticationFailedEntity.setState(Integer.parseInt(YesOrNoEnum.NO.value()));
authenticationFailedEntity.setAddress(userDto.getAddress());
authenticationFailedEntity.setRealName(userDto.getRealName());
authenticationFailedEntity.setMobile(userDto.getMobile());
authenticationFailedEntity.setIdentityNo(identityNo);
authenticationFailedEntity.setRegistTime(oldEntity.getRegisterTime());
partyAuthenticationFailedDao.insert(authenticationFailedEntity);
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
// 是否是党员(0-否,1-是) 认证失败:0
userDto.setPartyFlag(YesOrNoEnum.NO.value());
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.NO.value());
// 党员认证失败返回code码
result.error(UserModuleErrorCode.AUTHENTICATION_CODE, MessageUtils.getMessage(UserModuleErrorCode.AUTHENTICATION_CODE));
} else {
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, identityNo)
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
this.partyMembersDao.update(partyMembersEntity, partyUpdate);
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.YES.value());
userDto.setPartyFlag(YesOrNoEnum.YES.value());//是否是党员(0-否,1-是) 认证失败:0
userDto.setRegisterTime(new Date());// 认证成功之后更新认证时间
//认证成功党员 信息审核通过
userDto.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
}
//插入用户认证历史表
userAuthenticateHistoryEntity.setUserId(userId);
userAuthenticateHistoryEntity.setMobile(userDto.getMobile());
userAuthenticateHistoryEntity.setRealName(userDto.getRealName());
userAuthenticateHistoryEntity.setAddress(userDto.getAddress());
userAuthenticateHistoryEntity.setRemark(userDto.getRemark());
// 新维护的 认证类别(0-居民认证,1-党员认证,2-志愿者认证)
userAuthenticateHistoryEntity.setAuthenticatedType(AuthenticatedConsant.partyAuth);
userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity);
} else {
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
}
//返回网格长标识信息
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(completeAppUser.getId(), userGridRelation.getGridId());
String nicknamePrefix = completeAppUser.getRoad().concat(StrConstant.HYPHEN);
if (relationInfo != null && YesOrNoEnum.YES.value().equals(relationInfo.getLeaderFlag())) {
nicknamePrefix = "网格长-".concat(StrConstant.HYPHEN);
// 昵称前缀
String nicknamePrefix = "网格长-";
if (!oldEntity.getNickname().startsWith(nicknamePrefix)) {
nicknamePrefix = userDto.getRoad().concat("-");
}
// 姓
String lastName = completeAppUser.getRealName().substring(NumConstant.ZERO, NumConstant.ONE);
userEntity.setLastName(lastName);
userEntity.setNickname(nicknamePrefix.concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(userEntity.getSex()) ? "女士" : "先生"));
String lastName = userDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE);
userDto.setLastName(lastName);
userDto.setNickname(nicknamePrefix.concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(userDto.getSex()) ? "女士" : "先生"));
//保存用户居住地所在网格,及其他冗余字段。
DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
userEntity
);
if (!updateById(userEntity)) {
throw new RenException("用户认证修改居民信息时失败!");
}
UserDTO userDto = ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
userDto.setLeaderFlag(relationInfo.getLeaderFlag());
return userDto;
}
/**
* 生成用户身份标签
*
* @param userId
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generateUserTag(String userId) {
UserTagEntity userTagEntity = userTagDao.selectByTagCode(UserTagEnum.PARTY_MEMBER.value());
UserTagRelationEntity userTagRelationEntity = new UserTagRelationEntity();
userTagRelationEntity.setTagId(userTagEntity.getId());
userTagRelationEntity.setUserId(userId);
return SqlHelper.retBool(userTagRelationDao.insert(userTagRelationEntity));
}
/**
* 根据网格ID获取冗余的组织机构信息
*
* @param
* @return com.elink.esua.epdc.dto.ParentAndAllDeptDTO
* @author rongchao
* @since 2019-12-19
*/
private ParentAndAllDeptDTO getParentAndAllDeptDTO(String gridId) {
// 获取组织结构冗余信息
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(gridId);
ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDeptDTOResult.getData();
userDto.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
userDto.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
userDto.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
userDto.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
if (!parentAndAllDeptDTOResult.success()) {
throw new RenException(parentAndAllDeptDTOResult.getMsg());
UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class);
boolean updateUser = this.updateById(userEntity);
if (!updateUser) {
throw new RenException("保存用户信息异常");
}
return parentAndAllDeptDTO;
}
/**
* 认证党员
*
* @param formDto
* @param parentAndAllDeptDTO
* @return void
* @author rongchao
* @since 2019-12-19
*/
private boolean authPartyMembers(EpdcAppUserCompleteInfoFormDTO formDto, ParentAndAllDeptDTO parentAndAllDeptDTO) {
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
boolean result = Boolean.FALSE;
int selectCount = partyMembersService.countPartyMemberByIdNoAndRealName(completeAppUser.getIdentityNo(), completeAppUser.getRealName());
if (selectCount == NumConstant.ZERO) {
// 党员认证失败
// 党员库中没有,存进党员认证失败表
generatePartyAuthenticationFailedRecord(completeAppUser, userGridRelation, parentAndAllDeptDTO);
// 生成党员认证不通过记录
generateUserAuthenticateHistory(completeAppUser, UserAuthTypeEnum.PARTY_AUTH, YesOrNoEnum.NO, "党员库中无此党员信息");
} else {
//党员认证成功
modifyPartyMembers(parentAndAllDeptDTO, formDto);
// 党员认证成功,生成用户身份标签
generateUserTag(completeAppUser.getId());
// 生成党员认证通过记录
generateUserAuthenticateHistory(completeAppUser, UserAuthTypeEnum.PARTY_AUTH, YesOrNoEnum.YES, null);
result = Boolean.TRUE;
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
// 获取组织结构冗余信息
ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(userGridRelation.getGridId().toString());
//进行居民认证
UserDTO userDTO = modifyResidentInfo(completeAppUser, userGridRelation, parentAndAllDeptDTO);
Result result = new Result();
if (YesOrNoEnum.YES.value().equals(completeAppUser.getPartyFlag())) {
//进行党员认证
boolean authFlag = authPartyMembers(formDto, parentAndAllDeptDTO);
//认证成功党员 信息审核通过
if (authFlag) {
userDTO.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
// 认证成功之后更新认证时间
userDTO.setRegisterTime(new Date());
// 更新用户表党员相关字段
updateUserPartyMemberInfo(userDTO);
} else {
result = new Result().error(UserModuleErrorCode.AUTHENTICATION_CODE);
}
}
return result.ok(userDTO);
}
/**
* 党员认证成功后更新用户表党员相关字段
*
* @param userDto
* @return void
* @author work@yujt.net.cn
* @date 2020/2/3 09:40
*/
private void updateUserPartyMemberInfo(UserDTO userDto) {
UserEntity entity = new UserEntity();
entity.setId(userDto.getId());
entity.setState(userDto.getState());
entity.setRegisterTime(userDto.getRegisterTime());
entity.setPartyFlag(YesOrNoEnum.YES.value());
this.updateById(entity);
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(userEntity.getId(), userGridRelation.getGridId());
userDto.setLeaderFlag(relationInfo.getLeaderFlag());
userDto.setFaceImg(oldEntity.getFaceImg());
return result.ok(userDto);
}
/**
* 获取居民详情已认证或待认证提交信息待审核的居民用户
*
@ -936,103 +859,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<List<EpdcGridUserResultDTO>>().ok(baseDao.selectListGridUserResultDTO(gridIdList));
}
@Override
public UserDTO updateWxInfo(UserDTO userDto) {
// 查询此用户是否已经注册并且完善了用户信息
UserDTO findUser = this.selectUserByWxInfo(userDto.getWxOpenId(), userDto.getWxUnionId());
if (null == findUser) {
throw new RenException("无法匹配用户信息,请先注册");
}
// 新用户id
String userId = userDto.getId();
String oldUserId = findUser.getId();
// ID相同
if (oldUserId.equals(userId)) {
findUser.setFaceImg(userDto.getFaceImg());
findUser.setNickname(userDto.getNickname());
findUser.setSex(userDto.getSex());
findUser.setWxOpenId(userDto.getWxOpenId());
findUser.setWxUnionId(userDto.getWxUnionId());
} else {
// 两个用户对象id不同,表示迁移小程序后,老用户的微信号生成了新的用户,需要删除新用户
baseDao.deleteById(userId);
if (findUser.getState().equals(AppUserStatesEnum.STATE_REGISTERED.value())) {
findUser.setFaceImg(userDto.getFaceImg());
findUser.setSex(userDto.getSex());
findUser.setNickname(userDto.getNickname());
}
findUser.setWxOpenId(userDto.getWxOpenId());
}
this.update(findUser);
return findUser;
}
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CachingUserInfoDTO>
* @Author yinzuomei
* @Description 获取用户缓存信息
* @Date 2019/12/18 14:01
**/
@Override
public Result<CachingUserInfoDTO> queryCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getOpenId())) {
throw new RenException("openId不能为空");
}
CachingUserInfoDTO cachingUserInfoDTO = null;
if (StringUtils.isNotBlank(formDTO.getUnionId())) {
//根据unionId查询
cachingUserInfoDTO = this.baseDao.selectCachingUserInfoDTO(null, formDTO.getUnionId());
}
if (null == cachingUserInfoDTO) {
//根据openId查询
cachingUserInfoDTO = this.baseDao.selectCachingUserInfoDTO(formDTO.getOpenId(), null);
}
return new Result<CachingUserInfoDTO>().ok(cachingUserInfoDTO);
}
/**
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author yinzuomei
* @Description 根据操作类型更新用户积分
* @Date 2019/12/13 15:02
**/
@Override
public Result<UserDTO> handleUserPoints(EpdcUserPointsFormDTO formDTO) {
UserEntity userEntity = baseDao.selectById(formDTO.getUserId());
//规则操作类型(0-减积分,1-加积分)
if (PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType().equals(formDTO.getOperationType())) {
userEntity.setPoints(userEntity.getPoints() + formDTO.getPoints());
} else if (PointsOperationEnum.OPERATION_TYPE_SUBSTRACT.getOperationType().equals(formDTO.getOperationType())) {
userEntity.setPoints(userEntity.getPoints() - formDTO.getPoints());
}
baseDao.updateById(userEntity);
return new Result().ok(userEntity);
}
/**
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CachingUserInfoDTO>
* @Author yinzuomei
* @Description 获取用户缓存信息
* @Date 2020/1/15 17:40
**/
@Override
public Result<CachingUserInfoDTO> cachingUserInfoByUserId(String userId) {
if (StringUtils.isBlank(userId)) {
throw new RenException("userId不能为空");
}
CachingUserInfoDTO cachingUserInfoDTO = baseDao.selectCachingUserInfoDTOByUserId(userId);
return new Result<CachingUserInfoDTO>().ok(cachingUserInfoDTO);
}
/**
* 根据微信信息查询用户
*
@ -1061,5 +887,4 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
}
}

1
esua-epdc/epdc-module/pom.xml

@ -31,6 +31,7 @@
<module>epdc-points</module>
<module>epdc-webservice</module>
<module>epdc-custom</module>
<module>epdc-analysis</module>
</modules>
</project>

Loading…
Cancel
Save