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