Browse Source

Merge remote-tracking branch 'origin/dev_analysis' into dev_analysis

# Conflicts:
#	esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml
dev
李鹏飞 6 years ago
parent
commit
38d8f34fed
  1. 15
      esua-epdc/epdc-admin/epdc-admin-server/pom.xml
  2. 7
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
  3. 17
      esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java
  4. 2
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  5. 3
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserCountDTO.java
  6. 41
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java
  7. 52
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/PartyAnalysExcel.java
  8. 50
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java
  9. 42
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/UserAnalysisController.java
  10. 92
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java
  11. 109
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java
  12. 5
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/OldMemberRankDao.xml
  13. 326
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml
  14. 5
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/YoungMemberRankDao.xml
  15. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
  16. 38
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java
  17. 26
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java
  18. 73
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java
  19. 7
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml
  20. 15
      esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml
  21. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml

15
esua-epdc/epdc-admin/epdc-admin-server/pom.xml

@ -138,6 +138,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx29b074840ef4bfd9</work.wx.ma.appId>
<work.wx.ma.secret>4adb1afccc69f205cdf5b521d74e2aca</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
<profile>
@ -161,6 +164,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
<profile>
@ -187,6 +193,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://10.5.34.164:3306/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
@ -214,6 +223,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wxddb240334d09049f</work.wx.ma.appId>
<work.wx.ma.secret>071b8c70da0d0482aaf79052e64f83bc</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.16.1.239:3306/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
@ -257,6 +269,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.16.0.52:3306/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>

7
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml

@ -80,11 +80,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@
feign:

17
esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java

@ -20,6 +20,9 @@ public class WxMaServiceUtils {
@Value("${wx.ma.appId.work}")
private String APPID_WORK;
@Value("${wx.ma.appId.analysis}")
private String APPID_ANALYSIS;
/**
* 获取党群e家 普通居民端配置
*
@ -43,4 +46,18 @@ public class WxMaServiceUtils {
final WxMaService wxMaService = WxMaConfig.getMaService(APPID_WORK);
return wxMaService;
}
/**
*
* 获取党群e家 数据分析端配置
*
* @params []
* @return cn.binarywang.wx.miniapp.api.WxMaService
* @author liuchuang
* @since 2020/2/12 10:44
*/
public final WxMaService analysisWxMaService() {
final WxMaService wxMaService = WxMaConfig.getMaService(APPID_ANALYSIS);
return wxMaService;
}
}

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

@ -228,6 +228,8 @@ renren:
workLoginUrls:
- /api/work/user/getToken #工作端-获取token
- /api/work/user/login #工作端-登录
- /api/analysis/user/getToken #数据分析端-获取token
- /api/analysis/user/login #数据分析端-登录
- /api/work/*/swagger/**
workUrls:
- /api/work/** #工作端接口

3
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserCountDTO.java

@ -2,8 +2,6 @@ package com.elink.esua.epdc.dto.user.form;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @program: esua-epdc-cloud
* @description: 用户数据统计/网格开通数量
@ -17,7 +15,6 @@ public class UserCountDTO{
/**
* 部门id
*/
@NotNull(message = "部门id不能为空")
private String deptId;
}

41
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java

