用户管理等

This commit is contained in:
2025-10-09 16:35:49 +08:00
parent 047bf39842
commit 39d7d0cf93
44 changed files with 3373 additions and 350 deletions

View File

@@ -39,6 +39,16 @@
</where>
</sql>
<!-- selectDepts -->
<select id="selectDepts">
SELECT
<include refid="Base_Column_List"/>
FROM tb_sys_dept
<include refid="Where_Clause"/>
ORDER BY dept_id,create_time DESC
</select>
<!-- 根据父部门ID查询子部门列表 -->
<select id="selectByParentId" resultMap="BaseResultMap">
SELECT
@@ -46,7 +56,7 @@
FROM tb_sys_dept
WHERE deleted = 0
AND parent_id = #{parentId}
ORDER BY create_time DESC
ORDER BY dept_id,create_time DESC
</select>
<!-- 检查部门名称是否存在 -->
@@ -92,7 +102,7 @@
delete_time = NOW(),
updater = #{updater}
WHERE deleted = 0
AND id IN
AND dept_id IN
<foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
@@ -134,7 +144,7 @@
<if test="updater != null">updater = #{updater},</if>
update_time = NOW()
</set>
WHERE id = #{id} AND deleted = 0
WHERE dept_id = #{deptID} AND deleted = 0
</update>
<!-- 根据ID删除逻辑删除 -->
@@ -142,7 +152,7 @@
UPDATE tb_sys_dept
SET deleted = 1,
delete_time = NOW()
WHERE id = #{id} AND deleted = 0
WHERE dept_id = #{deptID} AND deleted = 0
</update>
</mapper>

View File

