Browse Source

PC端用户数据分析接口和sql修改

dev
yujintao 6 years ago
parent
commit
c73f989a90
  1. 48
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/dao/UserAnalysisDao.java
  2. 32
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java
  3. 136
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml

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

@ -33,36 +33,6 @@ public interface UserAnalysisDao extends BaseMapper<UserAnalysisDTO> {
*/
List<GridOpeningResultDTO> selectListEwmCount();
/***
* 根据网格统计新闻发布数
* @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(Map<String, Object> params);
/***
* 通知
* @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(Map<String, Object> params);
/***
* 议题数
* @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(Map<String, Object> params);
/***
* 项目数项目结案数
* @param params
@ -101,22 +71,22 @@ public interface UserAnalysisDao extends BaseMapper<UserAnalysisDTO> {
*/
List<GridOpeningResultDTO> selectListCommunityCount(Map<String, Object> params);
/**
* 用户数据统计
*
* @param [formDTO]
* @param formDto
* @param deptIdList
* @return com.elink.esua.epdc.dto.user.result.UserAnalysisCountDTO
* @author wangtong
* @date 2020/2/11 14:55
*/
UserAnalysisCountDTO getUserStatistics(UserCountDTO formDto, List<Long> deptIdList);
/**
* 网格数量统计
*
* @param [formDTO]
* @param formDto
* @param deptIdList
* @return com.elink.esua.epdc.dto.user.result.GriddingCountDTO
* @author wangtong
* @date 2020/2/11 14:55
@ -151,4 +121,14 @@ public interface UserAnalysisDao extends BaseMapper<UserAnalysisDTO> {
* @date 2020/2/12 14:06
*/
List<GridOpeningResultDTO> selectListReigistData(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/13 11:18
*/
List<GridOpeningResultDTO> selectListNewsNoticeEventCount(Map<String, Object> params);
}

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

@ -42,6 +42,7 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
@Override
public PageData<GridOpeningResultDTO> listPageGridOpening(Map<String, Object> params) {
params.put("deptIdList", SecurityUser.getUser().getDeptIdList());
IPage<GridOpeningResultDTO> iPage = this.getPage(params);
List<GridOpeningResultDTO> list = baseDao.selectListGridHasMaCode(params);
@ -57,14 +58,12 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
}
if (CollUtil.isNotEmpty(gridIdList)) {
params.put("gridIdList", gridIdList);
// 页码设置为1,则下面几次查询不会拼接分页
params.put("page", NumConstant.ONE);
// 注册数,认证党员数,认证居民数
List<GridOpeningResultDTO> registerDataList = baseDao.selectListReigistData(params);
// 新闻数
List<GridOpeningResultDTO> newsCountList = baseDao.selectListNewsCount(params);
// 通知数
List<GridOpeningResultDTO> noticeCountList = baseDao.selectListNoticeCount(params);
// 议题数
List<GridOpeningResultDTO> eventCountList = baseDao.selectListEventCount(params);
// 新闻数 通知数 议题数
List<GridOpeningResultDTO> nneCountList = baseDao.selectListNewsNoticeEventCount(params);
// 项目数,项目结案数
List<GridOpeningResultDTO> itemCountList = baseDao.selectListItemCount(params);
// 社群数 社群成员数 社群话题数
@ -75,26 +74,19 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
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());
resultDto.setResidentCount(registerData.getResidentCount());
}
}
for (GridOpeningResultDTO eventCountData : eventCountList) {
if (resultDto.getGridId().equals(eventCountData.getGridId())) {
resultDto.setEventCount(eventCountData.getEventCount());
for (GridOpeningResultDTO nneCountData : nneCountList) {
if (resultDto.getGridId().equals(nneCountData.getGridId())) {
resultDto.setNewsCount(nneCountData.getNewsCount());
resultDto.setNoticeCount(nneCountData.getNoticeCount());
resultDto.setEventCount(nneCountData.getEventCount());
}
}
for (GridOpeningResultDTO itemCountData : itemCountList) {
if (resultDto.getGridId().equals(itemCountData.getGridId())) {
resultDto.setItemCount(itemCountData.getItemCount());
resultDto.setItemCloseCount(itemCountData.getItemCloseCount());
}
}

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

@ -119,66 +119,30 @@
t0.id ASC
</select>
<!--新闻数-->
<select id="selectListNewsCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
<!--新闻数 通知数 议题数-->
<select id="selectListNewsNoticeEventCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
COUNT(nn.ID) newsCount,nn.DEPT_ID gridId
t.gridId,
COUNT( DISTINCT nne.id ) newsCount,
COUNT( DISTINCT nnn.ID ) noticeCount,
COUNT( DISTINCT eee.ID ) eventCount
FROM
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>
<if test="startTime != null and endTime != null and endTime != ''">
AND nn.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
</if>
GROUP BY nn.DEPT_ID
</select>
<!--通知数-->
<select id="selectListNoticeCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
COUNT(nn.ID) newsCount,nn.DEPT_ID gridId
FROM
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>
<if test="startTime != null and endTime != null and endTime != ''">
AND nn.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
</if>
GROUP BY nn.DEPT_ID
</select>
<!--议题数-->
<select id="selectListEventCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
epen.GRID_ID gridId, COUNT( epen.ID ) eventCount
FROM
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>
<foreach collection="gridIdList" item="gridId" open="(" separator="UNION ALL" close=") t">
SELECT #{gridId} gridId
</foreach>
LEFT JOIN esua_epdc_news.epdc_news nne ON t.gridId = nne.DEPT_ID AND nne.DEL_FLAG = '0'
LEFT JOIN esua_epdc_news.epdc_notice nnn ON t.gridId = nnn.DEPT_ID AND nnn.DEL_FLAG = '0'
LEFT JOIN esua_epdc_events.epdc_events eee ON t.gridId = eee.GRID_ID AND eee.DEL_FLAG = '0' AND eee.EVENT_STATE = '4'
where 1=1
<if test="startTime != null and endTime != null and endTime != ''">
AND epen.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
AND nne.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
AND nnn.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
AND eee.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY epen.GRID_ID
GROUP BY
t.gridId
</select>
<!--项目数-->
<select id="selectListItemCount" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
@ -190,12 +154,10 @@
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>
AND epen.GRID_ID in <include refid="foreachGridIdList"></include>
</if>
<if test="startTime != null and endTime != null and endTime != ''">
AND epen.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
AND epen.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY epen.GRID_ID
</select>
@ -214,12 +176,10 @@
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>
AND epgr.GRID_ID in <include refid="foreachGridIdList"></include>
</if>
<if test="startTime != null and endTime != null and endTime != ''">
AND epgr.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
AND epgr.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY epgr.GRID_ID
</select>
@ -337,6 +297,19 @@
LIMIT #{formDto.pageIndex},#{formDto.pageSize}
</select>
<!--循环数据权限中的部门id-->
<sql id="foreachDeptIdList">
<foreach collection="deptIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</sql>
<!--循环网格id集合-->
<sql id="foreachGridIdList">
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</sql>
<select id="selectListGridHasMaCode" resultType="com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO">
SELECT
ad.id gridId,
@ -353,6 +326,9 @@
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'
<if test="deptIdList != null and deptIdList.size() > 0">
and ad.ID in <include refid="foreachDeptIdList"></include>
</if>
AND ad.del_flag = 0
AND ama.ID IS <if test='category != null and category == "1"'>NOT</if> NULL
<if test="gridId != null and grid != ''">and (ad1.id = #{gridId} or ad2.id = #{gridId})</if>
@ -361,26 +337,24 @@
</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
t.DEPT_ID gridId, 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>
<if test="startTime != null and endTime != null and endTime != ''">
AND uu.CREATED_TIME BETWEEN #{startTime}
AND #{endTime}
</if>
AND uu.DEPT_ID IS NOT NULL
) t
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 <include refid="foreachGridIdList"></include>
</if>
<if test="startTime != null and endTime != null and endTime != ''">
AND uu.CREATED_TIME BETWEEN #{startTime} AND #{endTime}
</if>
AND uu.DEPT_ID IS NOT NULL
) t
GROUP BY t.DEPT_ID
</select>
</mapper>

Loading…
Cancel
Save