@ -6,15 +6,17 @@ import lombok.Data;
import java.io.Serializable;
/**
* @author: qushutong
* @Date: 2020/2/11 13:09
* @Description: 开通网格情况
* @author: qushutong
* @Date: 2020/2/11 13:09
* @Description: 开通网格情况
*/
@Data
public class GridOpeningResultDTO implements Serializable {
private static final long serialVersionUID = -852226852590425991L;
private String gridId;
/**
* 街道社区网格
*/
@ -22,56 +24,65 @@ public class GridOpeningResultDTO implements Serializable {
/**
* 用户注册数
*/
private String registerCount;
private Integer registerCount;
/**
* 认证居民
*/
private Integer residentCount;
/**
* 党员注册数
* 认证党员数
*/
private String partyCount;
private Integer partyCount;
/**
* 居民扫码数
*/
private String ewmCount;
private Integer ewmCount;
/**
* 新闻数
*/
private String newsCount;
private Integer newsCount;
/**
* 通知数
*/
private String noticeCount;
private Integer noticeCount;
/**
* 议题数
*/
private String eventCount;
private Integer eventCount;
/**
* 项目数
*/
private String itemCount;
private Integer itemCount;
/**
* 项目结案数
*/
private String itemCloseCount;
private Integer itemCloseCount;
/**
* 社群数
*/
private String communityCount;
private Integer communityCount;
/**
* 社群成员数
*/
private String communityMemberCount;
private Integer communityMemberCount;
/**
* 社群话题数
*/
private String communityTopicCount;
private Integer communityTopicCount;
/**
* 网格长姓名
*/
private String gridLeader;
}

52
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/PartyAnalysExcel.java

@ -0,0 +1,52 @@
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author: qushutong
* @Date: 2020/2/12 14:24
* @Description: 注册用户分析
*/
@Data
public class PartyAnalysExcel {
@Excel(name = "街道名称")
private String streetName;
@Excel(name = "注册用户数")
private Integer userCount;
@Excel(name = "注册党员数")
private Integer partyMemberCount;
@Excel(name = "注册居民数")
private Integer residentCount;
@Excel(name = "男")
private Integer maleCount;
@Excel(name = "女")
private Integer femaleCount;
@Excel(name = "其他")
private Integer unknownSexCount;
@Excel(name = "超过50岁用户数量")
private Integer oldCount;
@Excel(name = "老龄化比例")
private BigDecimal oldPercent;
@Excel(name = "50岁以下用户数量")
private Integer youngCount;
@Excel(name = "年轻化比例")
private BigDecimal youngPercent;
@Excel(name = "党员认证失败数")
private Integer partyAuthFailureCount;
}

50
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author: qushutong
* @Date: 2020/2/12 14:24
* @Description: 注册用户分析
*/
@Data
public class RegisterExcel {
@Excel(name = "街道名称")
private String streetName;
@Excel(name = "注册用户数")
private Integer userCount;
@Excel(name = "注册党员数")
private Integer partyMemberCount;
@Excel(name = "注册居民数")
private Integer residentCount;
@Excel(name = "男")
private Integer maleCount;
@Excel(name = "女")
private Integer femaleCount;
@Excel(name = "其他")
private Integer unknownSexCount;
@Excel(name = "超过50岁用户数量")
private Integer oldCount;
@Excel(name = "老龄化比例")
private BigDecimal oldPercent;
@Excel(name = "50岁以下用户数量")
private Integer youngCount;
@Excel(name = "年轻化比例")
private BigDecimal youngPercent;
}

42
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/UserAnalysisController.java

@ -1,6 +1,7 @@
package com.elink.esua.epdc.modules.user.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
@ -20,20 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.excel.PartyAnalysExcel;
import com.elink.esua.epdc.excel.RegisterExcel;
import com.elink.esua.epdc.modules.user.service.UserAnalysisService;
import com.elink.esua.epdc.modules.user.service.YoungMemberRankService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
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.List;
import javax.servlet.http.HttpServletResponse;
/**
* 数据端用户数据分析相关接口
@ -144,4 +138,32 @@ public class UserAnalysisController {
ValidatorUtils.validateEntity(formDto);
return userAnalysisService.getGridStatistics(formDto);
}
/***
* 注册用户总数排名分析导出
* @param params
* @param response
* @return void
* @author qushutong
* @date 2020/2/12 14:38
*/
@GetMapping("export/register")
public void exportRegister(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
PageData<UserDataRankResultDTO> pageData = userAnalysisService.pageUserDataRank(params);
ExcelUtils.exportExcelToTarget(response, "注册用户总数排名分析", pageData.getList(), RegisterExcel.class);
}
/***
* 党员排名分析导出
* @param params
* @param response
* @return void
* @author qushutong
* @date 2020/2/12 14:38
*/
@GetMapping("export/party")
public void exportParty(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
PageData<UserDataRankResultDTO> pageData = userAnalysisService.pageUserDataRank(params);
ExcelUtils.exportExcelToTarget(response, "党员排名分析", pageData.getList(), PartyAnalysExcel.class);
}
}

92
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java

