市北互联平台后端仓库
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.

269 lines
9.1 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.epmet.dao.UserResiInfoDao">
<resultMap type="com.epmet.entity.UserResiInfoEntity" id="userResiInfoMap">
<result property="userId" column="USER_ID"/>
<result property="regMobile" column="REG_MOBILE"/>
<result property="surname" column="SURNAME"/>
<result property="name" column="NAME"/>
<result property="street" column="STREET"/>
<result property="district" column="DISTRICT"/>
<result property="buildingAddress" column="BUILDING_ADDRESS"/>
<result property="resiVisitId" column="RESI_VISIT_ID"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<sql id="sql">
uri.id AS "id",
uri.user_id AS "userId",
uri.reg_mobile AS "regMobile",
uri.surname AS "surname",
uri.`name` AS "name",
uri.street AS "street",
uri.district AS "district",
uri.building_address AS "buildingAddress",
uri.resi_visit_id AS "resiVisitId",
uri.del_flag AS "delflag",
uri.revision AS "revision",
uri.created_by AS "createdby",
uri.created_time AS "createdtime",
uri.updated_by AS "updatedby",
uri.updated_time AS "updatedtime"
</sql>
<update id="updateByUserId">
update user_resi_info set
SURNAME = #{surname},
NAME = #{name},
STREET = #{street},
DISTRICT = #{district},
BUILDING_ADDRESS = #{buildingAddress},
ID_NUM = #{idNum}
where USER_ID = #{userId}
and DEL_FLAG = '0'
</update>
<!-- 查询用户注册信息 -->
<select id="selectUserResiInfoDTO" parameterType="com.epmet.dto.form.UserResiInfoFormDTO"
resultType="com.epmet.dto.result.UserResiInfoResultDTO">
SELECT
ubi.USER_ID,
uri.REG_MOBILE,
ubi.SURNAME,
ubi.`NAME`,
ubi.STREET,
ubi.DISTRICT,
uri.RESI_VISIT_ID,
ubi.BUILDING_ADDRESS,
CONCAT(
ubi.STREET,
'-',
ubi.SURNAME,
( CASE WHEN ubi.GENDER = '1' THEN '先生' WHEN ubi.GENDER = '2' THEN '女士' ELSE '先生/女士' END )
) AS show_name,
ubi.HEAD_IMG_URL AS head_photo,
ubi.NICKNAME as nickName
FROM
user_base_info ubi
INNER JOIN user_resi_info uri ON ( ubi.USER_ID = uri.USER_ID AND uri.DEL_FLAG = '0' )
WHERE
ubi.USER_ID =#{userId}
AND ubi.DEL_FLAG = '0'
</select>
<!-- 查询用户注册信息 不按照客户Id查询 -->
<select id="selectUserResiInfoNotByCustId" parameterType="com.epmet.dto.form.UserResiInfoFormDTO"
resultType="com.epmet.dto.result.UserResiInfoResultDTO">
SELECT
uri.USER_ID,
CONCAT(
uri.STREET,
'-',
uri.SURNAME,
( CASE WHEN uw.SEX = '1' THEN '先生' WHEN uw.SEX = '2' THEN '女士' ELSE '先生/女士' END )
) AS show_name
FROM
user_resi_info uri
LEFT JOIN user_wechat uw ON (uri.USER_ID = uw.USER_ID AND uw.DEL_FLAG = '0' AND uw.USER_ID = #{userId})
WHERE
uri.DEL_FLAG = '0'
AND uri.USER_ID = #{userId}
</select>
<select id="selectResiInfoByMobile" parameterType="string"
resultType="com.epmet.dto.UserResiInfoDTO">
SELECT
<include refid="sql"></include>
FROM user_resi_info uri
LEFT JOIN user_customer uc ON uri.USER_ID = uc.USER_ID
WHERE
uri.DEL_FLAG = '0'
AND uri.REG_MOBILE = #{regMobile,jdbcType=VARCHAR}
AND uc.CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
AND uri.CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
AND uc.IS_REGISTER = 1
</select>
<!-- 根据userId集合查询用户注册信息 -->
<select id="selectListUserResiInfoDTO" resultType="com.epmet.dto.result.UserResiInfoResultDTO">
SELECT
ubi.USER_ID,
IFNULL(uri.REG_MOBILE,ubi.MOBILE) as REG_MOBILE,
ubi.SURNAME,
ubi.`NAME`,
ubi.STREET,
ubi.DISTRICT,
ubi.BUILDING_ADDRESS,
CONCAT(
ubi.STREET,
'-',
ubi.SURNAME,
( CASE WHEN ubi.GENDER = '1' THEN '先生' WHEN ubi.GENDER = '2' THEN '女士' ELSE '先生/女士' END )
) AS show_name,
ubi.HEAD_IMG_URL as head_photo,
ubi.REAL_NAME
FROM user_base_info ubi
left join user_resi_info uri on(ubi.user_id=uri.user_id and uri.del_flag='0')
WHERE ubi.DEL_FLAG = '0'
AND ubi.USER_ID in
<foreach item="userId" collection="userIdList" separator="," open="(" close=")" index="">
#{userId}
</foreach>
</select>
5 years ago
<!-- 根据userId查询议题发起人 -->
<select id="selectIssueInitiator" parameterType="com.epmet.dto.form.IssueInitiatorFormDTO" resultType="com.epmet.dto.result.IssueInitiatorResultDTO">
SELECT
CONCAT(
uri.street,
'-',
uri.surname,
CASE
WHEN uw.sex = '1' THEN
'先生'
WHEN uw.sex = '2' THEN
'女士'
ELSE
'先生/女士'
END
) AS issueInitiator,
CONCAT(
uri.street,
'-',
uri.surname,
5 years ago
uri.NAME
) AS realUserName
5 years ago
FROM
user_resi_info uri
LEFT JOIN user_wechat uw ON uw.user_id = uri.user_id
WHERE
uri.user_id = #{userId}
AND uri.del_flag = 0
AND uw.del_flag = 0
</select>
<select id="issueInitiatorByBaseInfo" parameterType="com.epmet.dto.form.IssueInitiatorFormDTO" resultType="com.epmet.dto.result.IssueInitiatorResultDTO">
SELECT
CONCAT(
uri.street,
'-',
uri.surname,
CASE
WHEN uri.GENDER = '1' THEN
'先生'
WHEN uri.GENDER = '2' THEN
'女士'
ELSE
'先生/女士'
END
) AS issueInitiator,
CONCAT(
uri.street,
'-',
uri.surname,
uri.NAME
) AS realUserName
FROM
user_base_info uri
WHERE
uri.user_id = #{userId}
AND uri.del_flag = 0
</select>
<!-- 根据要用户id,查询用户注册的信息 -->
<select id="selectByUserId" resultType="com.epmet.dto.UserResiInfoDTO">
SELECT
*
FROM
user_resi_info uri
WHERE
uri.DEL_FLAG = '0'
AND uri.USER_ID = #{userId}
</select>
<select id="selectCountByIdNum" parameterType="map" resultType="java.lang.Integer">
SELECT
count(uri.id)
FROM
user_resi_info uri
WHERE
uri.DEL_FLAG = '0'
AND uri.id_num = #{idNum}
and uri.customer_id=#{customerId}
<if test="excludeUserId != null and excludeUserId != ''">
AND uri.user_id != #{excludeUserId}
</if>
</select>
<select id="selectCommonIdNumUser" parameterType="map" resultType="com.epmet.dto.UserResiInfoDTO">
SELECT
uri.*
FROM
user_resi_info uri
WHERE
uri.DEL_FLAG = '0'
and uri.customer_id=#{customerId}
AND uri.id_num = #{idNum}
</select>
<!-- 在不确定userId是工作人员还是居民时,使用此接口查询信息 -->
<select id="getStaffAndResi" resultType="com.epmet.dto.result.StaffAndResiResultDTO">
SELECT
s.USER_ID,
s.REAL_NAME,
s.GENDER,
s.MOBILE,
s.ADDRESS,
'staff' AS type
FROM customer_staff s
WHERE s.DEL_FLAG = 0
AND s.user_id IN (
<foreach collection="userIds" item="u" separator=",">
#{u}
</foreach>
)
UNION ALL
SELECT
i.USER_ID,
b.REAL_NAME,
b.GENDER,
b.MOBILE,
b.STREET AS address,
'resi' AS type
FROM user_resi_info i
INNER JOIN user_base_info b ON b.USER_ID = i.USER_ID AND b.DEL_FLAG = 0
WHERE i.DEL_FLAG = 0
AND i.user_id IN (
<foreach collection="userIds" item="u" separator=",">
#{u}
</foreach>
)
</select>
</mapper>