xuhy
2024-12-09 11ccd809b2391e6e61b22d530c523ec622e4b866
manage/src/main/resources/mapping/SecUserMapper.xml
@@ -1,39 +1,166 @@
<?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.jilongda.manage.mapper.SecUserMapper">
<mapper namespace="com.jilongda.manage.authority.mapper.SecUserMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.jilongda.manage.model.SecUser">
        <id column="id" property="id" />
        <result column="account" property="account" />
        <result column="description" property="description" />
        <result column="password" property="password" />
        <result column="phone" property="phone" />
        <result column="state" property="state" />
        <result column="last_login_time" property="lastLoginTime" />
        <result column="createBy" property="createBy" />
        <result column="createTime" property="createTime" />
        <result column="updateBy" property="updateBy" />
        <result column="updateTime" property="updateTime" />
        <result column="isDelete" property="isDelete" />
        <result column="nick_name" property="nickName" />
        <result column="avatar_url" property="avatarUrl" />
        <result column="province" property="province" />
        <result column="city" property="city" />
        <result column="area" property="area" />
        <result column="address" property="address" />
        <result column="birthday" property="birthday" />
        <result column="gender" property="gender" />
        <result column="deptId" property="deptId" />
        <result column="userType" property="userType" />
        <result column="provinceCode" property="provinceCode" />
        <result column="cityCode" property="cityCode" />
        <result column="areaCode" property="areaCode" />
    <resultMap id="BaseResultMap" type="com.jilongda.manage.authority.model.SecUser">
        <id column="id" property="id"/>
        <result column="createBy" property="createBy"/>
        <result column="createTime" property="createTime"/>
        <result column="updateBy" property="updateBy"/>
        <result column="updateTime" property="updateTime"/>
        <result column="isDelete" property="isDelete"/>
        <result column="account" property="account"/>
        <result column="description" property="description"/>
        <result column="password" property="password"/>
        <result column="phone" property="phone"/>
        <result column="state" property="state"/>
        <result column="last_login_time" property="lastLoginTime"/>
        <result column="nick_name" property="nickName"/>
        <result column="avatar_url" property="avatarUrl"/>
        <result column="province" property="province"/>
        <result column="city" property="city"/>
        <result column="area" property="area"/>
        <result column="address" property="address"/>
        <result column="birthday" property="birthday"/>
        <result column="gender" property="gender"/>
        <result column="deptId" property="deptId"/>
        <result column="userType" property="userType"/>
        <result column="provinceCode" property="provinceCode"/>
        <result column="cityCode" property="cityCode"/>
        <result column="areaCode" property="areaCode"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, account, description, password, phone, state, last_login_time, createBy, createTime, updateBy, updateTime, isDelete, nick_name, avatar_url, province, city, area, address, birthday, gender, deptId, userType, provinceCode, cityCode, areaCode
        createBy
        ,
        createTime,
        updateBy,
        updateTime,
        isDelete,
        id, account, description, password, phone, `state`, last_login_time AS lastLoginTime,
        nick_name AS nickName, avatar_url AS avatarUrl, province, city, area, address, birthday, gender,deptId,userType,
            provinceCode, cityCode, areaCode
    </sql>
    <sql id="Base_Column_List_Other">
        su.createBy,
        su.createTime,
        su.updateBy,
        su.updateTime,
        su.isDelete,
        su.id, su.account, su.description, su.password, su.phone, su.`state`, su.last_login_time AS lastLoginTime,
        su.nick_name AS nickName, su.avatar_url AS avatarUrl, su.province, su.city, su.area, su.address, su.birthday, su.gender,su.deptId,su.userType,
            su.provinceCode, su.cityCode, su.areaCode
    </sql>
    <select id="getSecUserList" resultType="com.jilongda.manage.authority.vo.SecUsersVO">
        SELECT
        su.createBy,
        su.createTime,
        su.updateBy,
        su.updateTime,
        su.isDelete,
        su.id,
        su.`account`,
        su.`description`,
        su.`password`,
        su.phone,
        su.state,
        su.roleType,
        su.last_login_time AS lastLoginTime, su.nick_name AS nickName, su.avatar_url AS avatarUrl, su.province, su.city, su.area, su.address,
        su.birthday, su.gender,sr.id AS roleId,sr.rolename AS rolename,su.deptId,su.userType,su.provinceCode, su.cityCode, su.areaCode,td.deptName
        FROM sec_user su
        LEFT JOIN sec_user_role sur ON su.id = sur.user_id
        LEFT JOIN sec_role sr ON sur.role_id = sr.id
        LEFT JOIN t_dept td ON su.deptId = td.id
        <where>
            <if test="dto.account != null and dto.account != ''">
                AND su.account LIKE concat('%', #{dto.account,jdbcType=VARCHAR}, '%')
            </if>
            <if test="dto.nickName != null and dto.nickName != ''">
                AND su.nick_name LIKE concat('%', #{dto.nickName,jdbcType=VARCHAR}, '%')
            </if>
            <if test="dto.phone != null and dto.phone != ''">
                AND su.phone LIKE concat('%', #{dto.phone,jdbcType=VARCHAR}, '%')
            </if>
            <if test="dto.rolename != null and dto.rolename != ''">
                AND sr.rolename LIKE concat('%', #{dto.rolename,jdbcType=VARCHAR}, '%')
            </if>
            <if test="dto.state != null">
                AND su.state = #{dto.state}
            </if>
            AND su.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()}
        </where>
        ORDER BY su.createTime DESC
    </select>
    <select id="queryLower" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List">
        </include>
        from sec_user
        <where>
            <if test="query.userType != null and query.userType == 6">
                AND user_type = #{query.userType}
                and personnel_structure_id like concat('%','DR','%')
            </if>
            <if test="query.userType != null and query.userType == 7">
                AND user_type = #{query.userType}
                and personnel_structure_id like concat('%','HC','%')
            </if>
            AND isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()}
        </where>
    </select>
    <select id="getUserByRoleId" resultType="com.jilongda.manage.authority.model.SecUser">
        select <include refid="Base_Column_List_Other"></include>
        from sec_user_role sur
                 left join sec_user su on sur.user_id = su.id
        where sur.role_id = #{id,jdbcType=VARCHAR}
          and su.id is not null
    </select>
    <select id="selectListByNamePhoneDeptId" resultType="com.jilongda.manage.authority.model.SecUser">
        select <include refid="Base_Column_List"></include>
            from sec_user
        WHERE isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()}
        <if test="name != null and name != ''">
            AND (nick_name LIKE concat('%',#{name},'%')
            OR phone LIKE concat('%',#{name},'%'))
        </if>
        <if test="deptId != null">
            AND deptId = #{deptId}
        </if>
    </select>
    <select id="selectListByNamePhoneDeptIds" resultType="com.jilongda.manage.authority.model.SecUser">
        select <include refid="Base_Column_List"></include>
        from sec_user
        WHERE isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()}
        <if test="name != null and name != ''">
            AND (nick_name LIKE concat('%',#{name},'%')
            OR phone LIKE concat('%',#{name},'%'))
        </if>
        <if test="deptIds != null and deptIds.size()>0">
            AND deptId IN
            <foreach collection="deptIds" close=")" open="(" item="id" separator=",">
                #{id}
            </foreach>
        </if>
    </select>
    <select id="selectUserById" resultType="com.jilongda.manage.authority.model.SecUser">
        select <include refid="Base_Column_List"></include>
        from sec_user
        where id = #{orderingPersonId}
    </select>
    <select id="queryList" resultType="com.jilongda.manage.authority.model.SecUser">
        select <include refid="Base_Column_List"></include>
        from sec_user
    </select>
    <delete id="removeById">
        delete
        from sec_user
        where id = #{uid}
    </delete>
</mapper>