@ -53,42 +53,42 @@ public interface UserAnalysisDao extends BaseMapper<UserAnalysisDTO> {
/***
* 新闻
* @param
* 根据网格统计新闻发布数
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListNewsCount();
List<GridOpeningResultDTO> selectListNewsCount(Map<String, Object> params);
/***
* 通知
* @param
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListNoticeCount();
List<GridOpeningResultDTO> selectListNoticeCount(Map<String, Object> params);
/***
* 议题数
* @param
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListEventCount();
List<GridOpeningResultDTO> selectListEventCount(Map<String, Object> params);
/***
* 项目数
* @param
* 项目数项目结案数
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListItemCount();
List<GridOpeningResultDTO> selectListItemCount(Map<String, Object> params);
/**
* 查询用户数据排行
@ -111,72 +111,62 @@ public interface UserAnalysisDao extends BaseMapper<UserAnalysisDTO> {
List<UserDataRankResultDTO> selectListPartyAuthFailureCountByStreetId(@Param("streetIdList") List<String> streetIdList);
/***
* 项目结案数
* @param
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListItemCloseCount();
/***
* 社群数
* @param
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListCommunityCount();
/***
* 社群成员数
* @param
* 社群数 社群成员数 社群话题数
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListCommunityMemberCount();
List<GridOpeningResultDTO> selectListCommunityCount(Map<String, Object> params);
/***
* 社群话题数
* @param
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author qushutong
* @date 2020/2/11 14:10
*/
List<GridOpeningResultDTO> selectListCommunityTopicCount();
/**
*用户数据统计
* 用户数据统计
*
* @author wangtong
* @date 2020/2/11 14:55
* @param [formDTO]
* @return com.elink.esua.epdc.dto.user.result.UserAnalysisCountDTO
* @author wangtong
* @date 2020/2/11 14:55
*/
UserAnalysisCountDTO getUserStatistics(UserCountDTO formDto, List<Long> deptIdList);
/**
*网格数量统计
* 网格数量统计
*
* @author wangtong
* @date 2020/2/11 14:55
* @param [formDTO]
* @return com.elink.esua.epdc.dto.user.result.GriddingCountDTO
* @author wangtong
* @date 2020/2/11 14:55
*/
GriddingCountDTO getGridStatistics(UserCountDTO formDto, List<Long> deptIdList);
/**
* @Description 注册用户数排名
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO>>
* @Description 注册用户数排名
* @Author lpf
* @Date 2020/2/11
* @Date 2020/2/11
* @Param [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO>>
**/
List<UserSortRankResultDTO> userRegisterSort(UserSortRankFormDTO formDto, List<Long> deptIdList);
/**
* 开通网格列表查询字段网格的完整机构名称网格id网格长名称
*
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author work@yujt.net.cn
* @date 2020/2/12 13:27
*/
List<GridOpeningResultDTO> selectListGridHasMaCode(Map<String, Object> params);
/**
* 根据网格id查询网格内注册用户数认证党员数认证居民数
*
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO>
* @author work@yujt.net.cn
* @date 2020/2/12 14:06
*/
List<GridOpeningResultDTO> selectListReigistData(Map<String, Object> params);
}

109
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java

