北尚诉办
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

382 lines
15 KiB

<?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.elink.esua.epdc.dao.UserDao">
<delete id="deleteAuditFailureByOpenId">
DELETE FROM epdc_user WHERE WX_OPEN_ID = #{wxOpenId} AND STATE = '2'
</delete>
<select id="selectOneInfoById" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO">
SELECT
eu.ID AS id,
eu.NICKNAME AS nickname,
eu.FACE_IMG AS faceImg,
eu.MOBILE AS mobile,
eu.IDENTITY_NO AS identityNo,
eugr.ALL_DEPT_NAMES AS deptName,
eu.REAL_NAME AS realName,
eu.ROAD AS road,
eu.VILLAGE_NAME AS villageName,
eu.DWELLING_PLACE AS dwellingPlace,
eu.PARTY_FLAG AS partyFlag
FROM
epdc_user eu
Left Join (select * from epdc_user_grid_relation where USER_ID = #{id} order by UPDATED_TIME desc limit 0,1) eugr
on(eu.id=eugr.USER_ID)
WHERE
eu.ID = #{id}
</select>
<select id="deleteByUnionId">
DELETE
FROM
epdc_user
WHERE
WX_UNION_ID = #{wxUnionId}
AND STATE = '2'
</select>
<select id="getUserRegisterAuditResult"
resultType="com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO">
SELECT
u.ID,
u.MOBILE,
u.REMARK,
u.REAL_NAME,
DATE_FORMAT( u.CREATED_TIME, '%Y-%m-%d %H:%i:%s' ) AS CREATED_TIME,
DATE_FORMAT( u.REGISTER_TIME, '%Y-%m-%d %H:%i:%s' ) AS REGISTER_TIME,
u.WX_OPEN_ID,
u.STATE,
f.ID AS wxFormIdId,
f.WX_FORM_ID
FROM
epdc_user u
LEFT JOIN epdc_user_wx_form_id f ON u.WX_OPEN_ID = f.WX_OPEN_ID
AND f.DEL_FLAG = '0'
WHERE
u.DEL_FLAG = '0' AND u.ID = #{userId}
ORDER BY f.CREATED_TIME DESC
LIMIT 1
</select>
<select id="selectListUserDto" resultType="com.elink.esua.epdc.dto.UserDTO">
SELECT
u.id,
u.REAL_NAME,
u.NICKNAME,
u.MOBILE,
u.REGISTER_TIME,
u.CREATED_TIME,
IDENTITY_NO,
ADDRESS,
STATE,
PARTY_FLAG,
ug.ALL_DEPT_NAMES AS myGridName
FROM
epdc_user u
LEFT JOIN epdc_user_grid_relation ug ON u.ID = ug.USER_ID
where
u.del_flag = '0'
<if test="startTime != '' and endTime != ''">and u.CREATED_TIME between #{startTime} and #{endTime}</if>
<if test="state != '' and state != null">and u.state = #{state}</if>
<if test="realName != '' and realName != null">and u.real_name like '%${realName}%'</if>
<if test="nickname != '' and nickname != null">and u.NICKNAME like '%${nickname}%'</if>
<if test="mobile != '' and mobile != null">and u.mobile like '%${mobile}%'</if>
<if test="identityNo != '' and identityNo != null">and u.identity_no like '%${identityNo}%'</if>
<if test="partyFlag != '' and partyFlag != null">and u.party_flag = #{partyFlag}</if>
<if test="streetId != '' and streetId != null">
AND (find_in_set(#{streetId},ug.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},ug.ALL_DEPT_IDS))
</if>
<if test="communityId != '' and communityId != null">
AND (find_in_set(#{communityId},ug.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},ug.ALL_DEPT_IDS))
</if>
<if test="gridId != '' and gridId != null">
and (ug.grid_id = #{gridId}
OR find_in_set(#{gridId},ug.ALL_DEPT_IDS))
</if>
GROUP BY
u.ID
ORDER BY
u.register_time desc
</select>
<!-- 根据userId获取居民详情(已认证或待认证(提交信息待审核)的居民用户) -->
<resultMap id="EpdcResidentDetailResultDtoMap"
type="com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailResultDTO">
<id column="id" property="userId"/>
<result column="REAL_NAME" property="realName"/>
<result column="IDENTITY_NO" property="identityNo"/>
<result column="VILLAGE_NAME" property="villageName"/>
<result column="ROAD" property="road"/>
<result column="DWELLING_PLACE" property="dwellingPlace"/>
<result column="PARTY_FLAG" property="partyFlag"/>
<result column="state" property="state"/>
<result column="mobile" property="mobile"/>
<collection property="gridList" ofType="com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailGridResultDTO">
<result column="completeName" property="completeName"/>
<result column="leaderFlag" property="leaderFlag"/>
</collection>
</resultMap>
<!--获取居民详情-->
<select id="residentDetailByUserId" resultMap="EpdcResidentDetailResultDtoMap">
SELECT
eu.id,
eu.REAL_NAME,
eu.IDENTITY_NO,
eu.VILLAGE_NAME,
eu.ROAD,
eu.DWELLING_PLACE,
eu.PARTY_FLAG ,
eu.state,
eu.mobile,
eugr.ALL_DEPT_NAMES as completeName,
eugr.LEADER_FLAG as leaderFlag
FROM
epdc_user eu
left join (select * from epdc_user_grid_relation where USER_ID = #{userId} order by UPDATED_TIME desc limit 0,1) eugr
on(eu.id=eugr.USER_ID)
WHERE
eu.DEL_FLAG = '0'
AND eu.id =#{userId}
</select>
<select id="selectListOfInviteUsers" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO">
SELECT
u.ID AS userId,
u.NICKNAME,
u.FACE_IMG AS userAvatar,
u.PARTY_FLAG AS partyMember,
u.MOBILE
FROM
epdc_user_grid_relation gr
LEFT JOIN epdc_user u ON u.ID = gr.USER_ID
AND u.DEL_FLAG = '0'
WHERE
gr.DEL_FLAG = '0'
AND gr.GRID_ID = #{gridId}
AND u.ID IS NOT NULL
AND gr.USER_ID NOT IN
<foreach item="userId" collection="userIds" open="(" separator="," close=")">
#{userId}
</foreach>
<if test="mobile != null and mobile != ''">
and u.MOBILE like concat('%', #{mobile}, '%')
</if>
<if test="road != null and road != ''">
and u.ROAD like concat('%', #{road}, '%')
</if>
<if test="lastName != null and lastName != ''">
and u.LAST_NAME like concat('%', #{lastName}, '%')
</if>
ORDER BY
CONVERT ( u.NICKNAME USING gbk ) ASC,
u.REGISTER_TIME
</select>
<resultMap id="partMemberDetail" type="com.elink.esua.epdc.dto.epdc.result.EpdcPartyMemberDetailDto">
<id column="userId" property="userId"/>
<result column="realName" property="realName"/>
<result column="identityNo" property="identityNo"/>
<result column="road" property="road"/>
<result column="villageName" property="villageName"/>
<result column="dwellingPlace" property="dwellingPlace"/>
<result column="authenticatedFlag" property="authenticatedFlag"/>
<result column="streetName" property="streetName"/>
<result column="communityName" property="communityName"/>
<result column="gridName" property="gridName"/>
<result column="partyFlag" property="partyFlag"/>
<result column="cadreFlag" property="cadreFlag"/>
<collection property="gridList" ofType="com.elink.esua.epdc.dto.epdc.result.EpdcResidentDetailGridResultDTO">
<result column="completeName" property="completeName"/>
<result column="leaderFlag" property="leaderFlag"/>
</collection>
<collection property="tagNameList" ofType="java.lang.String">
<result column="tagName"/>
</collection>
</resultMap>
<!-- 获取党员详情(已认证或未认证的党员用户) -->
<select id="partyMemberDetailByUserId" resultMap="partMemberDetail">
SELECT
eu.ID AS userId,
eu.REAL_NAME AS realName,
eu.IDENTITY_NO AS identityNo,
eu.ROAD AS road,
eu.MOBILE as mobile,
eu.VILLAGE_NAME AS villageName,
eu.DWELLING_PLACE as dwellingPlace,
'1' as authenticatedFlag,
SUBSTRING_INDEX(SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-3),'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-2),'-',1)as communityName,
SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-1) as gridName,
eu.PARTY_FLAG as partyFlag,
epm.CADRE_FLAG as cadreFlag,
epm.ALL_DEPT_NAMES as completeName,
eugr.LEADER_FLAG as leaderFlag,
eut.TAG_NAME as tagName
FROM
epdc_party_members epm
LEFT JOIN epdc_user eu ON eu.IDENTITY_NO = epm.IDENTITY_NO
LEFT JOIN epdc_party_tag_relation eptr ON eptr.PARTY_ID = epm.ID
LEFT JOIN epdc_user_tag eut ON eut.ID = eptr.TAG_ID
AND eut.DEL_FLAG = '0'
LEFT JOIN epdc_user_grid_relation eugr on eugr.USER_ID = eu.ID
WHERE
eu.DEL_FLAG = '0'
AND epm.DEL_FLAG = '0'
AND eu.ID = #{userId}
</select>
<!--党员认证失败-->
<select id="partyMemberDetailFaild" resultMap="partMemberDetail">
SELECT
eu.ID AS userId,
eu.REAL_NAME AS realName,
eu.IDENTITY_NO AS identityNo,
eu.ROAD AS road,
eu.VILLAGE_NAME AS villageName,
eu.DWELLING_PLACE AS dwellingPlace,
'0' AS authenticatedFlag,
SUBSTRING_INDEX(SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-3),'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-2),'-',1)as communityName,
SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-1) as gridName,
eu.PARTY_FLAG AS partyFlag,
epaf.CADRE_FLAG AS cadreFlag,
epaf.ALL_DEPT_NAMES AS completeName,
eugr.LEADER_FLAG AS leaderFlag,
eut.TAG_NAME AS tagName
FROM
epdc_party_authentication_failed epaf
LEFT JOIN epdc_user eu ON eu.ID = epaf.USER_ID
LEFT JOIN epdc_user_tag_relation eutr ON eutr.USER_ID = eu.ID
LEFT JOIN epdc_user_tag eut ON eut.ID = eutr.TAG_ID
AND eut.DEL_FLAG = '0'
LEFT JOIN epdc_user_grid_relation eugr ON eugr.USER_ID = eu.ID
WHERE
eu.DEL_FLAG = '0'
AND epaf.DEL_FLAG = '0'
AND eu.ID = #{userId}
</select>
<!-- 通过用户ID获取党员身份证号 -->
<select id="getPartyMemberIdNoByUserID" resultType="java.lang.String">
SELECT
eu.IDENTITY_NO
FROM
epdc_user eu
WHERE
eu.DEL_FLAG = '0'
AND eu.id = #{userId}
</select>
<!--获取用户列表-->
<select id="selectWorkUserList" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO">
SELECT
u.ID as userId,
u.NICKNAME as nickname,
u.REGISTER_TIME as registerTime,
u.FACE_IMG as faceImg
FROM
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON ug.USER_ID = u.ID
WHERE
u.PARTY_FLAG = #{partyFlag}
AND u.STATE = #{authenticatedFlag}
AND u.DEL_FLAG = '0'
AND ug.DEL_FLAG = '0'
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
GROUP BY
u.ID
ORDER BY u.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
</select>
<!--查询待认证用户数量-->
<select id="selectCountUnauthorizedAmount" resultType="Integer">
SELECT
COUNT(DISTINCT(u.ID))
FROM
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON u.ID = ug.USER_ID
WHERE u.DEL_FLAG = '0' AND ug.DEL_FLAG = '0' AND u.STATE = '1'
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
</select>
<!-- 获取用户列表:党员认证失败 -->
<select id="selectPartyAuthenticationFailedList" parameterType="com.elink.esua.epdc.dto.epdc.form.EpdcWorkUserFromDTO"
resultType="com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO">
SELECT
u.ID as userId,
u.NICKNAME as nickname,
u.REGISTER_TIME as registerTime,
u.FACE_IMG as faceImg
FROM
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON ug.USER_ID = u.ID
WHERE u.DEL_FLAG = '0'
AND ug.DEL_FLAG = '0'
<if test="partyFlag ='0' and authenticatedFlag ='1'">
and EXISTS(select m.USER_ID
from epdc_party_authentication_failed m
where m.USER_ID=u.id)
</if>
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
<if test="gridIdList!=null and gridIdList.size()>0">
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</otherwise>
</choose>
GROUP BY
u.ID
ORDER BY u.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
</select>
<!-- 根据网格id查询网格下所有的用户 -->
<select id="selectListGridUserResultDTO" parameterType="map" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO">
SELECT
eu.id AS userId,
eu.NICKNAME,
eu.FACE_IMG AS userAvatar,
eu.MOBILE,
r.LEADER_FLAG AS lordFlag,
eu.PARTY_FLAG AS partyMember,
10 as STATE,
NULL AS auditOpinion,
r.GRID_ID AS gridId
FROM
epdc_user_grid_relation r
LEFT JOIN epdc_user eu ON r.USER_ID = eu.ID
WHERE
r.DEL_FLAG = '0'
AND eu.DEL_FLAG = '0'
and (eu.PARTY_FLAG='1' or r.LEADER_FLAG='1')
<if test="gridIdList!=null and gridIdList.size()>0">
AND r.GRID_ID in
<foreach collection="gridIdList" index="index" item="gridId" open="(" separator="," close=")">
#{gridId}
</foreach>
</if>
</select>
</mapper>