diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java index abb9fa499..2dd8de273 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java @@ -299,6 +299,8 @@ public class SysUserController { /** * 组装用户部门多层结构 + *

auth模块调用,用户登录时,获取用户机构权限,返回页面组装下拉菜单所需数据,保存在redis

+ *

组装三层,街道-社区-网格

* * @param userId * @return com.elink.esua.epdc.commons.tools.utils.Result @@ -313,6 +315,8 @@ public class SysUserController { /** * 获取用户部门多层结构,用户前端显示,请求需携带token + *

调接口,从redis获取{@link SysUserController#packageUserDeptOption(Long)}接口生成的数据。

+ *

此接口展示三级机构层级(街道-社区-网格),不包括区级

* * @return com.elink.esua.epdc.commons.tools.utils.Result * @author work@yujt.net.cn @@ -325,6 +329,8 @@ public class SysUserController { /** * 获取用户部门多层结构(完整层级结构,包括顶级部门),用户前端显示,请求需携带token + *

新闻、通知发布,选择机构可多选,且展示完整层级结构,市区-街道-社区-网格

+ *

新闻、通知页面主动触发,不在用户登录是自动调用

* * @return com.elink.esua.epdc.commons.tools.utils.Result * @author work@yujt.net.cn @@ -336,6 +342,20 @@ public class SysUserController { return new Result().ok(option); } + /** + * 用户数据分析,pc端页面,获取用户街道-社区层级关系,前端显示,请求需携带token + *

网格开通情况与用户排名分析页面用,只组装街道-社区两级

+ * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/10 14:45 + */ + @GetMapping("deptOptions/getMiddleByLoginUser") + public Result getMiddleByLoginUser() { + DeptOption option = sysDeptService.getMiddleByLoginUser(); + return new Result().ok(option); + } + /** * 退出登录 * diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index d63d7ce34..385ff1c55 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -79,11 +79,11 @@ public interface SysDeptService extends BaseService { * 通过网格ID获取该网格所有上级机构 * * @param deptId - * @return com.elink.esua.epdc.dto.CompleteDeptDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result * @author yujintao * @date 2019/9/7 09:13 */ - ParentAndAllDeptDTO getParentAndAllDept(String deptId); + Result getParentAndAllDept(String deptId); /** * 通过街道ID获取项目可流转部门 @@ -172,6 +172,7 @@ public interface SysDeptService extends BaseService { **/ List listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO); + /*** * 组装所有部门 * @param @@ -211,40 +212,18 @@ public interface SysDeptService extends BaseService { /** * 获取用户部门多层结构(完整层级结构,包括顶级部门),用户前端显示,请求需携带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> - * @author qushutong - * @date 2019/12/12 17:29 - */ - Result> listAllGridId(); - - /** - * 按部门类型,分页查询部门列表 - * - * @param typeKey 部门类型 - * @param pageSize 页容量 - * @param pageIndex 页码 - * @return com.elink.esua.epdc.commons.tools.utils.Result> - * @author work@yujt.net.cn - * @date 2019/12/17 16:05 - */ - Result> 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(); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 0f513f06e..15920f2b8 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -360,6 +360,56 @@ public class SysDeptServiceImpl extends BaseServiceImpl 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 @@ -415,7 +465,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl lb://epdc-auth-server - lb://epdc-admin-server - + + http://127.0.0.1:9092 lb://epdc-activiti-server - - http://127.0.0.1:9040 + lb://epdc-api-server + lb://epdc-app-server lb://epdc-heart-server @@ -127,11 +127,11 @@ http://127.0.0.1:9063 lb://epdc-websocket-server + lb://epdc-kpi-server lb://epdc-custom-server - lb://epdc-points-server - - http://127.0.0.1:9069 + + lb://epdc-analysis-server false 47.104.224.45:8848 @@ -169,11 +169,10 @@ lb://epdc-user-server lb://epdc-demo-server lb://epdc-group-server - lb://epdc-websocket-server - + lb://epdc-websocket-server lb://epdc-kpi-server lb://epdc-custom-server - lb://epdc-points-server + lb://epdc-analysis-server true @@ -207,11 +206,10 @@ lb://epdc-user-server lb://epdc-demo-server lb://epdc-group-server - lb://epdc-websocket-server - + lb://epdc-websocket-server lb://epdc-kpi-server lb://epdc-custom-server - lb://epdc-points-server + lb://epdc-analysis-server 0 @@ -251,6 +249,7 @@ lb://epdc-websocket-server lb://epdc-kpi-server lb://epdc-custom-server + lb://epdc-analysis-server 0 @@ -291,6 +290,7 @@ lb://epdc-websocket-server lb://epdc-kpi-server lb://epdc-custom-server + lb://epdc-analysis-server 0 diff --git a/esua-epdc/epdc-gateway/src/main/resources/application.yml b/esua-epdc/epdc-gateway/src/main/resources/application.yml index f09605ff2..b70ad538a 100644 --- a/esua-epdc/epdc-gateway/src/main/resources/application.yml +++ b/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: diff --git a/esua-epdc/epdc-module/epdc-analysis/db/mysql.sql b/esua-epdc/epdc-module/epdc-analysis/db/mysql.sql new file mode 100644 index 000000000..e69de29bb diff --git a/esua-epdc/epdc-module/epdc-analysis/db/oracle.sql b/esua-epdc/epdc-module/epdc-analysis/db/oracle.sql new file mode 100644 index 000000000..e69de29bb diff --git a/esua-epdc/epdc-module/epdc-analysis/db/postgresql.sql b/esua-epdc/epdc-module/epdc-analysis/db/postgresql.sql new file mode 100644 index 000000000..e69de29bb diff --git a/esua-epdc/epdc-module/epdc-analysis/db/sqlserver.sql b/esua-epdc/epdc-module/epdc-analysis/db/sqlserver.sql new file mode 100644 index 000000000..e69de29bb diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/pom.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/pom.xml new file mode 100644 index 000000000..5da53a2cb --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + + com.esua.epdc + epdc-analysis + 1.0.0 + + + epdc-analysis-client + jar + + + + com.esua.epdc + epdc-commons-tools + 1.0.0 + + + + + ${project.artifactId} + + + diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java new file mode 100644 index 000000000..b3b38979d --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemResultDTO.java new file mode 100644 index 000000000..6e938d00e --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java new file mode 100644 index 000000000..17c9f46a6 --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml new file mode 100644 index 000000000..3489720a8 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml @@ -0,0 +1,205 @@ + + + 4.0.0 + + com.esua.epdc + epdc-analysis + 1.0.0 + + + epdc-analysis-server + jar + + + + com.esua.epdc + epdc-analysis-client + 1.0.0 + + + com.esua.epdc + epdc-commons-tools + 1.0.0 + + + com.esua.epdc + epdc-commons-mybatis + 1.0.0 + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework + spring-context-support + + + de.codecentric + spring-boot-admin-starter-client + ${spring.boot.admin.version} + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.esua.epdc + epdc-commons-api-version-control + ${project.version} + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + true + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + com.spotify + dockerfile-maven-plugin + + + + ${project.basedir}/src/main/java + + + + true + ${basedir}/src/main/resources + + **/application*.yml + **/*.properties + logback-spring.xml + registry.conf + + + + ${basedir}/src/main/resources + + **/application*.yml + **/*.properties + logback-spring.xml + registry.conf + + + + + + + + dev + + true + + + dev + + 9077 + + 2 + 47.104.224.45 + 6379 + elink@888 + + false + 47.104.224.45:8848 + + + + + test + + test + + 9077 + + 2 + 47.104.224.45 + 6379 + elink@888 + + true + 47.104.224.45:8848 + + + + + prod + + prod + + 9077 + + + 0 + 10.5.34.164 + 6379 + Elink@833066 + + true + 10.5.34.164:8848 + + + + + prod_kongcun + + prod + + 9077 + + + 0 + 172.16.1.238 + 6379 + Elink833066 + + + true + 172.16.1.238:8848 + + + + + prod_shibei_aliyun + + prod + + 9077 + + + 0 + 172.16.0.54 + 6379 + Elink833066 + + + true + 172.16.0.52:8848 + + + + + diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java new file mode 100644 index 000000000..ac038bbd7 --- /dev/null +++ b/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); + } + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java new file mode 100644 index 000000000..edebd6d88 --- /dev/null +++ b/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. + *

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