@ -42,46 +42,68 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
@Override
public PageData<GridOpeningResultDTO> listPageGridOpening(Map<String, Object> params) {
// 注册数
List<GridOpeningResultDTO> registerCountList = baseDao.selectListReigistCount();
// 党员数
List<GridOpeningResultDTO> partyCountList = baseDao.selectListPartyCount();
// 居民扫码数
List<GridOpeningResultDTO> ewmCountList = baseDao.selectListEwmCount();
IPage<GridOpeningResultDTO> iPage = this.getPage(params);
List<GridOpeningResultDTO> list = baseDao.selectListGridHasMaCode(params);
PageData<GridOpeningResultDTO> page = new PageData<>(list, iPage.getTotal());
if (CollUtil.isEmpty(list)) {
return page;
}
List<String> gridIdList = Lists.newArrayList();
for (GridOpeningResultDTO gridOpeningResult : list) {
gridIdList.add(gridOpeningResult.getGridId());
}
params.put("gridIdList", gridIdList);
// 注册数,认证党员数,认证居民数
List<GridOpeningResultDTO> registerDataList = baseDao.selectListReigistData(params);
// 新闻数
List<GridOpeningResultDTO> newsCountList = baseDao.selectListNewsCount();
List<GridOpeningResultDTO> newsCountList = baseDao.selectListNewsCount(params);
// 通知数
List<GridOpeningResultDTO> noticeCountList = baseDao.selectListNoticeCount();
List<GridOpeningResultDTO> noticeCountList = baseDao.selectListNoticeCount(params);
// 议题数
List<GridOpeningResultDTO> eventCountList = baseDao.selectListEventCount();
// 项目数
List<GridOpeningResultDTO> itemCountList = baseDao.selectListItemCount();
// 结案数
List<GridOpeningResultDTO> itemCloseCountList = baseDao.selectListItemCloseCount();
// 社群数
List<GridOpeningResultDTO> communityCountList = baseDao.selectListCommunityCount();
// 社群成员数
List<GridOpeningResultDTO> communityMemberCountList = baseDao.selectListCommunityMemberCount();
// 社群话题数
List<GridOpeningResultDTO> communityTopicCountList = baseDao.selectListCommunityTopicCount();
GridOpeningResultDTO openingResultDto;
for (int i = 0; i < registerCountList.size(); i++) {
openingResultDto = registerCountList.get(i);
openingResultDto.setRegisterCount(registerCountList.get(i).getRegisterCount());
openingResultDto.setPartyCount(partyCountList.get(i).getPartyCount());
openingResultDto.setNewsCount(newsCountList.get(i).getNewsCount());
openingResultDto.setNoticeCount(noticeCountList.get(i).getNoticeCount());
openingResultDto.setEwmCount(ewmCountList.get(i).getEwmCount());
openingResultDto.setEventCount(eventCountList.get(i).getEventCount());
openingResultDto.setItemCount(itemCountList.get(i).getItemCount());
openingResultDto.setItemCloseCount(itemCloseCountList.get(i).getItemCloseCount());
openingResultDto.setCommunityCount(communityCountList.get(i).getCommunityCount());
openingResultDto.setCommunityMemberCount(communityMemberCountList.get(i).getCommunityMemberCount());
openingResultDto.setCommunityTopicCount(communityTopicCountList.get(i).getCommunityTopicCount());
}
List<GridOpeningResultDTO> eventCountList = baseDao.selectListEventCount(params);
// 项目数,项目结案数
List<GridOpeningResultDTO> itemCountList = baseDao.selectListItemCount(params);
// 社群数 社群成员数 社群话题数
List<GridOpeningResultDTO> communityCountList = baseDao.selectListCommunityCount(params);
IPage<GridOpeningResultDTO> iPage = this.getPage(params);
return new PageData<>(registerCountList, iPage.getTotal());
for (GridOpeningResultDTO resultDto : list) {
for (GridOpeningResultDTO registerData : registerDataList) {
if(resultDto.getGridId().equals(registerData.getGridId())){
resultDto.setRegisterCount(registerData.getRegisterCount());
resultDto.setPartyCount(registerData.getPartyCount());
resultDto.setRegisterCount(registerData.getRegisterCount());
}
}
for (GridOpeningResultDTO newsCountData : newsCountList) {
if(resultDto.getGridId().equals(newsCountData.getGridId())){
resultDto.setNewsCount(newsCountData.getNewsCount());
}
}
for (GridOpeningResultDTO noticeCounData : noticeCountList) {
if(resultDto.getGridId().equals(noticeCounData.getGridId())){
resultDto.setNoticeCount(noticeCounData.getNoticeCount());
}
}
for (GridOpeningResultDTO eventCountData : eventCountList) {
if(resultDto.getGridId().equals(eventCountData.getGridId())){
resultDto.setEventCount(eventCountData.getEventCount());
}
}
for (GridOpeningResultDTO itemCountData : itemCountList) {
if(resultDto.getGridId().equals(itemCountData.getGridId())){
resultDto.setItemCloseCount(itemCountData.getItemCloseCount());
}
}
for (GridOpeningResultDTO communityCountData : communityCountList) {
if(resultDto.getGridId().equals(communityCountData.getGridId())){
resultDto.setCommunityCount(communityCountData.getCommunityCount());
resultDto.setCommunityTopicCount(communityCountData.getCommunityTopicCount());
resultDto.setCommunityMemberCount(communityCountData.getCommunityMemberCount());
}
}
}
return page;
}
@Override
@ -130,12 +152,12 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
}
/**
*用户数据统计
* 用户数据统计
*
* @author wangtong
* @date 2020/2/11 14:33
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author wangtong
* @date 2020/2/11 14:33
*/
@Override
public Result getUserStatistics(UserCountDTO formDto) {
@ -145,12 +167,12 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
/**
*网格开通状况
* 网格开通状况
*
* @author wangtong
* @date 2020/2/11 14:33
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author wangtong
* @date 2020/2/11 14:33
*/
@Override
public Result getGridStatistics(UserCountDTO formDto) {
@ -163,5 +185,6 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
List<UserSortRankResultDTO> data = baseDao.userRegisterSort(formDto, SecurityUser.getUser().getDeptIdList());
return new Result<List<UserSortRankResultDTO>>().ok(data); }
return new Result<List<UserSortRankResultDTO>>().ok(data);
}
}

