From df12e5cc9e6ea9ed713b7dc9f3b43253ffe28f22 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 29 Jul 2021 11:06:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E4=BC=98=E5=8C=96?= =?UTF-8?q?=F0=9F=99=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/IncrAndTotalUserIdsResultDTO.java | 5 + .../result/PartyTotalAndIncrResultDTO.java | 4 +- .../user/result/TotalAndIncrResultDTO.java | 13 +- .../result/WarmTotalAndIncrResultDTO.java | 17 ++- .../main/java/com/epmet/dao/user/UserDao.java | 32 +++-- .../service/user/impl/UserServiceImpl.java | 103 +++++++++----- .../java/com/epmet/util/ModuleConstant.java | 4 + .../main/resources/mapper/user/UserDao.xml | 132 ++++++++++++++++-- 8 files changed, 246 insertions(+), 64 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java index 03df830d89..77591143e1 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java @@ -18,4 +18,9 @@ public class IncrAndTotalUserIdsResultDTO implements Serializable { private String gridId; private List userIds; + + /** + * userId类型:daily:日,monthly:月 + */ + private String type; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java index e48cdda28c..2dcdcdc8f4 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java @@ -16,7 +16,9 @@ public class PartyTotalAndIncrResultDTO implements Serializable { private String gridId; - private Integer incr; + private Integer dailyIncr; + + private Integer monthlyIncr; private Integer total; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java index d3bf207013..f0886b0399 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.user.result; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -14,9 +15,17 @@ public class TotalAndIncrResultDTO implements Serializable { private static final long serialVersionUID = -3184476610188193106L; - private Integer total = 0; + private Integer total; - private Integer incr = 0; + private Integer dailyIncr; + + private Integer monthlyIncr; private String gridId; + + public TotalAndIncrResultDTO() { + this.total = NumConstant.ZERO; + this.dailyIncr = NumConstant.ZERO; + this.monthlyIncr = NumConstant.ZERO; + } } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java index 184d564447..2b9b86e2f0 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.user.result; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -18,5 +19,19 @@ public class WarmTotalAndIncrResultDTO implements Serializable { private Integer total; - private Integer incr; + /** + * 日增 + */ + private Integer dailyIncr; + + /** + * 月增 + */ + private Integer monthlyIncr; + + public WarmTotalAndIncrResultDTO() { + this.total = NumConstant.ZERO; + this.dailyIncr = NumConstant.ZERO; + this.monthlyIncr = NumConstant.ZERO; + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 2149e8584d..8e03a5abc2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -78,8 +78,8 @@ public interface UserDao { * @author zxc * @date 2021/7/27 1:31 下午 */ - List selectWarmTotalAndIncrByGrids(@Param("userIds") List userIds, @Param("incrUserIds") List incrUserIds, @Param("gridIds") Set gridIds, - @Param("targetDate") Date targetDate,@Param("startDate") Date startDate); + List selectWarmTotalAndIncrByGrids(@Param("userIds") List userIds, @Param("incrDailyUserIds") List incrDailyUserIds, @Param("gridIds") Set gridIds, + @Param("targetDate") Date targetDate,@Param("startDate") Date startDate,@Param("incrMonthlyUserIds") List incrMonthlyUserIds); /** * @param @@ -90,6 +90,15 @@ public interface UserDao { **/ List selectIncrUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); + /** + * @param + * @return + * @Description 查询指定网格范围下截至指定位时间累计的注册用户Id + * @author wangc + * @date 2020.06.18 18:50 + **/ + List selectTotalUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); + /** * @Description 查询指定网格范围下单位时间内新增的注册用户Id【新方法】 * @Param regOrPartiFlag @@ -98,17 +107,18 @@ public interface UserDao { * @author zxc * @date 2021/7/27 10:41 上午 */ - List selectIncrUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate, - @Param("selectType") String selectType,@Param("startDate")Date startDate); + List selectIncrUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate, + @Param("startDate")Date startDate); /** - * @param - * @return - * @Description 查询指定网格范围下截至指定位时间累计的注册用户Id - * @author wangc - * @date 2020.06.18 18:50 - **/ - List selectTotalUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); + * @Description 查询指定网格范围下单位时间内全部的注册用户Id【新方法】 + * @Param regOrPartiFlag + * @Param gridIds + * @Param targetDate + * @author zxc + * @date 2021/7/29 10:08 上午 + */ + List selectTotalUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); /** * @param diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 5e593a1b79..eefadb4288 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -722,6 +722,8 @@ public class UserServiceImpl implements UserService { if (CollectionUtils.isEmpty(gridIds)){ return; } + // 是否是月初标志 + Boolean isMonthBeginning = true; dataPacket.setCustomerId(customerId); //计算百分比使用,保留小数点后两位 NumberFormat numberFormat = NumberFormat.getInstance(); @@ -731,27 +733,46 @@ public class UserServiceImpl implements UserService { calendar.setTime(new Date()); calendar.add(Calendar.DATE, NumConstant.ONE_NEG); //指定日期 OR T-1 - calendar.setTime(calendar.getTime()); + calendar.setTime(targetDate); + + //如果目标日期不是是当月的第一天 + if(calendar.get(Calendar.DATE) != calendar.getActualMinimum(Calendar.DAY_OF_MONTH)){ + isMonthBeginning = false; + } //求出这个月的第一天 calendar.set(Calendar.DAY_OF_MONTH, NumConstant.ONE); calendar.set(Calendar.HOUR_OF_DAY, NumConstant.ZERO); calendar.set(Calendar.MINUTE, NumConstant.ZERO); calendar.set(Calendar.SECOND, NumConstant.ZERO); - //1.计算机关下注册用户一个时间单位内的累计与增长 + //1.计算机关下注册用户一个时间单位内的累计与 [月增长,日增长] List regData = userDao.selectResiTotalAndIncrByGridIds(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,calendar.getTime()); //2.查询注册用户的Id列表 // 增长 - List incrRegUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,"incr",calendar.getTime()); - List incrUserIds = new ArrayList<>(); + List incrRegUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,calendar.getTime()); + List incrDailyUserIds = new ArrayList<>(); + List incrMonthlyUserIds = new ArrayList<>(); if (!CollectionUtils.isEmpty(incrRegUsers)){ - incrRegUsers.forEach(i -> { - if (!CollectionUtils.isEmpty(i.getUserIds())){ - incrUserIds.addAll(i.getUserIds()); - } - }); + // 月增长 和 日增长 分开 + Map> groupByType = incrRegUsers.stream().collect(Collectors.groupingBy(IncrAndTotalUserIdsResultDTO::getType)); + if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.DAILY))){ + groupByType.get(ModuleConstant.DAILY).forEach(d -> { + if (!CollectionUtils.isEmpty(d.getUserIds())){ + // 日增长 + incrDailyUserIds.addAll(d.getUserIds()); + } + }); + } + if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.MONTHLY))){ + groupByType.get(ModuleConstant.MONTHLY).forEach(m -> { + if (!CollectionUtils.isEmpty(m.getUserIds())){ + // 月增长 + incrMonthlyUserIds.addAll(m.getUserIds()); + } + }); + } } // 全部 - List totalRegUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,"total",calendar.getTime()); + List totalRegUsers = userDao.selectTotalUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate); List totalUserIds = new ArrayList<>(); if (!CollectionUtils.isEmpty(totalRegUsers)){ totalRegUsers.forEach(t -> { @@ -761,25 +782,39 @@ public class UserServiceImpl implements UserService { }); } //3.查询机关下一个时间单位内热心居民的累计与增量(注册用户) - List warmRegData = userDao.selectWarmTotalAndIncrByGrids(totalUserIds, incrUserIds, gridIds, targetDate,calendar.getTime()); + List warmRegData = userDao.selectWarmTotalAndIncrByGrids(totalUserIds, incrDailyUserIds, gridIds, targetDate,calendar.getTime(),incrMonthlyUserIds); //4.查询机关下一个时间单位内党员的累计与增量(注册用户) List partyRegData = userDao.selectPartyTotalAndIncrNew(targetDate, ModuleConstant.REG_OR_PARTI_FLAG_REG,calendar.getTime()); //参与用户 - //1.计算机关下参与用户一个时间单位内的累计与增长 + //1.计算机关下参与用户一个时间单位内的累计与 [月增长,日增长] List partiData = userDao.selectResiTotalAndIncrByGridIds(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate,calendar.getTime()); //2.查询参与用户的Id列表[增长] - List incrPartiUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate, "incr",calendar.getTime()); - List incrPartiUserIds = new ArrayList<>(); + List incrPartiUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate, calendar.getTime()); + List incrDailyPartiUserIds = new ArrayList<>(); + List incrMonthlyPartiUserIds = new ArrayList<>(); if (!CollectionUtils.isEmpty(incrPartiUsers)){ - incrPartiUsers.forEach(i -> { - if (!CollectionUtils.isEmpty(i.getUserIds())){ - incrPartiUserIds.addAll(i.getUserIds()); - } - }); + // 月增长 和 天增长 分开 + Map> groupByType = incrRegUsers.stream().collect(Collectors.groupingBy(IncrAndTotalUserIdsResultDTO::getType)); + if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.DAILY))){ + groupByType.get(ModuleConstant.DAILY).forEach(d -> { + if (!CollectionUtils.isEmpty(d.getUserIds())){ + // 日增长 + incrDailyPartiUserIds.addAll(d.getUserIds()); + } + }); + } + if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.MONTHLY))){ + groupByType.get(ModuleConstant.MONTHLY).forEach(m -> { + if (!CollectionUtils.isEmpty(m.getUserIds())){ + // 月增长 + incrMonthlyPartiUserIds.addAll(m.getUserIds()); + } + }); + } } // 查询参与用户的Id列表[全部] - List totalPartiUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate, "total",calendar.getTime()); + List totalPartiUsers = userDao.selectTotalUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate); List totalPartiUserIds = new ArrayList<>(); if (!CollectionUtils.isEmpty(totalPartiUsers)){ totalPartiUsers.forEach(t -> { @@ -789,7 +824,7 @@ public class UserServiceImpl implements UserService { }); } //3.查询机关下一个时间单位内热心居民的累计与增量(参与用户) - List warmPartiData = userDao.selectWarmTotalAndIncrByGrids(totalPartiUserIds, incrPartiUserIds, gridIds, targetDate,calendar.getTime()); + List warmPartiData = userDao.selectWarmTotalAndIncrByGrids(totalPartiUserIds, incrDailyPartiUserIds, gridIds, targetDate,calendar.getTime(),incrMonthlyPartiUserIds); //4.查询机关下一个时间单位内党员的累计与增量(参与用户) List partyPartiData = userDao.selectPartyTotalAndIncrNew(targetDate, ModuleConstant.REG_OR_PARTI_FLAG_PARTI,calendar.getTime()); @@ -840,10 +875,10 @@ public class UserServiceImpl implements UserService { if (gridId.equals(r.getGridId())){ regGridD.setResiTotal(r.getTotal()); regGridD.setRegTotal(r.getTotal()); - regGridD.setRegIncr(r.getIncr()); + regGridD.setRegIncr(r.getDailyIncr()); regGridM.setRegTotal(r.getTotal()); regGridM.setResiTotal(r.getTotal()); - regGridM.setRegIncr(r.getIncr()); + regGridM.setRegIncr(r.getMonthlyIncr()); break; } } @@ -852,9 +887,9 @@ public class UserServiceImpl implements UserService { for (WarmTotalAndIncrResultDTO w : warmRegData) { if (gridId.equals(w.getGridId())){ regGridD.setWarmHeartedTotal(w.getTotal()); - regGridD.setWarmIncr(w.getIncr()); + regGridD.setWarmIncr(w.getDailyIncr()); regGridM.setWarmHeartedTotal(w.getTotal()); - regGridM.setWarmIncr(w.getIncr()); + regGridM.setWarmIncr(w.getMonthlyIncr()); break; } } @@ -864,10 +899,10 @@ public class UserServiceImpl implements UserService { if (gridId.equals(p.getGridId())){ partiGridD.setResiTotal(p.getTotal()); partiGridD.setRegTotal(p.getTotal()); - partiGridD.setRegIncr(p.getIncr()); + partiGridD.setRegIncr(p.getDailyIncr()); partiGridM.setRegTotal(p.getTotal()); partiGridM.setResiTotal(p.getTotal()); - partiGridM.setRegIncr(p.getIncr()); + partiGridM.setRegIncr(p.getMonthlyIncr()); break; } } @@ -876,11 +911,11 @@ public class UserServiceImpl implements UserService { for (PartyTotalAndIncrResultDTO p : partyRegData) { if (gridId.equals(p.getGridId())){ regGridD.setPartymemberTotal(p.getTotal()); - regGridD.setPartymemberIncr(p.getIncr()); + regGridD.setPartymemberIncr(p.getDailyIncr()); regGridM.setPartymemberTotal(p.getTotal()); - regGridM.setPartymemberIncr(p.getIncr()); + regGridM.setPartymemberIncr(p.getMonthlyIncr()); regGridM.setPartymemberTotal(p.getTotal()); - regGridM.setPartymemberIncr(p.getIncr()); + regGridM.setPartymemberIncr(p.getMonthlyIncr()); break; } } @@ -889,9 +924,9 @@ public class UserServiceImpl implements UserService { for (WarmTotalAndIncrResultDTO w : warmPartiData) { if (gridId.equals(w.getGridId())){ partiGridD.setWarmHeartedTotal(w.getTotal()); - partiGridD.setWarmIncr(w.getIncr()); + partiGridD.setWarmIncr(w.getDailyIncr()); partiGridM.setWarmHeartedTotal(w.getTotal()); - partiGridM.setWarmIncr(w.getIncr()); + partiGridM.setWarmIncr(w.getMonthlyIncr()); break; } } @@ -900,9 +935,9 @@ public class UserServiceImpl implements UserService { for (PartyTotalAndIncrResultDTO p : partyPartiData) { if (gridId.equals(p.getGridId())){ partiGridD.setPartymemberTotal(p.getTotal()); - partiGridD.setPartymemberIncr(p.getIncr()); + partiGridD.setPartymemberIncr(p.getDailyIncr()); partiGridM.setPartymemberTotal(p.getTotal()); - partiGridM.setPartymemberIncr(p.getIncr()); + partiGridM.setPartymemberIncr(p.getMonthlyIncr()); break; } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java index 1881ed5c77..8b06b9688b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java @@ -43,4 +43,8 @@ public interface ModuleConstant { String TOPIC_STATUS_SHIFT_ISSUE = "shift_issue"; String NEED_UPDATE_STATUS_TOPIC = "needUpdateStatusTopic"; + + String MONTHLY = "monthly"; + + String DAILY = "daily"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 727b653266..a4a31ca6b2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -632,7 +632,8 @@ SELECT IFNULL(count( DISTINCT rr.USER_ID ),0) AS total, rr.GRID_ID, - IFNULL(t.userCount,0) AS incr + IFNULL(t.userCount,0) AS monthlyIncr, + IFNULL(d.userCount,0) AS dailyIncr FROM REGISTER_RELATION rr LEFT JOIN ( SELECT @@ -656,6 +657,24 @@ ,"%Y-%m-%d") GROUP BY GRID_ID ) t ON ( t.grid_id = rr.GRID_ID ) + LEFT JOIN ( + SELECT + IFNULL(count(DISTINCT USER_ID),0) AS userCount, + GRID_ID + FROM REGISTER_RELATION + WHERE DEL_FLAG = '0' + + AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1')) + + + AND FIRST_REGISTER = '1' + + + GRID_ID = #{gridId} + + AND DATE_FORMAT(CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(), INTERVAL 1 DAY )),"%Y-%m-%d") + GROUP BY GRID_ID + ) d ON ( d.grid_id = rr.GRID_ID ) WHERE rr.DEL_FLAG = '0' @@ -673,15 +692,17 @@ + @@ -710,7 +744,8 @@ SELECT IFNULL(COUNT(DISTINCT ur.USER_ID),0) AS total, ur.GRID_ID, - IFNULL(t.userCount,0) AS incr + IFNULL(t.userCount,0) AS monthlyIncr, + IFNULL(d.userCount,0) AS dailyIncr FROM USER_ROLE ur LEFT JOIN EPMET_ROLE erole ON ( ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0' ) LEFT JOIN ( @@ -720,8 +755,8 @@ FROM USER_ROLE ur LEFT JOIN EPMET_ROLE erole ON (ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0') WHERE ur.DEL_FLAG = '0' - - + + ur.USER_ID = #{incrUserId} @@ -733,9 +768,28 @@ AND erole.ROLE_NAME = '热心居民' GROUP BY ur.GRID_ID ) t ON ( t.GRID_ID = ur.GRID_ID ) + LEFT JOIN ( + SELECT + COUNT( DISTINCT ur.USER_ID ) AS userCount, + ur.GRID_ID + FROM USER_ROLE ur + LEFT JOIN EPMET_ROLE erole ON (ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0') + WHERE ur.DEL_FLAG = '0' + + + ur.USER_ID = #{incrUserId} + + + + ur.GRID_ID = #{gridId} + + AND DATE_FORMAT(ur.CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d") + AND erole.ROLE_NAME = '热心居民' + GROUP BY ur.GRID_ID + ) d ON ( d.GRID_ID = ur.GRID_ID ) WHERE ur.DEL_FLAG = '0' - - + + ur.USER_ID = #{incrUserId} @@ -752,7 +806,8 @@ SELECT IFNULL(count(urole.USER_ID),0) AS total, rr.GRID_ID, - IFNULL(t.userCount,0) AS incr + IFNULL(t.userCount,0) AS monthlyIncr, + IFNULL(d.userCount,0) AS dailyIncr FROM USER_ROLE urole LEFT JOIN EPMET_ROLE erole ON (urole.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0') LEFT JOIN register_relation rr ON (rr.USER_ID = urole.USER_ID) @@ -776,6 +831,25 @@ GROUP BY rr.GRID_ID ) t ON (t.GRID_ID = rr.GRID_ID) + LEFT JOIN ( + SELECT + count(urole.USER_ID) AS userCount, + rr.GRID_ID + FROM USER_ROLE urole + LEFT JOIN EPMET_ROLE erole ON (urole.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0') + LEFT JOIN register_relation rr ON (rr.USER_ID = urole.USER_ID) + WHERE + urole.DEL_FLAG = '0' + AND erole.ROLE_NAME = '党员' + AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d") + + AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1')) + + + AND rr.FIRST_REGISTER = '1' + + GROUP BY rr.GRID_ID + ) d ON (d.GRID_ID = rr.GRID_ID) WHERE urole.DEL_FLAG = '0' AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") DATE_FORMAT( IF(null != #{targetDate} OR '' != #{targetDate},#{targetDate}, DATE_SUB(CURDATE(),INTERVAL 1 DAY)),'%Y-%m-%d') @@ -811,6 +885,34 @@ GROUP BY GRID_ID + + + + + + + + + DELETE FROM