From ccf9e74f7e464939c3b6855005299f724a78ec51 Mon Sep 17 00:00:00 2001 From: yujintao Date: Thu, 5 Mar 2020 14:25:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E5=88=86?= =?UTF-8?q?=E6=9E=90=EF=BC=8C=E7=BD=91=E6=A0=BC=E5=BC=80=E9=80=9A=E6=83=85?= =?UTF-8?q?=E5=86=B5=E5=88=97=E8=A1=A8=E4=B8=8E=E6=80=BB=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C=E6=8E=92=E8=A1=8C=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E3=80=82=E6=96=B0=E5=A2=9E=E8=AE=A1=E7=AE=97=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/user/result/GridOpeningResultDTO.java | 7 +- .../user/result/UserDataRankResultDTO.java | 6 +- .../modules/user/dao/UserAnalysisDao.java | 26 +++++- .../service/impl/UserAnalysisServiceImpl.java | 65 +++++++-------- .../resources/mapper/user/UserAnalysisDao.xml | 82 +++++++++++++++---- 5 files changed, 132 insertions(+), 54 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java index b4b623d6e..42d92ff83 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java @@ -26,7 +26,7 @@ public class GridOpeningResultDTO implements Serializable { */ private int registerCount = 0; /** - * 认证居民 + * 居民数(包括认证成功和认证失败的居民) */ private int residentCount = 0; @@ -35,6 +35,11 @@ public class GridOpeningResultDTO implements Serializable { */ private int partyCount = 0; + /** + * 未认证用户(根据用户第一次扫码的网格统计) + */ + private Integer unAuthorizedCount = 0; + /** * 居民扫码数 */ diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java index ddc4c2b8c..e53f5a192 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java @@ -38,9 +38,13 @@ public class UserDataRankResultDTO { */ private Integer unknownSexCount; /** - * 居民数 + * 居民数(包括认证成功和认证失败的居民) */ private Integer residentCount; + /** + * 未认证用户(根据用户第一次扫码的网格统计) + */ + private Integer unAuthorizedCount; /** * 党员数 */ diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java index 1a11b5df3..5c2c50477 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java @@ -51,12 +51,12 @@ public interface UserAnalysisDao extends BaseMapper { /** * 根据街道id,获取街道下党员认证失败的数量 * - * @param streetIdList 街道id的集合 + * @param params 主要字段:街道id的集合,开始时间,结束时间 * @return java.util.List * @author work@yujt.net.cn * @date 2020/2/11 17:25 */ - List selectListPartyAuthFailureCountByStreetId(@Param("streetIdList") List streetIdList); + List selectListPartyAuthFailureCountByStreetId(Map params); /*** * 社群数 社群成员数 社群话题数 @@ -130,11 +130,31 @@ public interface UserAnalysisDao extends BaseMapper { /** * 查询已开通网格数和未开通网格数 - * @param params + * + * @param params * @return com.elink.esua.epdc.dto.user.result.GridDataTotalResultDTO * @author work@yujt.net.cn * @date 2020/2/13 13:50 */ GridDataTotalResultDTO selectCountGridWorkOrNot(Map params); + /** + * 根据街道id,查询街道内未认证用户数 + * + * @param params + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/3/5 14:10 + */ + List selectListUnAuthorizedCountByStreetId(Map params); + + /** + * 根据网格id,查询网格内未认证用户数 + * + * @param params + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/3/5 14:10 + */ + List selectListUnAuthorizedCountByGridId(Map params); } diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java index 2731ea0e6..f4fb3cd6c 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java @@ -16,13 +16,11 @@ import com.elink.esua.epdc.dto.user.UserAnalysisDTO; import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO; import com.elink.esua.epdc.dto.user.form.UserCountDTO; import com.elink.esua.epdc.dto.user.result.*; -import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.modules.user.dao.UserAnalysisDao; import com.elink.esua.epdc.modules.user.service.UserAnalysisService; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -37,8 +35,6 @@ import java.util.Map; @Slf4j @Service public class UserAnalysisServiceImpl extends BaseServiceImpl implements UserAnalysisService { - @Autowired - private AdminFeignClient ademinFeignClient; @Override public PageData listPageGridOpening(Map params) { @@ -84,6 +80,8 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl registerDataList = baseDao.selectListReigistData(params); + // 未认证用户数 + List unAuthCountList = baseDao.selectListUnAuthorizedCountByGridId(params); // 新闻数 通知数 议题数 List nneCountList = baseDao.selectListNewsNoticeEventCount(params); // 项目数,项目结案数,项目好评数 @@ -94,7 +92,6 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl page = getPage(params); List list = baseDao.selectListUserDataRank(params); - String partyFlag = MapUtil.getStr(params, "partyFlag"); - // 如果是查询党员相关排行,进行查询党员认证失败数的查询 - if (StringUtils.isNotBlank(partyFlag) && YesOrNoEnum.YES.value().equals(partyFlag)) { - list = packPartyAuthFailureAmount(list); - } - return new PageData<>(list, page.getTotal()); - } - - /** - * 根据已经查出的列表的街道id,查询街道下党员认证失败的人数 - * - * @param hasList - * @return java.util.List - * @author work@yujt.net.cn - * @date 2020/2/11 17:32 - */ - private List packPartyAuthFailureAmount(List hasList) { - if (CollUtil.isNotEmpty(hasList)) { + if (CollUtil.isNotEmpty(list)) { List streetIdList = Lists.newArrayList(); - for (UserDataRankResultDTO rankResult : hasList) { + for (UserDataRankResultDTO rankResult : list) { streetIdList.add(rankResult.getStreetId()); } - if (CollUtil.isNotEmpty(streetIdList)) { - List partyAuthFailureCountByStreetId = baseDao.selectListPartyAuthFailureCountByStreetId(streetIdList); - - for (UserDataRankResultDTO rankResult : hasList) { + params.put("streetIdList", streetIdList); + String partyFlag = MapUtil.getStr(params, "partyFlag"); + // 如果是党员排行列表,查询党员认证失败数 + if (StringUtils.isNotBlank(partyFlag) && YesOrNoEnum.YES.value().equals(partyFlag)) { + List partyAuthFailureCountByStreetId = baseDao.selectListPartyAuthFailureCountByStreetId(params); + for (UserDataRankResultDTO rankResult : list) { for (UserDataRankResultDTO byStreetId : partyAuthFailureCountByStreetId) { if (rankResult.getStreetId().equals(byStreetId.getStreetId())) { rankResult.setPartyAuthFailureCount(byStreetId.getPartyAuthFailureCount()); } } } + } else { + // 用户排行列表,查询未认证用户数 + List unAuthorizedCountList = baseDao.selectListUnAuthorizedCountByStreetId(params); + for (UserDataRankResultDTO rankResult : list) { + for (UserDataRankResultDTO unAuthCount : unAuthorizedCountList) { + if (rankResult.getStreetId().equals(unAuthCount.getStreetId())) { + rankResult.setUnAuthorizedCount(unAuthCount.getUnAuthorizedCount()); + } + } + } } } - return hasList; + return new PageData<>(list, page.getTotal()); } + /** * 用户数据统计 * @@ -230,7 +230,6 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl gridOpeningResults = this.listPageGridOpeningsForExport(params); - int registerCount = 0; int residentCount = 0; int partyCount = 0; int newsCount = 0; @@ -242,11 +241,12 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl - SELECT - ad2.id AS streetId, - COUNT( DISTINCT uf.USER_ID ) partyAuthFailureCount + ad2.id AS streetId, + COUNT( DISTINCT uf.USER_ID ) partyAuthFailureCount FROM - esua_epdc_user.epdc_user uu - LEFT JOIN esua_epdc_user.epdc_party_authentication_failed uf ON uu.id = uf.user_id - LEFT JOIN esua_epdc_admin.sys_dept ad ON uu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' - + esua_epdc_user.epdc_user uu + LEFT JOIN esua_epdc_user.epdc_party_authentication_failed uf ON uu.id = uf.user_id + LEFT JOIN esua_epdc_admin.sys_dept ad ON uu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' + WHERE - uu.DEL_FLAG = '0' - AND uu.PARTY_FLAG = '0' - AND ad.id IS NOT NULL - - and ad2.ID in - #{deptId} - - GROUP BY - ad2.ID + uu.DEL_FLAG = '0' AND uu.PARTY_FLAG = '0' AND ad.id IS NOT NULL + + AND uf.CREATED_TIME BETWEEN #{startTime} AND #{endTime} + + + and ad2.ID in #{deptId} + + GROUP BY ad2.ID @@ -328,6 +326,7 @@ GROUP BY ad.id ORDER BY ama.CREATED_TIME DESC, ad.create_date DESC + + SELECT + tt.streetId, COUNT( DISTINCT tt.userId ) unAuthorizedCount + FROM ( + SELECT * FROM ( + SELECT + u.NICKNAME, ad2.id streetId, ad2.`name` streetName, u.ID userId, gr.CREATED_TIME + FROM + esua_epdc_user.epdc_user_grid_relation gr + LEFT JOIN esua_epdc_admin.sys_dept ad ON gr.grid_id = ad.id + LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad.pid = ad1.id + LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad1.pid = ad2.id + LEFT JOIN esua_epdc_user.epdc_user u ON gr.USER_ID = u.ID + WHERE + u.STATE = '0' AND u.ID IS NOT NULL + + AND gr.CREATED_TIME BETWEEN #{startTime} AND #{endTime} + + + and ad2.ID in #{deptId} + + ORDER BY gr.CREATED_TIME ASC + ) t GROUP BY t.userId + ) tt GROUP BY tt.streetId + + +