Files
syfadmin/fys-system/src/main/resources/mapper/system/APPUserMapper.xml
2025-06-20 14:58:57 +08:00

147 lines
5.7 KiB
XML

<?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.fuyuanshen.modules.system.mapper.app.APPUserMapper">
<resultMap id="BaseResultMap" type="com.fuyuanshen.modules.system.domain.app.APPUser">
<id column="app_user_id" property="id"/>
<result column="dept_id" property="deptId"/>
<result column="username" property="username"/>
<result column="nick_name" property="nickName"/>
<result column="email" property="email"/>
<result column="phone" property="phone"/>
<result column="gender" property="gender"/>
<result column="avatar_name" property="avatarName"/>
<result column="avatar_path" property="avatarPath"/>
<result column="password" property="password"/>
<result column="is_admin" property="admin"/>
<result column="admin" property="admin"/>
<result column="enabled" property="enabled"/>
<result column="pwd_reset_time" property="pwdResetTime"/>
<result column="level" property="userLevel"/>
<result column="pid" property="pid"/>
<result column="create_by" property="createBy"/>
<result column="update_by" property="updateBy"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="tenant_id" property="tenantId"/>
<result column="user_type" property="userType"/>
</resultMap>
<sql id="Base_Column_List">
u1
.
app_user_id
as user_user_id, u1.dept_id as user_dept_id, u1.username as user_username,
u1.nick_name as user_nick_name, u1.email as user_email, u1.phone as user_phone,
u1.gender as user_gender, u1.avatar_name as user_avatar_name, u1.avatar_path as user_avatar_path,
u1.enabled as user_enabled, u1.pwd_reset_time as user_pwd_reset_time, u1.create_by as user_create_by,
u1.update_by as user_update_by, u1.create_time as user_create_time, u1.update_time as user_update_time,
u1.user_level, u1.pid as user_pid,u1.is_admin AS admin,
</sql>
<!-- 查询APP/小程序用户 -->
<select id="queryAPPUser" resultMap="BaseResultMap">
SELECT u.*
FROM app_user u
<where>
<if test="criteria.enabled != null">
AND u.enabled = #{criteria.enabled}
</if>
<if test="criteria.username != null">
AND u.username = #{criteria.username}
</if>
AND u.user_type = #{criteria.userType}
</where>
ORDER BY u.app_user_id DESC
</select>
<!-- 根据条件查询一个用户 -->
<select id="selectByQueryOne" resultType="com.fuyuanshen.modules.system.domain.app.APPUser">
select
u.*
from app_user u
where u.username = #{appUserQuery.username}
</select>
<!--获取用户级别信息-->
<select id="selectRoleByUserLevel" resultType="com.fuyuanshen.modules.security.service.dto.app.AppRoleDto">
SELECT name , level , description , data_scope
FROM app_role
WHERE level = #{userLevel}
</select>
<select id="findByUsername" resultMap="BaseResultMap">
select
u1.password user_password, u1.is_admin user_is_admin, u1.tenant_id,
<include refid="Base_Column_List"/>
from app_user u1
where u1.username = #{username}
</select>
<update id="setUsername">
UPDATE app_user
<set>
<if test="phoneNumber != null">
username = #{phoneNumber}
</if>
</set>
WHERE phone = #{phoneNumber}
</update>
<resultMap id="APPUserWithRoleMap" type="com.fuyuanshen.modules.system.domain.app.APPUser">
<!-- 用户字段 -->
<id property="id" column="app_user_id"/>
<result property="username" column="username"/>
<result property="nickName" column="nick_name"/>
<result property="email" column="email"/>
<result property="phone" column="phone"/>
<result property="enabled" column="enabled"/>
<result property="gender" column="gender"/>
<result property="avatarPath" column="avatar_path"/>
<result property="pwdResetTime" column="pwd_reset_time"/>
<result property="userLevel" column="user_level"/>
<result property="pid" column="pid"/>
<result property="admin" column="is_admin"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="userType" column="user_type"/>
<!-- 角色字段 -->
<collection property="roles" ofType="com.fuyuanshen.modules.system.domain.Role">
<id column="role_id" property="id"/>
<result column="role_name" property="name"/>
<result column="role_level" property="level"/>
<result column="role_data_scope" property="dataScope"/>
</collection>
</resultMap>
<select id="appFindByUsername" resultMap="APPUserWithRoleMap">
SELECT
u1.app_user_id,
u1.username,
u1.nick_name,
u1.email,
u1.phone,
u1.enabled,
u1.gender,
u1.avatar_path,
u1.pwd_reset_time,
u1.user_level,
u1.pid,
u1.is_admin,
u1.create_time,
u1.update_time,
u1.user_type,
r.name AS role_name,
r.level AS role_level,
r.description AS role_description,
r.data_scope AS role_data_scope
FROM app_user u1
LEFT JOIN app_role r ON u1.user_level = r.level
WHERE u1.username = #{username}
</select>
</mapper>