@@ -0,0 +1,68 @@
<?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="org.xyzh.system.mapper.DeptRoleMapper">
<!-- 基础结果映射 -->
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.dept.TbSysDeptRole">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="dept_id" property="deptID" jdbcType="VARCHAR"/>
<result column="role_id" property="roleID" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
<result column="updater" property="updater" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
</resultMap>
<!-- 基础字段 -->
<sql id="Base_Column_List">
id, dept_id, role_id, creator, updater,
create_time, update_time, delete_time, deleted
</sql>
<sql id="Where_Clause">
<where>
deleted = 0
<if test="deptID != null and deptID != ''">
AND dept_id = #{deptID}
</if>
</where>
</sql>
<!-- selectDeptRole -->
<select id="selectDeptRole">
SELECT
<include refid="Base_Column_List"/>
FROM tb_sys_dept_role
<include refid="Where_Clause"/>
ORDER BY create_time DESC
</select>
<select id="selectDeptRoleList">
SELECT
<include refid="Base_Column_List"/>
FROM tb_sys_dept_role
ORDER BY dept_id, role_id, create_time DESC
</select>
<!-- batchBindDeptRole -->
<insert id="batchBindDeptRole">
INSERT INTO tb_sys_dept_role (id, dept_id, role_id, creator, create_time, deleted)
VALUES
<foreach collection="deptRoles" item="deptRole" separator=",">
(#{deptRole.id}, #{deptRole.deptID}, #{deptRole.roleID}, #{deptRole.creator}, #{deptRole.createTime}, 0)
</foreach>
</insert>
<!-- batchUnbindDeptRole -->
<delete id="batchUnbindDeptRole">
DELETE FROM tb_sys_dept_role
WHERE (dept_id, role_id) IN
<foreach collection="deptRoles" item="deptRole" open="(" separator="," close=")">
(#{deptRole.deptID}, #{deptRole.roleID})
</foreach>
</delete>
</mapper>

View File

@@ -33,13 +33,9 @@
<!-- 批量解绑菜单权限(真删除) -->
<delete id="batchUnbindMenuPermission">
DELETE FROM tb_sys_menu_permission
WHERE menu_id IN
WHERE (menu_id, permission_id) IN
<foreach collection="menuPermissions" item="menuPermission" open="(" separator="," close=")">
#{menuPermission.menuID}
</foreach>
AND permission_id IN
<foreach collection="menuPermissions" item="menuPermission" open="(" separator="," close=")">
#{menuPermission.permissionID}
(#{menuPermission.menuID}, #{menuPermission.permissionID})
</foreach>
AND deleted = 0
</delete>

View File

@@ -58,14 +58,11 @@
<sql id="Where_Clause">
<where>
deleted = 0
<if test="roleName != null and roleName != ''">
AND role_name LIKE CONCAT('%', #{roleName}, '%')
<if test="roleID != null and roleID != ''">
AND role_id = #{roleID}
</if>
<if test="roleCode != null and roleCode != ''">
AND role_code = #{roleCode}
</if>
<if test="status != null">
AND status = #{status}
<if test="name != null and name != ''">
AND name LIKE CONCAT('%', #{name}, '%')
</if>
</where>
</sql>
@@ -80,6 +77,36 @@
ORDER BY role_id, create_time ASC
</select>
<!-- 根据过滤条件查询角色列表 -->
<select id="selectRole" resultMap="tbSysRoleResultMap">
SELECT
<include refid="TbSysRole_Column_List"/>
FROM tb_sys_role
<include refid="Where_Clause"/>
ORDER BY role_id, create_time ASC
</select>
<!-- 插入角色 -->
<insert id="insertRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
INSERT INTO tb_sys_role
(id, role_id, name, description, creator, create_time)
VALUES (#{id}, #{roleID}, #{name}, #{description}, #{creator}, #{createTime})
</insert>
<!-- 更新角色 -->
<update id="updateRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
UPDATE tb_sys_role
(name, description, updater, update_time)
VALUES (#{name}, #{description}, #{updater}, #{updateTime})
WHERE role_id = #{roleID}
</update>
<!-- 删除角色 -->
<delete id="deleteRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
DELETE FROM tb_sys_role
WHERE role_id = #{roleID}
</delete>
<!-- 根据用户ID查询角色列表 -->
<select id="selectDeptRolesByUserId" resultMap="deptRoleVOResultMap">
SELECT
@@ -107,7 +134,7 @@
SELECT COUNT(1)
FROM tb_sys_role
WHERE deleted = 0
AND role_name = #{roleName}
AND name = #{roleName}
<if test="excludeId != null and excludeId != ''">
AND id != #{excludeId}
</if>
@@ -137,55 +164,7 @@
</foreach>
</update>
<!-- 插入角色 -->
<insert id="insert" parameterType="org.xyzh.common.dto.role.TbSysRole">
INSERT INTO tb_sys_role
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="roleID != null">role_id,</if>
<if test="roleName != null">role_name,</if>
<if test="roleCode != null">role_code,</if>
<if test="description != null">description,</if>
<if test="status != null">status,</if>
<if test="creator != null">creator,</if>
<if test="createTime != null">create_time,</if>
deleted
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="roleID != null">#{roleID},</if>
<if test="roleName != null">#{roleName},</if>
<if test="roleCode != null">#{roleCode},</if>
<if test="description != null">#{description},</if>
<if test="status != null">#{status},</if>
<if test="creator != null">#{creator},</if>
<if test="createTime != null">#{createTime},</if>
0
</trim>
</insert>
<!-- 更新角色 -->
<update id="updateById" parameterType="org.xyzh.common.dto.role.TbSysRole">
UPDATE tb_sys_role
<set>
<if test="roleID != null">role_id = #{roleID},</if>
<if test="roleName != null">role_name = #{roleName},</if>
<if test="roleCode != null">role_code = #{roleCode},</if>
<if test="description != null">description = #{description},</if>
<if test="status != null">status = #{status},</if>
<if test="updater != null">updater = #{updater},</if>
update_time = NOW()
</set>
WHERE id = #{id} AND deleted = 0
</update>
<!-- 根据ID删除逻辑删除 -->
<update id="deleteById">
UPDATE tb_sys_role
SET deleted = 1,
delete_time = NOW()
WHERE id = #{id} AND deleted = 0
</update>
<!-- checkRoleExists -->

View File

@@ -14,6 +14,19 @@
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
</resultMap>
<resultMap id="PermissionResultMap" type="org.xyzh.common.dto.permission.TbSysPermission">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="permission_id" property="permissionID" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
<result column="updater" property="updater" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
</resultMap>
<!-- 基础字段 -->
<sql id="Base_Column_List">
@@ -21,6 +34,11 @@
create_time, update_time, delete_time, deleted
</sql>
<!-- 权限基础字段 -->
<sql id="Permission_Column_List">
id, permission_id, name, code, description, creator, updater, create_time, update_time, delete_time, deleted
</sql>
<!-- 批量绑定角色权限 -->
<insert id="batchBindRolePermission">
INSERT INTO tb_sys_role_permission (id, role_id, permission_id, creator, create_time, deleted)
@@ -33,13 +51,9 @@
<!-- 批量解绑角色权限(真删除,避免批量绑定时报错存在的问题) -->
<delete id="batchUnbindRolePermission">
DELETE FROM tb_sys_role_permission
WHERE role_id IN
WHERE (role_id, permission_id) IN
<foreach collection="rolePermissions" item="rolePermission" open="(" separator="," close=")">
#{rolePermission.roleID}
</foreach>
AND permission_id IN
<foreach collection="rolePermissions" item="rolePermission" open="(" separator="," close=")">
#{rolePermission.permissionID}
(#{rolePermission.roleID}, #{rolePermission.permissionID})
</foreach>
AND deleted = 0
</delete>
@@ -50,19 +64,27 @@
<include refid="Base_Column_List"/>
FROM tb_sys_role_permission
WHERE deleted = 0
AND role_id = #{rolePermission.roleID}
AND permission_id = #{rolePermission.permissionID}
AND role_id = #{roleId}
AND permission_id = #{permissionId}
LIMIT 1
</select>
<!-- 根据角色ID查询权限关联列表 -->
<select id="selectByRoleId" resultMap="BaseResultMap">
<select id="selectByRoleId" resultMap="PermissionResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tb_sys_role_permission
WHERE deleted = 0
AND role_id = #{rolePermission.roleID}
ORDER BY create_time ASC
tsp.permission_id,
tsp.name,
tsp.code,
tsp.description,
tsp.creator,
tsp.updater,
tsp.create_time,
tsp.update_time
FROM tb_sys_role_permission tsrp
INNER JOIN tb_sys_permission tsp ON tsrp.permission_id = tsp.permission_id
WHERE tsrp.deleted = 0 AND tsp.deleted = 0
AND tsrp.role_id = #{roleId}
ORDER BY tsrp.permission_id , tsrp.create_time ASC
</select>
<!-- 根据权限ID查询角色关联列表 -->
@@ -71,7 +93,7 @@
<include refid="Base_Column_List"/>
FROM tb_sys_role_permission
WHERE deleted = 0
AND permission_id = #{rolePermission.permissionID}
AND permission_id = #{permissionId}
ORDER BY create_time ASC
</select>
@@ -82,8 +104,8 @@
delete_time = NOW(),
updater = #{updater}
WHERE deleted = 0
AND role_id = #{rolePermission.roleID}
AND permission_id = #{rolePermission.permissionID}
AND role_id = #{roleId}
AND permission_id = #{permissionId}
</update>
</mapper>

View File

@@ -1,4 +1,73 @@
<?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="org.xyzh.system.mapper.UserDeptRoleMapper">
<resultMap id="UserDeptRoleResultMap" type="TbSysUserDeptRole">
<id column="id" property="id" />
<result column="user_id" property="userID" />
<result column="dept_id" property="deptID" />
<result column="role_id" property="roleID" />
<result column="creator" property="creator" />
<result column="updater" property="updater" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_time" property="deleteTime" />
<result column="deleted" property="deleted" />
</resultMap>
<sql id="UserDeptRole_Column_List">
id, user_id, dept_id, role_id, creator, updater, create_time, update_time, delete_time, deleted
</sql>
<sql id="Where_Clause" >
<where>
<if test="id != null">
id = #{id}
</if>
<if test="userID != null">
user_id = #{userID}
</if>
<if test="deptID != null">
dept_id = #{deptID}
</if>
<if test="roleID != null">
role_id = #{roleID}
</if>
<if test="creator != null">
creator = #{creator}
</if>
<if test="updater != null">
updater = #{updater}
</if>
<if test="createTime != null">
create_time = #{createTime}
</if>
</where>
</sql>
<!-- selectByFilter -->
<select id="selectByFilter">
SELECT
<include refid="UserDeptRole_Column_List"/>
FROM tb_sys_user_dept_role
<include refid="Where_Clause"/>
ORDER BY user_id, dept_id, role_id, create_time DESC
</select>
<insert id="bindUser" parameterType="TbSysUserDeptRole">
INSERT INTO tb_sys_user_dept_role (id, user_id, dept_id, role_id, creator, create_time)
VALUES
<foreach collection="userDeptRoles" item="userDeptRole" separator=",">
(#{userDeptRole.id}, #{userDeptRole.userID}, #{userDeptRole.deptID}, #{userDeptRole.roleID}, #{userDeptRole.creator}, #{userDeptRole.createTime})
</foreach>
</insert>
<delete id="unbindUser" parameterType="TbSysUserDeptRole">
DELETE FROM tb_sys_user_dept_role
WHERE (user_id, dept_id, role_id) IN
<foreach collection="userDeptRoles" item="userDeptRole" open="(" separator="," close=")">
(#{userDeptRole.userID}, #{userDeptRole.deptID}, #{userDeptRole.roleID})
</foreach>
</delete>
</mapper>

View File

@@ -1,5 +1,52 @@
<?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="org.xyzh.system.mapper.UserInfoMapper">
<resultMap id="BaseResultMap" type="TbSysUserInfo">
<id column="id" property="id" />
<result column="user_id" property="userID" />
<result column="avatar" property="avatar" />
<result column="gender" property="gender" />
<result column="family_name" property="familyName" />
<result column="given_name" property="givenName" />
<result column="full_name" property="fullName" />
<result column="id_card" property="idCard" />
<result column="address" property="address" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_time" property="deleteTime" />
<result column="deleted" property="deleted" />
</resultMap>
<sql id="Base_Column_List">
id, user_id, avatar, gender, family_name, given_name, full_name, id_card, address, create_time, update_time, delete_time, deleted
</sql>
<!-- insertUserInfo -->
<insert id="insertUserInfo">
INSERT INTO tb_sys_user_info (id, user_id, avatar, create_time)
VALUES (#{userInfo.id}, #{userInfo.userID}, #{userInfo.avatar}, #{userInfo.createTime})
</insert>
<!-- updateUserInfo -->
<update id="updateUserInfo">
UPDATE tb_sys_user_info
<set>
<if test="userInfo.avatar != null">avatar = #{userInfo.avatar},</if>
<if test="userInfo.gender != null">gender = #{userInfo.gender},</if>
<if test="userInfo.familyName != null">family_name = #{userInfo.familyName},</if>
<if test="userInfo.givenName != null">given_name = #{userInfo.givenName},</if>
<if test="userInfo.fullName != null">full_name = #{userInfo.fullName},</if>
<if test="userInfo.idCard != null">id_card = #{userInfo.idCard},</if>
<if test="userInfo.address != null">address = #{userInfo.address},</if>
<if test="userInfo.updater != null">updater = #{userInfo.updater},</if>
<if test="userInfo.updateTime != null">update_time = #{userInfo.updateTime},</if>
</set>
WHERE user_id = #{userInfo.userID}
</update>
<delete id="deleteUserInfo">
DELETE FROM tb_sys_user_info
WHERE user_id = #{userID}
</delete>
</mapper>

View File

@@ -124,7 +124,6 @@
AND wechat_id = #{filter.wechatID}
</if>
</where>
LIMIT 1
</select>
<!-- 查询用户列表 -->
@@ -150,67 +149,50 @@
</update>
<!-- 插入用户 -->
<insert id="insert" parameterType="org.xyzh.common.dto.user.TbSysUser">
<insert id="insertUser" parameterType="org.xyzh.common.dto.user.TbSysUser">
INSERT INTO tb_sys_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="username != null">username,</if>
<if test="password != null">password,</if>
<if test="email != null">email,</if>
<if test="phone != null">phone,</if>
<if test="avatar != null">avatar,</if>
<if test="nickname != null">nickname,</if>
<if test="gender != null">gender,</if>
<if test="birthday != null">birthday,</if>
<if test="status != null">status,</if>
<if test="lastLoginTime != null">last_login_time,</if>
<if test="lastLoginIp != null">last_login_ip,</if>
<if test="creator != null">creator,</if>
<if test="createTime != null">create_time,</if>
<if test="user.id != null">id,</if>
<if test="user.username != null">username,</if>
<if test="user.password != null">password,</if>
<if test="user.email != null">email,</if>
<if test="user.phone != null">phone,</if>
<if test="user.wechatID != null">wechat_id,</if>
<if test="user.status != null">status,</if>
<if test="user.createTime != null">create_time,</if>
deleted
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="username != null">#{username},</if>
<if test="password != null">#{password},</if>
<if test="email != null">#{email},</if>
<if test="phone != null">#{phone},</if>
<if test="avatar != null">#{avatar},</if>
<if test="nickname != null">#{nickname},</if>
<if test="gender != null">#{gender},</if>
<if test="birthday != null">#{birthday},</if>
<if test="status != null">#{status},</if>
<if test="lastLoginTime != null">#{lastLoginTime},</if>
<if test="lastLoginIp != null">#{lastLoginIp},</if>
<if test="creator != null">#{creator},</if>
<if test="createTime != null">#{createTime},</if>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="user.id != null">#{user.id},</if>
<if test="user.username != null">#{user.username},</if>
<if test="user.password != null">#{user.password},</if>
<if test="user.email != null">#{user.email},</if>
<if test="user.phone != null">#{user.phone},</if>
<if test="user.wechatID != null">#{user.wechatID},</if>
<if test="user.status != null">#{user.status},</if>
<if test="user.createTime != null">#{user.createTime},</if>
0
</trim>
</insert>
<!-- 更新用户 -->
<update id="updateById" parameterType="org.xyzh.common.dto.user.TbSysUser">
<update id="updateUser" parameterType="org.xyzh.common.dto.user.TbSysUser">
UPDATE tb_sys_user
<set>
<if test="username != null">username = #{username},</if>
<if test="password != null">password = #{password},</if>
<if test="email != null">email = #{email},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="avatar != null">avatar = #{avatar},</if>
<if test="nickname != null">nickname = #{nickname},</if>
<if test="gender != null">gender = #{gender},</if>
<if test="birthday != null">birthday = #{birthday},</if>
<if test="status != null">status = #{status},</if>
<if test="lastLoginTime != null">last_login_time = #{lastLoginTime},</if>
<if test="lastLoginIp != null">last_login_ip = #{lastLoginIp},</if>
<if test="updater != null">updater = #{updater},</if>
<if test="user.username != null">username = #{user.username},</if>
<if test="user.password != null">password = #{user.password},</if>
<if test="user.email != null">email = #{user.email},</if>
<if test="user.phone != null">phone = #{user.phone},</if>
<if test="user.wechatID != null">wechat_id = #{user.wechatID},</if>
<if test="user.status != null">status = #{user.status},</if>
update_time = NOW()
</set>
WHERE id = #{id} AND deleted = 0
WHERE id = #{user.id} AND deleted = 0
</update>
<!-- 根据ID删除逻辑删除 -->
<update id="deleteById">
<update id="deleteUser">
UPDATE tb_sys_user
SET deleted = 1,
delete_time = NOW()