16 changed files with 939 additions and 10 deletions
@ -0,0 +1,61 @@ |
|||||
|
package com.epmet.dto; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @Description |
||||
|
* @ClassName AgencySubDeptTreeDto |
||||
|
* @Auth wangc |
||||
|
* @Date 2020-06-18 16:06 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class AgencySubDeptTreeDto implements Serializable { |
||||
|
private static final long serialVersionUID = -8179035699122094719L; |
||||
|
/** |
||||
|
* 机构Id |
||||
|
* */ |
||||
|
private String agencyId; |
||||
|
|
||||
|
/** |
||||
|
* 机构名称 |
||||
|
* */ |
||||
|
private String agencyName; |
||||
|
|
||||
|
/** |
||||
|
* 直属网格Id |
||||
|
* */ |
||||
|
List<String> gridIds; |
||||
|
|
||||
|
/** |
||||
|
* 直属部门Id |
||||
|
* */ |
||||
|
List<String> deptIds; |
||||
|
|
||||
|
/** |
||||
|
* 客户Id |
||||
|
* */ |
||||
|
String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 父级机关Id,当为最顶层是pid为0 |
||||
|
* */ |
||||
|
String pid; |
||||
|
|
||||
|
/** |
||||
|
* 级别 |
||||
|
* 社区级:community, |
||||
|
* 乡(镇、街道)级:street, |
||||
|
* 区县级: district, |
||||
|
* 市级: city |
||||
|
* 省级:province |
||||
|
* */ |
||||
|
String level; |
||||
|
|
||||
|
/** |
||||
|
* 下级机关集合 |
||||
|
* */ |
||||
|
List<AgencySubDeptTreeDto> subAgencies; |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
package com.epmet.dto.user.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* @Description |
||||
|
* @ClassName CommonTotalAndIncCountResultDTO |
||||
|
* @Auth wangc |
||||
|
* @Date 2020-06-18 17:28 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class CommonTotalAndIncCountResultDTO implements Serializable { |
||||
|
private static final long serialVersionUID = -5215017168317858826L; |
||||
|
|
||||
|
private Integer total; |
||||
|
|
||||
|
private Integer incr; |
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
package com.epmet.util; |
||||
|
|
||||
|
public interface ModuleConstant { |
||||
|
|
||||
|
/** |
||||
|
* 注册用户标识 |
||||
|
* */ |
||||
|
String REG_OR_PARTI_FLAG_REG = "reg"; |
||||
|
|
||||
|
/** |
||||
|
* 参与用户标识 |
||||
|
* */ |
||||
|
String REG_OR_PARTI_FLAG_PARTI = "parti"; |
||||
|
|
||||
|
/** |
||||
|
* 机关级别-社区 |
||||
|
* */ |
||||
|
String AGENCY_LEVEL_COMMUNITY = "community"; |
||||
|
} |
@ -0,0 +1,323 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
|
||||
|
<mapper namespace="com.epmet.dao.user.UserDao"> |
||||
|
|
||||
|
<!-- 查询注册用户的总量与增量 传参:注册用户or参与用户 | 网格Id集合 | 时间参数 格式[yyyy-MM-dd 00:00:00] --> |
||||
|
<select id="selectResiTotalAndIncrByLevel" resultType="com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO"> |
||||
|
SELECT |
||||
|
count( * ) AS total, |
||||
|
( |
||||
|
SELECT |
||||
|
count( * ) |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
<choose> |
||||
|
<!-- 参与用户 --> |
||||
|
<when test='regOrPatiFlag = "parti"'> |
||||
|
AND PARTICIPATION = '1' |
||||
|
</when> |
||||
|
<!-- 默认查注册用户 --> |
||||
|
<otherwise> |
||||
|
AND REGISTER = '1' |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
|
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND CREATED_TIME <![CDATA[>=]]> #{targetDate} AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND CREATED_TIME <![CDATA[<]]> CURDATE( ) AND CREATED_TIME <![CDATA[>=]]> DATE_SUB( CURDATE( ), INTERVAL 1 DAY ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
) AS incr |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
AND REGISTER = '1' |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY ) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND CREATED_TIME <![CDATA[<]]> CURDATE( ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
|
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定网格范围下单位时间内新增的注册/参与用户Id 传参:注册用户or参与用户 | 网格Id集合 | 时间参数 格式[yyyy-MM-dd 00:00:00]--> |
||||
|
<select id="selectIncrUserIds" resultType="string"> |
||||
|
SELECT DISTINCT |
||||
|
USER_ID |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
<choose> |
||||
|
<!-- 参与用户 --> |
||||
|
<when test='regOrPatiFlag = "parti"'> |
||||
|
AND PARTICIPATION = '1' |
||||
|
</when> |
||||
|
<!-- 默认查注册用户 --> |
||||
|
<otherwise> |
||||
|
AND REGISTER = '1' |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND CREATED_TIME <![CDATA[>=]]> #{targetDate} AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND CREATED_TIME <![CDATA[<]]> CURDATE( ) AND CREATED_TIME <![CDATA[>=]]> DATE_SUB( CURDATE( ), INTERVAL 1 DAY ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定网格范围下截至指定位时间累计的注册用户Id 传参:注册用户or参与用户 | 网格Id集合 | 时间参数 格式[yyyy-MM-dd 00:00:00]--> |
||||
|
<select id="selectTotalUserIds" resultType="string"> |
||||
|
SELECT DISTINCT |
||||
|
USER_ID |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
<choose> |
||||
|
<!-- 参与用户 --> |
||||
|
<when test='regOrPatiFlag = "parti"'> |
||||
|
AND PARTICIPATION = '1' |
||||
|
</when> |
||||
|
<!-- 默认查注册用户 --> |
||||
|
<otherwise> |
||||
|
AND REGISTER = '1' |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY ) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND CREATED_TIME <![CDATA[<]]> CURDATE( ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询党员的总量与增量 传参:用户Id集合(不用传注册or参与标识,用户Id会根据不同的flag范围不同) | 时间参数 格式[yyyy-MM-dd 00:00:00]--> |
||||
|
<select id="selectPartyTotalAndIncr" resultType="com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO"> |
||||
|
SELECT |
||||
|
count( 1 ) AS total, |
||||
|
( |
||||
|
SELECT |
||||
|
count( 1 ) |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="incrUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{incrUserId} |
||||
|
</foreach> |
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND urole.CREATED_TIME <![CDATA[>=]]> #{targetDate} AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> CURDATE( ) AND urole.CREATED_TIME <![CDATA[>=]]> DATE_SUB( CURDATE( ), INTERVAL 1 DAY ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
|
||||
|
AND erole.ROLE_NAME = '党员' |
||||
|
) AS incr |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="userIds" item="userId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{userId} |
||||
|
</foreach> |
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY ) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> CURDATE( ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
AND erole.ROLE_NAME = '党员' |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询热心居民的总量与增量 传参:用户Id集合(不用传注册or参与标识,用户Id会根据不同的flag范围不同) | 网格Id集合(与用户Id集合同理) | 时间参数 格式[yyyy-MM-dd 00:00:00] --> |
||||
|
<select id="selectWarmTotalAndIncr" resultType="com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO"> |
||||
|
SELECT |
||||
|
count( 1 ) AS total, |
||||
|
( |
||||
|
SELECT |
||||
|
count( 1 ) |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="incrUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{incrUserId} |
||||
|
</foreach> |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND urole.CREATED_TIME <![CDATA[>=]]> #{targetDate} AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> CURDATE( ) AND urole.CREATED_TIME <![CDATA[>=]]> DATE_SUB( CURDATE( ), INTERVAL 1 DAY ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
AND erole.ROLE_NAME = '热心居民' |
||||
|
) AS incr |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
<foreach collection="userIds" item="userId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{userId} |
||||
|
</foreach> |
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY ) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> CURDATE( ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
AND erole.ROLE_NAME = '热心居民'; |
||||
|
|
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定时间范围内网格新增的注册/参与用户Id 传参:注册用户or参与用户 | 网格Id集合 | 时间区间 --> |
||||
|
<select id="selectIncrUserIdsWithinTimeRange" resultType="string"> |
||||
|
SELECT DISTINCT |
||||
|
USER_ID |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
<choose> |
||||
|
<!-- 参与用户 --> |
||||
|
<when test='regOrPatiFlag = "parti"'> |
||||
|
AND PARTICIPATION = '1' |
||||
|
</when> |
||||
|
<!-- 默认查注册用户 --> |
||||
|
<otherwise> |
||||
|
AND REGISTER = '1' |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
AND CREATED_TIME <![CDATA[>=]]> #{startDate} AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{endDate}, INTERVAL - 1 DAY) |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定时间范围内居民增量 传参:注册用户or参与用户 | 网格Id集合 | 时间区间--> |
||||
|
<select id="selectResiIncrWithinTimeRange" resultType="integer"> |
||||
|
SELECT |
||||
|
count( * ) |
||||
|
FROM |
||||
|
REGISTER_RELATION |
||||
|
WHERE |
||||
|
DEL_FLAG = '0' |
||||
|
<choose> |
||||
|
<!-- 参与用户 --> |
||||
|
<when test='regOrPatiFlag = "parti"'> |
||||
|
AND PARTICIPATION = '1' |
||||
|
</when> |
||||
|
<!-- 默认查注册用户 --> |
||||
|
<otherwise> |
||||
|
AND REGISTER = '1' |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
|
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
|
||||
|
AND CREATED_TIME <![CDATA[>=]]> #{startDate} AND CREATED_TIME <![CDATA[<]]> DATE_SUB( #{endDate}, INTERVAL - 1 DAY) |
||||
|
|
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定时间范围内党员的增量 传参:用户Id集合 | 时间区间 --> |
||||
|
<select id="selectPartyIncrWithinTimeRange" resultType="integer"> |
||||
|
SELECT |
||||
|
count( 1 ) |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="incrUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{incrUserId} |
||||
|
</foreach> |
||||
|
|
||||
|
AND urole.CREATED_TIME <![CDATA[>=]]> #{startDate} AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{endDate}, INTERVAL - 1 DAY) |
||||
|
AND erole.ROLE_NAME = '党员' |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定时间范围内热心居民的增量 传参:用户Id集合 | 网格Id集合 | 时间区间 --> |
||||
|
<select id="selectWarmIncrWithinTimeRange" resultType="integer"> |
||||
|
SELECT |
||||
|
count( 1 ) |
||||
|
FROM |
||||
|
USER_ROLE urole |
||||
|
LEFT JOIN EPMET_ROLE erole ON urole.ROLE_ID = erole.ID |
||||
|
AND erole.DEL_FLAG = '0' |
||||
|
WHERE |
||||
|
urole.DEL_FLAG = '0' |
||||
|
<foreach collection="incrUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.USER_ID = #{incrUserId} |
||||
|
</foreach> |
||||
|
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")"> |
||||
|
urole.GRID_ID = #{gridId} |
||||
|
</foreach> |
||||
|
|
||||
|
<choose> |
||||
|
<when test="null != targetDate"> |
||||
|
AND urole.CREATED_TIME <![CDATA[>=]]> #{targetDate} AND urole.CREATED_TIME <![CDATA[<]]> DATE_SUB( #{targetDate}, INTERVAL - 1 DAY) |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
AND urole.CREATED_TIME <![CDATA[<]]> CURDATE( ) AND urole.CREATED_TIME <![CDATA[>=]]> DATE_SUB( CURDATE( ), INTERVAL 1 DAY ) |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
AND erole.ROLE_NAME = '热心居民' |
||||
|
</select> |
||||
|
</mapper> |
Loading…
Reference in new issue