5
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/OldMemberRankDao.xml

@ -40,8 +40,9 @@ FROM (
uu.DEL_FLAG = '0'
AND uu.PARTY_FLAG = '1'
AND ad.id IS NOT NULL
AND ad2.id != 1191534129122230274
AND ad2.id = #{formDto.deptId}
<if test="formDto.deptId != null and formDto.deptId !=''">
AND ad2.id = #{formDto.deptId}
</if>
AND ad2.id IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}

326
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml

@ -152,269 +152,84 @@
<!--新闻数-->
<select id="selectListNewsCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(ad2.`name`,ad1.`name`,t0.`name`) AS allDeptName,
count(un.ID) AS newsCount
COUNT(nn.ID) newsCount,nn.DEPT_ID gridId
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_news.epdc_news un ON un.dept_id = t0.id
AND un.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
esua_epdc_news.epdc_news nn
WHERE
nn.DEL_FLAG = '0'
<if test="gridIdList != null and gridIdList.size() > 0">
AND nn.DEPT_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
GROUP BY nn.DEPT_ID
</select>
<!--通知数-->
<select id="selectListNoticeCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(un.ID) AS noticeCount
SELECT
COUNT(nn.ID) newsCount,nn.DEPT_ID gridId
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_news.epdc_notice un ON un.dept_id = t0.id
AND un.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
esua_epdc_news.epdc_notice nn
WHERE
nn.DEL_FLAG = '0'
<if test="gridIdList != null and gridIdList.size() > 0">
AND nn.DEPT_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
GROUP BY nn.DEPT_ID
</select>
<!--议题数-->
<select id="selectListEventCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(epen.ID) AS eventCount
epen.GRID_ID gridId, COUNT( epen.ID ) eventCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_events.epdc_events epen ON epen.GRID_ID = t0.id
AND epen.DEL_FLAG = '0'
AND epen.EVENT_STATE = '4'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
esua_epdc_events.epdc_events epen
WHERE
epen.DEL_FLAG = '0' AND epen.EVENT_STATE = '4'
<if test="gridIdList != null and gridIdList.size() > 0">
AND epen.GRID_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
GROUP BY epen.GRID_ID
</select>
<!--项目数-->
<select id="selectListItemCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(epen.ID) AS itemCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_events.epdc_item epen ON epen.GRID_ID = t0.id
AND epen.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
</select>
<!--结案数-->
<select id="selectListItemCloseCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(epen.ID) AS itemCloseCount
epen.GRID_ID gridId,
COUNT( epen.ID ) itemCount,
count(epen.EVENT_STATE = '10' or null) itemCloseCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_events.epdc_item epen ON epen.GRID_ID = t0.id
AND epen.DEL_FLAG = '0'
AND epen.ITEM_STATE = '10'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
esua_epdc_events.epdc_item epen
WHERE
epen.DEL_FLAG = '0'
<if test="gridIdList != null and gridIdList.size() > 0">
AND epen.GRID_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
GROUP BY epen.GRID_ID
</select>
<!--社群数-->
<select id="selectListCommunityCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(epgr.ID) AS communityCount
epgr.GRID_ID gridId,
COUNT( DISTINCT epgr.ID ) communityCount,
COUNT( DISTINCT ug.user_id ) communityMemberCount,
COUNT( DISTINCT ut.ID ) communityTopicCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_group.epdc_group epgr ON epgr.GRID_ID = t0.id
AND epgr.DEL_FLAG = '0'
AND (
epgr.STATE = '10'
OR epgr.STATE = '15'
)
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
esua_epdc_group.epdc_group epgr
LEFT JOIN esua_epdc_group.epdc_user_group ug ON epgr.id = ug.group_id AND ug.DEL_FLAG = '0'
LEFT JOIN esua_epdc_group.epdc_topic ut ON epgr.id = ut.group_id AND ut.DEL_FLAG = '0'
WHERE
epgr.DEL_FLAG = '0' AND ( epgr.STATE = '10' OR epgr.STATE = '15' )
<if test="gridIdList != null and gridIdList.size() > 0">
AND epgr.GRID_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
GROUP BY epgr.GRID_ID
</select>
<!--社区成员数-->
<select id="selectListCommunityMemberCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(ug.ID) AS communityMemberCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_group.epdc_group epgr ON epgr.GRID_ID = t0.id
AND epgr.DEL_FLAG = '0'
AND (
epgr.STATE = '10'
OR epgr.STATE = '15'
)
LEFT JOIN esua_epdc_group.epdc_user_group ug ON epgr.id = ug.group_id
AND ug.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
</select>
<!--社群话题数-->
<select id="selectListCommunityTopicCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
CONCAT(
ad2.`name`,
ad1.`name`,
t0.`name`
) AS allDeptName,
count(ug.ID) AS communityTopicCount
FROM
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
) t0
LEFT JOIN esua_epdc_group.epdc_group epgr ON epgr.GRID_ID = t0.id
AND epgr.DEL_FLAG = '0'
AND (
epgr.STATE = '10'
OR epgr.STATE = '15'
)
LEFT JOIN esua_epdc_group.epdc_topic ug ON epgr.id = ug.group_id
AND ug.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = t0.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
GROUP BY
t0.id
ORDER BY
t0.id ASC
</select>
<select id="getUserStatistics" resultType="com.elink.esua.epdc.dto.user.result.UserAnalysisCountDTO" parameterType="com.elink.esua.epdc.dto.user.form.UserCountDTO">
SELECT
t.userCount,
@ -524,4 +339,49 @@
</if>
LIMIT #{formDto.pageIndex},#{formDto.pageSize}
</select>
<select id="selectListGridHasMaCode" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
ad.id gridId,
CONCAT( ad2.`name`, '-', ad1.`name`, '-', ad.`name` ) AS allDeptName,
GROUP_CONCAT( DISTINCT u.real_name ) gridLeader
FROM
esua_epdc_admin.sys_dept ad
LEFT JOIN esua_epdc_admin.epdc_dept_ma_code ama ON ad.id = ama.GRID_ID
AND ama.DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad1.id = ad.pid
LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad2.id = ad1.pid
LEFT JOIN esua_epdc_admin.sys_role_data_scope ards ON ards.dept_id = ad.id
LEFT JOIN esua_epdc_admin.sys_role r ON ards.role_id = r.id AND r.DEL_FLAG = 0
LEFT JOIN esua_epdc_admin.sys_role_user ru ON r.id = ru.role_id
LEFT JOIN esua_epdc_admin.sys_user u ON ru.user_id = u.id AND u.del_flag = 0
WHERE
ad.type_key = 'grid_party'
AND ad.del_flag = 0
AND ama.ID IS NOT NULL
GROUP BY
ad.id
ORDER BY
ama.CREATED_TIME DESC,
ad.create_date DESC
</select>
<select id="selectListReigistData" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
t.DEPT_ID, COUNT( t.ID ) registerCount,
COUNT(t.PARTY_FLAG = '0' OR NULL) residentCount,
COUNT(t.PARTY_FLAG = '1' OR NULL) partyCount
FROM (
SELECT
uu.ID, uu.DEPT_ID, uu.STATE, uu.PARTY_FLAG
FROM
esua_epdc_user.epdc_user uu
WHERE
uu.DEL_FLAG = '0'
<if test="gridIdList != null and gridIdList.size() > 0">
AND uu.DEPT_ID in <foreach item="item" collection="gridIdList" open="(" separator="," close=")"> #{item} </foreach>
</if>
AND uu.DEPT_ID IS NOT NULL
) t
GROUP BY t.DEPT_ID
</select>
</mapper>