+ * 版权所有,侵权必究! + */ + +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"; + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java new file mode 100644 index 000000000..e75611937 --- /dev/null +++ b/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; + +/** + * + * 增加多数据源,在此配置 + * + * @Author:liuchuang + * @Date:2020/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"; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java new file mode 100644 index 000000000..6465e38aa --- /dev/null +++ b/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; + +/** + * + * 动态数据源 + * + * @Author:liuchuang + * @Date:2020/2/9 14:59 + */ +public class DynamicDataSource extends AbstractRoutingDataSource { + + private static final ThreadLocal contextHolder = new ThreadLocal<>(); + + public DynamicDataSource(DataSource defaultTargetDataSource, Map 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(); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java new file mode 100644 index 000000000..9f078d3a1 --- /dev/null +++ b/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; + +/** + * + * 配置多数据源 + * + * @Author:liuchuang + * @Date:2020/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 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); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java new file mode 100644 index 000000000..abb8e5398 --- /dev/null +++ b/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.*; + +/** + * + * 多数据源注解 + * + * @Author:liuchuang + * @Date:2020/2/9 14:50 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataSource { + String name() default ""; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java new file mode 100644 index 000000000..361340162 --- /dev/null +++ b/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; + +/** + * + * 多数据源,切面处理类 + * + * @Author:liuchuang + * @Date:2020/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; + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueController.java new file mode 100644 index 000000000..29d382050 --- /dev/null +++ b/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> pageHottestIssue(@RequestParam Map params) { + PageData page = issueService.listHottestIssue(params); + return new Result>().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> pageLatestIssue(@RequestParam Map params) { + PageData page = issueService.listLatestIssue(params); + return new Result>().ok(page); + } + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java new file mode 100644 index 000000000..60bbdb98c --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 最热议题列表 + * @Date 2020/2/10 16:19 + **/ + List selectListHottestIssue(Map params); + + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 最新议题列表 + * @Date 2020/2/10 16:19 + **/ + List selectListLatestIssue(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java new file mode 100644 index 000000000..d4c316cab --- /dev/null +++ b/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 + * @Author yinzuomei + * @Description 最热议题列表 + * @Date 2020/2/10 16:16 + **/ + PageData listHottestIssue(Map params); + + /** + * @param params + * @return com.elink.esua.epdc.commons.tools.page.PageData + * @Author yinzuomei + * @Description 最新议题列表 + * @Date 2020/2/10 16:16 + **/ + PageData listLatestIssue(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java new file mode 100644 index 000000000..f7ce97cc9 --- /dev/null +++ b/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 implements IssueService { + + /** + * @param params + * @return com.elink.esua.epdc.commons.tools.page.PageData + * @Author yinzuomei + * @Description 最热议题列表 + * @Date 2020/2/10 16:17 + **/ + @DataSource(name = DataSourceNames.FOURTH) + @Override + public PageData listHottestIssue(Map params) { + UserDetail userDetail= SecurityUser.getUser(); + params.put("deptIdList",userDetail.getDeptIdList()); + IPage page = getPage(params); + List list = baseDao.selectListHottestIssue(params); + return new PageData<>(list, page.getTotal()); + } + + /** + * @param params + * @return com.elink.esua.epdc.commons.tools.page.PageData + * @Author yinzuomei + * @Description 最新议题列表 + * @Date 2020/2/10 16:17 + **/ + @DataSource(name = DataSourceNames.FOURTH) + @Override + public PageData listLatestIssue(Map params) { + UserDetail userDetail= SecurityUser.getUser(); + params.put("deptIdList",userDetail.getDeptIdList()); + IPage page = getPage(params); + List list = baseDao.selectListLatestIssue(params); + return new PageData<>(list, page.getTotal()); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java new file mode 100644 index 000000000..d0e230492 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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> pageHottestItem(@RequestParam Map params) { + PageData page = itemService.listItemResultDTO(params); + return new Result>().ok(page); + } + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java new file mode 100644 index 000000000..81319ce3e --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 最热项目列表查询 + * @Date 2020/2/10 13:53 + **/ + List selectListHottestItemResultDTO(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java new file mode 100644 index 000000000..eedbbc6ba --- /dev/null +++ b/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 listItemResultDTO(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java new file mode 100644 index 000000000..c6a499082 --- /dev/null +++ b/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 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 listItemResultDTO(Map params) { + UserDetail userDetail = SecurityUser.getUser(); + params.put("deptIdList", userDetail.getDeptIdList()); + IPage page = getPage(params); + List list = baseDao.selectListHottestItemResultDTO(params); + return new PageData<>(list, page.getTotal()); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicController.java new file mode 100644 index 000000000..d9daf3a74 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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> pageHottestTopic(@RequestParam Map params) { + PageData page = topicService.listHottestTopic(params); + return new Result>().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> pageLatestTopic(@RequestParam Map params) { + PageData page = topicService.listLatestTopic(params); + return new Result>().ok(page); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicDao.java new file mode 100644 index 000000000..68c546c45 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 最热话题列表查询 + * @Date 2020/2/10 11:52 + **/ + List selectListHottestTopicDTO(Map params); + + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 最新话题列表查询 + * @Date 2020/2/10 12:51 + **/ + List selectListLatesttTopicDTO(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicService.java new file mode 100644 index 000000000..862c76d08 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 listHottestTopic(Map params); + + /** + * @param params + * @return com.elink.esua.epdc.commons.tools.page.PageData + * @Author yinzuomei + * @Description 最新话题列表查询 + * @Date 2020/2/10 12:50 + **/ + PageData listLatestTopic(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicServiceImpl.java new file mode 100644 index 000000000..e3f31c2fe --- /dev/null +++ b/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 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 listHottestTopic(Map params) { + UserDetail userDetail = SecurityUser.getUser(); + params.put("deptIdList", userDetail.getDeptIdList()); + IPage page = getPage(params); + List 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 listLatestTopic(Map params) { + UserDetail userDetail = SecurityUser.getUser(); + params.put("deptIdList", userDetail.getDeptIdList()); + IPage page = getPage(params); + List list = baseDao.selectListLatesttTopicDTO(params); + return new PageData<>(list, page.getTotal()); + } + + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ModuleConstant.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ModuleConstant.java new file mode 100644 index 000000000..03d407f87 --- /dev/null +++ b/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 { + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-dev.yml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-dev.yml new file mode 100644 index 000000000..64f8ea7ed --- /dev/null +++ b/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 \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-prod.yml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-prod.yml new file mode 100644 index 000000000..152c03eb3 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-test.yml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application-test.yml new file mode 100644 index 000000000..64f8ea7ed --- /dev/null +++ b/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 \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/application.yml new file mode 100644 index 000000000..f35d9ad4f --- /dev/null +++ b/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 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages.properties new file mode 100644 index 000000000..a7091dbb4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages.properties @@ -0,0 +1 @@ +#Default diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_en_US.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_en_US.properties new file mode 100644 index 000000000..9e895e428 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_en_US.properties @@ -0,0 +1 @@ +#English diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_CN.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_CN.properties new file mode 100644 index 000000000..b21fd22ec --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_CN.properties @@ -0,0 +1 @@ +#\u7B80\u4F53\u4E2D\u6587 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_TW.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_TW.properties new file mode 100644 index 000000000..4433dba45 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/messages_zh_TW.properties @@ -0,0 +1 @@ +#\u7E41\u4F53\u4E2D\u6587 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation.properties new file mode 100644 index 000000000..56ca909c4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation.properties @@ -0,0 +1 @@ +#Default \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_en_US.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_en_US.properties new file mode 100644 index 000000000..9e895e428 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_en_US.properties @@ -0,0 +1 @@ +#English diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_CN.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_CN.properties new file mode 100644 index 000000000..b21fd22ec --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_CN.properties @@ -0,0 +1 @@ +#\u7B80\u4F53\u4E2D\u6587 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_TW.properties b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_TW.properties new file mode 100644 index 000000000..4433dba45 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/i18n/validation_zh_TW.properties @@ -0,0 +1 @@ +#\u7E41\u4F53\u4E2D\u6587 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/logback-spring.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..379473afc --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/logback-spring.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + debug + + + ${CONSOLE_LOG_PATTERN} + + UTF-8 + + + + + + + + ${log.path}/debug.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/debug-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + debug + ACCEPT + DENY + + + + + + + ${log.path}/info.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/info-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + info + ACCEPT + DENY + + + + + + + ${log.path}/warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/warn-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + warn + ACCEPT + DENY + + + + + + + ${log.path}/error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/error-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/issue/IssueDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/issue/IssueDao.xml new file mode 100644 index 000000000..b97d7f438 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/issue/IssueDao.xml @@ -0,0 +1,106 @@ + + + + + + + + + + diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemDao.xml new file mode 100644 index 000000000..d2dca2d1d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemDao.xml @@ -0,0 +1,53 @@ + + + + + + diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/topic/TopicDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/topic/TopicDao.xml new file mode 100644 index 000000000..a21b690ba --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/topic/TopicDao.xml @@ -0,0 +1,96 @@ + + + + + + + + + + diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/registry.conf b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/registry.conf new file mode 100644 index 000000000..fb64abd71 --- /dev/null +++ b/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" + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/pom.xml b/esua-epdc/epdc-module/epdc-analysis/pom.xml new file mode 100644 index 000000000..f7ae2def4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + + com.esua.epdc + epdc-module + 1.0.0 + + + com.esua.epdc + epdc-analysis + pom + + + epdc-analysis-client + epdc-analysis-server + + + diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java index 3083efd38..f09fce3c5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java +++ b/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> listNotice(TokenDto userDetail, EpdcNoticeListFormDTO formDto) { formDto.setDeptId(userDetail.getGridId()); @@ -42,6 +48,10 @@ public class NewsServiceImpl implements NewsService { @Override public Result> 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()); + } formDto.setDeptId(userDetail.getGridId()); return newsFeignClient.listNews(formDto); diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java index d586ba5f8..6a1b156ee 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java +++ b/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; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java new file mode 100644 index 000000000..bb8603d08 --- /dev/null +++ b/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; + } +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java index 0f255a18c..2c6e0f324 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java +++ b/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; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java index 5fe55571d..a6317150b 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java +++ b/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; /** diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java index 9605a119c..a2425ebd4 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java +++ b/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 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 page(Map params) { this.verifyParams(params); Long userId = SecurityUser.getUserId(); + // 查询当前用户所具有的的数据权限 + UserDetail userDetail = userDetailRedis.get(userId); IPage iPage = this.getPage(params); List userDtoList = this.baseDao.selectListUserDto(params); return new PageData<>(userDtoList, iPage.getTotal()); @@ -174,37 +169,106 @@ public class UserServiceImpl extends BaseServiceImpl 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 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 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 getUserForLoginByOpenId(String openId) { @@ -385,6 +449,14 @@ public class UserServiceImpl extends BaseServiceImpl implem UserDTO userDto = this.selectUserByWxInfo(fromDto.getOpenId(), fromDto.getWxUnionId()); +// QueryWrapper 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 userEntityList = this.baseDao.selectList(wrapper); + EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO(); resultDto.setGridId(fromDto.getGridId()); // 已注册 @@ -480,8 +552,7 @@ public class UserServiceImpl extends BaseServiceImpl implem QueryWrapper 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 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 implem return new Result().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 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 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 parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(String.valueOf(userGridRelation.getGridId())); + if (!parentAndAllDeptDTOResult.success()) { + return new Result().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 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 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 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 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 implem return new Result>().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 - * @Author yinzuomei - * @Description 获取用户缓存信息 - * @Date 2019/12/18 14:01 - **/ - @Override - public Result 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().ok(cachingUserInfoDTO); - } - - /** - * @return com.elink.esua.epdc.commons.tools.utils.Result - * @Author yinzuomei - * @Description 根据操作类型更新用户积分 - * @Date 2019/12/13 15:02 - **/ - @Override - public Result 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 - * @Author yinzuomei - * @Description 获取用户缓存信息 - * @Date 2020/1/15 17:40 - **/ - @Override - public Result cachingUserInfoByUserId(String userId) { - if (StringUtils.isBlank(userId)) { - throw new RenException("userId不能为空"); - } - CachingUserInfoDTO cachingUserInfoDTO = baseDao.selectCachingUserInfoDTOByUserId(userId); - return new Result().ok(cachingUserInfoDTO); - } - /** * 根据微信信息查询用户 * @@ -1061,5 +887,4 @@ public class UserServiceImpl extends BaseServiceImpl implem return ConvertUtils.sourceToTarget(userEntity, UserDTO.class); } - } diff --git a/esua-epdc/epdc-module/pom.xml b/esua-epdc/epdc-module/pom.xml index 6d4103a66..170c1d0c9 100644 --- a/esua-epdc/epdc-module/pom.xml +++ b/esua-epdc/epdc-module/pom.xml @@ -31,6 +31,7 @@ epdc-points epdc-webservice epdc-custom + epdc-analysis