AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND DATE_FORMAT(
IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(), INTERVAL 1 DAY ))
,"%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'
<iftest='regOrPartiFlag == "parti" '>
AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
GRID_ID = #{gridId}
</foreach>
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'
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> IF(null != #{targetDate} OR '' !=#{targetDate},DATE_FORMAT(#{targetDate},"%Y-%m-%d"),DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 DAY ),"%Y-%m-%d"))
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND
DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
) UNION ALL
(SELECT
DISTINCT(rr.USER_ID) AS userId,
r2.GRID_ID AS gridId,
'daily' AS type
FROM REGISTER_RELATION rr
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
rr.GRID_ID = #{gridId}
</foreach>
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")
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)
LEFT JOIN (
SELECT
count(distinct 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") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND
DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
GROUP BY rr.GRID_ID
) t ON (t.GRID_ID = rr.GRID_ID)
LEFT JOIN (
SELECT
count(distinct 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")
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
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") <![CDATA[<=]]> DATE_FORMAT( IF(null != #{targetDate} OR '' != #{targetDate},#{targetDate}, DATE_SUB(CURDATE(),INTERVAL 1 DAY)),'%Y-%m-%d')
<iftest='regOrPartiFlag == "parti" '>
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'))
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<iftest='regOrPartiFlag == "parti" '>
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'))
</if>
<iftest='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreachcollection="gridIds"item="gridId"index="index"open="AND ( "separator=" OR "close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> IF(null != #{targetDate} OR '' !=#{targetDate},DATE_FORMAT(#{targetDate},"%Y-%m-%d"),DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 DAY ),"%Y-%m-%d"))