批量推送代码

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
郭庆泰
2026-08-29 17:52:05 +08:00
co-authored by Claude
parent 36528b6e0c
commit e47f76478b
130 changed files with 3972 additions and 2546 deletions
@@ -61,6 +61,14 @@ public interface SysUserMapper
*/
public SysUser selectUserByEmail(String email);
/**
* 通过邮箱查询用户, 不过滤 del_flag (供应商账号同步去重用: 已软删的账号也要能查到以便恢复)
*
* @param email 邮箱
* @return 用户对象信息
*/
public SysUser selectUserByEmailIgnoreDel(String email);
/**
* 通过用户ID查询用户
*
@@ -77,6 +85,14 @@ public interface SysUserMapper
*/
public int insertUser(SysUser user);
/**
* 新增供应商同步用户 (写 password2/del_flag 等, 不写 password 列)
*
* @param user 用户信息
* @return 结果
*/
public int insertSyncedUser(SysUser user);
/**
* 修改用户信息
*
@@ -85,6 +101,14 @@ public interface SysUserMapper
*/
public int updateUser(SysUser user);
/**
* 更新供应商同步用户 (password2/nick_name/phonenumber/email/status/del_flag)
*
* @param user 用户信息
* @return 结果
*/
public int updateSyncedUser(SysUser user);
/**
* 修改用户头像
*
@@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="sex" column="sex" />
<result property="avatar" column="avatar" />
<result property="password" column="password" />
<result property="password2" column="password2" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" />
@@ -57,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.account_type, u.parent_user_id, u.role_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.update_by, u.update_time, u.remark,
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.account_type, u.parent_user_id, u.role_type, u.email, u.avatar, u.phonenumber, u.password, u.password2, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.update_by, u.update_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@@ -108,6 +109,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<!-- 支持方/执行人: 单位不存在的过滤掉 (单位被硬删后 org_name 为 NULL, 孤儿账号不展示) -->
AND (
coalesce(u.role_type, '') not in ('sponsor', 'executor')
OR exists (select 1 from biz_org o where o.user_id = u.user_id)
OR exists (select 1 from biz_person p join biz_org o2 on o2.org_id = p.org_id where p.user_id = u.user_id)
)
<if test="userId != null and userId != 0">
AND u.user_id = #{userId}
</if>
@@ -350,4 +357,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select user_id from sys_user where parent_user_id = #{parentUserId} and del_flag = '0'
</select>
<select id="selectUserByEmailIgnoreDel" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/>
where u.email = #{email}
</select>
<!-- 供应商账号同步: 新建执行方登录账号 (密码哈希写入 password2, 不写 password) -->
<insert id="insertSyncedUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(user_name, nick_name, email, phonenumber, password2, status, del_flag, account_type, role_type, create_time)
values(#{userName}, #{nickName}, #{email}, #{phonenumber}, #{password2}, #{status}, #{delFlag}, #{accountType}, #{roleType}, sysdate())
</insert>
<!-- 供应商账号同步: 更新执行方登录账号 (含恢复/删除 del_flag) -->
<update id="updateSyncedUser" parameterType="SysUser">
update sys_user
set password2 = #{password2},
nick_name = #{nickName},
phonenumber = #{phonenumber},
email = #{email},
status = #{status},
del_flag = #{delFlag},
update_time = sysdate()
where user_id = #{userId}
</update>
</mapper>