5
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/YoungMemberRankDao.xml

@ -40,8 +40,9 @@ FROM (
uu.DEL_FLAG = '0'
AND uu.PARTY_FLAG = '1'
AND ad.id IS NOT NULL
AND ad2.id != 1191534129122230274
AND ad2.id = #{formDto.deptId}
<if test="formDto.deptId != null and formDto.deptId !=''">
AND ad2.id = #{formDto.deptId}
</if>
AND ad2.id IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}

15
esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml

@ -182,6 +182,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx29b074840ef4bfd9</work.wx.ma.appId>
<work.wx.ma.secret>4adb1afccc69f205cdf5b521d74e2aca</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -221,6 +224,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -256,6 +262,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -291,6 +300,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wxddb240334d09049f</work.wx.ma.appId>
<work.wx.ma.secret>071b8c70da0d0482aaf79052e64f83bc</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -330,6 +342,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
</profiles>

38
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java

@ -1,8 +1,12 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
@ -11,9 +15,7 @@ import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO;
import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO;
import com.elink.esua.epdc.service.AnalysisUserService;
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.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -42,6 +44,36 @@ public class ApiAnalysisUserController {
return analysisUserService.test();
}
/**
*
* 数据分析端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:57
*/
@PostMapping("login")
public Result<WorkUserAuthorizationDTO> login(@RequestBody WorkUserLoginDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return analysisUserService.login(formDto);
}
/**
*
* 数据分析端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:58
*/
@GetMapping("getToken")
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return analysisUserService.getMaToken(formDto);
}
@GetMapping("/partyMemberOldSort")
public Result<List<OldMemberRankResultDTO>> listOldMemberRankByDeptId(MemberRankFormDTO formDto) {
return analysisUserService.listOldMemberRankByDeptId(formDto);

26
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java

@ -1,6 +1,9 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
@ -25,6 +28,29 @@ public interface AnalysisUserService {
* @Date: 2019/11/19 16:37
*/
Result test();
/**
*
* 数据分析端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:59
*/
Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto);
/**
*
* 数据分析端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 11:00
*/
Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto);
/**
* @Description 获取党员老龄化排名列表
* @Author songyunpeng

73
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java

@ -1,15 +1,29 @@
package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.result.OldMemberRankResultDTO;
import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO;
import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.AnalysisUserFeignClient;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.service.AnalysisUserService;
import com.elink.esua.epdc.utils.WxMaServiceUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -26,13 +40,48 @@ public class AnalysisUserServiceImpl implements AnalysisUserService {
@Autowired
private AnalysisUserFeignClient analysisUserFeignClient;
@Autowired
private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private ResourceFeignClient resourceFeignClient;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public Result test() {
return analysisUserFeignClient.test();
}
@Override
public Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
formDto.setOpenId(openId);
return resourceFeignClient.workLogin(formDto);
}
@Override
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
// 检查当前微信是否已绑定账户
Result<SysUserDTO> sysUserDtoResult = adminFeignClient.getSysUserInfoByOpenId(openId);
if (!sysUserDtoResult.success()) {
return new Result<WorkUserAuthorizationDTO>().error(sysUserDtoResult.getMsg());
}
SysUserDTO userDto = sysUserDtoResult.getData();
if (null == userDto) {
WorkUserAuthorizationDTO resultDto = new WorkUserAuthorizationDTO();
resultDto.setRegisterState(NumConstant.ZERO_STR);
return new Result<WorkUserAuthorizationDTO>().ok(resultDto);
}
return resourceFeignClient.getToken(ConvertUtils.sourceToTarget(userDto, WorkUserTokenFormDTO.class));
}
@Override
public Result<List<OldMemberRankResultDTO>> listOldMemberRankByDeptId( MemberRankFormDTO formDto) {
return analysisUserFeignClient.listOldMemberRankByDeptId(formDto);
@ -59,4 +108,28 @@ public class AnalysisUserServiceImpl implements AnalysisUserService {
return analysisUserFeignClient.getGridStatistics(formDto);
}
/**
*
* 解析微信code获取小程序用户信息
*
* @params [wxCode]
* @return cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
* @author liuchuang
* @since 2020/2/12 13:20
*/
private WxMaJscode2SessionResult getWxMaUser(String wxCode) {
WxMaJscode2SessionResult wxMaJscode2SessionResult = null;
try {
wxMaJscode2SessionResult = wxMaServiceUtils.analysisWxMaService().jsCode2SessionInfo(wxCode);
} catch (WxErrorException e) {
e.printStackTrace();
}
if (null == wxMaJscode2SessionResult) {
throw new RenException("解析微信用户信息失败");
} else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
throw new RenException("获取微信openid失败");
}
return wxMaJscode2SessionResult;
}
}

7
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml

@ -113,11 +113,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@

15
esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml

@ -164,6 +164,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx29b074840ef4bfd9</work.wx.ma.appId>
<work.wx.ma.secret>4adb1afccc69f205cdf5b521d74e2aca</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -200,6 +203,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -233,6 +239,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -266,6 +275,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wxddb240334d09049f</work.wx.ma.appId>
<work.wx.ma.secret>071b8c70da0d0482aaf79052e64f83bc</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
@ -302,6 +314,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
</properties>
</profile>
</profiles>

7
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml

@ -100,8 +100,15 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@

Loading…
Cancel
Save