添加批量更新网格员方法

This commit is contained in:
sh
2026-03-30 16:10:42 +08:00
parent 933fe9288e
commit a8a082ef9d
5 changed files with 160 additions and 0 deletions

View File

@@ -236,4 +236,85 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
on a.user_id = b.user_id and (phonenumber is not null or id_card is not null)
</select>
<select id="selectAddUserSjdz" resultMap="AppUserResult">
SELECT name,sex ,phone,create_by,id_card,dw_userid,status,del_flag,is_recommend,is_company_user
FROM dwd_system_user WHERE id_card IS NOT NULL and phone!='vy4NnIAD3WKqsXM7zDDskg=='
AND NOT EXISTS ( SELECT 1 FROM ks_db4.app_user a WHERE trim(a.dw_userid) = trim(dwd_system_user.dw_userid))
</select>
<select id="selectDifferUserSjdz" resultMap="AppUserResult">
SELECT a.name,a.sex ,a.phone,a.create_by,a.id_card,a.dw_userid,a.status,a.del_flag,a.is_recommend,a.is_company_user,b.user_id
FROM dwd_system_user a inner join app_user b on a.dw_userid=b.dw_userid
WHERE b.del_flag='0' and a.phone!=b.phone_encrypt
and a.dw_userid!='1000000001' and b.dw_userid!='1000000001'
</select>
<select id="retract">
UPDATE app_user a SET is_company_user = '1',dw_userid = NULL,update_by = 'jbd_user',update_time = CURRENT_TIMESTAMP
WHERE a.del_flag = '0' AND a.dw_userid IS NOT NULL AND a.dw_userid != ''
AND a.dw_userid != '1000000001'
AND NOT EXISTS (
SELECT 1
FROM dwd_system_user b
WHERE a.dw_userid = b.dw_userid
);
</select>
<update id="batchUpdateDifferUser">
<if test="list != null and !list.isEmpty()">
UPDATE app_user
SET id_card = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.idCard}
</foreach>
END,
id_card_cipher = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.idCardCipher}
</foreach>
END,
id_card_encrypt = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.idCardEncrypt}
</foreach>
END,
phone = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.phone}
</foreach>
END,
phone_cipher = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.phoneCipher}
</foreach>
END,
phone_encrypt = CASE
<foreach collection="list" item="item" separator="">
WHEN user_id = #{item.userId} THEN #{item.phoneEncrypt}
</foreach>
END,
update_by = 'jbd_user',
update_time = CURRENT_TIMESTAMP
WHERE user_id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.userId}
</foreach>
</if>
</update>
<insert id="batchAddUser">
<if test="list != null and !list.isEmpty()">
INSERT INTO app_user (
name, sex, phone,phone_encrypt,phone_cipher,create_by,create_time,id_card,id_card_encrypt,id_card_cipher, dw_userid, status,del_flag,is_recommend,is_company_user
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.name}, #{item.sex}, #{item.phone},#{item.phoneEncrypt},#{item.phoneCipher},
#{item.createBy}, SYSDATE, #{item.idCard},#{item.idCardEncrypt},#{item.idCardCipher},
#{item.dwUserid},#{item.status},#{item.delFlag},#{item.isRecommend},#{item.isCompanyUser}
)
</foreach>
</if>
</insert>
</mapper>