zhangherong
2025-06-25 23855599412c4d61b38d78f0f3abd3430a48b5b1
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,231 @@
<?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.jeecg.modules.system.mapper.SysUserMapper">
   <!-- æ ¹æ®ç”¨æˆ·åæŸ¥è¯¢ -->
   <select id="getUserByName" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from  sys_user  where username = #{username} and del_flag = 0
   </select>
   <!-- æ ¹æ®éƒ¨é—¨Id查询 -->
   <select id="getUserByDepId" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from sys_user where del_flag = 0 and id in (select user_id from sys_user_depart where dep_id=#{departId})
      <if test="username!=null and username!=''">
         and username = #{username}
      </if>
   </select>
   <!-- æŸ¥è¯¢ç”¨æˆ·çš„æ‰€å±žéƒ¨é—¨åç§°ä¿¡æ¯ -->
   <select id="getDepNamesByUserIds" resultType="org.jeecg.modules.system.vo.SysUserDepVo">
      select d.depart_name,ud.user_id from sys_user_depart ud,sys_depart d where d.id = ud.dep_id and ud.user_id in
      <foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
         #{id}
      </foreach>
   </select>
   <!-- é€šè¿‡å¤šä¸ªéƒ¨é—¨IDS,查询部门下的用户信息 -->
   <select id="getUserByDepIds" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from sys_user where del_flag = 0
      <if test="departIds!=null  and departIds.size()>0">
         and id in (select user_id from sys_user_depart where dep_id in
         <foreach collection="departIds" index="index" item="id" open="(" separator="," close=")">
            #{id}
         </foreach>
         )
      </if>
      <if test="username!=null and username!=''">
         and username = #{username}
      </if>
   </select>
   <!-- æ ¹æ®è§’色Id查询 -->
   <select id="getUserByRoleId" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from sys_user where del_flag = 0 and id in (select user_id from sys_user_role where role_id=#{roleId})
      <if test="username!=null and username!=''">
         and username = #{username}
      </if>
   </select>
   <!--  ä¿®æ”¹ç”¨æˆ·éƒ¨é—¨code -->
   <update id="updateUserDepart">
      UPDATE sys_user SET org_code = #{orgCode} where username = #{username}
   </update>
   <!-- æ ¹æ®æ‰‹æœºå·æŸ¥è¯¢ -->
   <select id="getUserByPhone"  resultType="org.jeecg.modules.system.entity.SysUser">
      select * from  sys_user  where phone = #{phone} and del_flag = 0
   </select>
   <!-- æ ¹æ®é‚®ç®±æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯ -->
   <select id="getUserByEmail" resultType="org.jeecg.modules.system.entity.SysUser">
   select * from  sys_user  where email = #{email} and del_flag = 0
   </select>
   <!-- SQL片段:getUserByOrgCode çš„ FROM å’Œ WHERE éƒ¨åˆ† -->
   <sql id="getUserByOrgCodeFromSql">
      FROM
      sys_depart
      INNER JOIN sys_user_depart ON sys_user_depart.dep_id = sys_depart.id
      INNER JOIN sys_user ON sys_user.id = sys_user_depart.user_id
      WHERE
      <if test="orgCode == null">
         <bind name="bindOrgCode" value="'%'"/>
      </if>
      <if test="orgCode != null">
         <bind name="bindOrgCode" value="orgCode+'%'"/>
      </if>
      sys_user.del_flag = 0 AND sys_depart.org_code LIKE #{bindOrgCode}
      <if test="userParams != null">
         <if test="userParams.realname != null and userParams.realname != ''">
            AND sys_user.realname LIKE concat(concat('%',#{userParams.realname}),'%')
         </if>
         <if test="userParams.workNo != null and userParams.workNo != ''">
            AND sys_user.work_no LIKE concat(concat('%',#{userParams.workNo}),'%')
         </if>
      </if>
   </sql>
   <!-- æ ¹æ® orgCode æŸ¥è¯¢ç”¨æˆ·ï¼ŒåŒ…括子部门下的用户 -->
   <select id="getUserByOrgCode" resultType="org.jeecg.modules.system.model.SysUserSysDepartModel">
      SELECT
         sys_user.id AS id,
         sys_user.realname AS realname,
         sys_user.avatar AS avatar,
         sys_user.sex AS sex,
         sys_user.birthday AS birthday,
         sys_user.work_no AS workNo,
         sys_user.post AS post,
         sys_user.telephone AS telephone,
         sys_user.email AS email,
         sys_user.phone AS phone,
         sys_depart.id AS departId,
         sys_depart.depart_name AS departName
      <include refid="getUserByOrgCodeFromSql"/>
      ORDER BY
         sys_depart.org_code ASC
   </select>
   <!-- æŸ¥è¯¢ getUserByOrgCode çš„æ€»æ•°-->
   <select id="getUserByOrgCodeTotal" resultType="java.lang.Integer">
      SELECT COUNT(1) <include refid="getUserByOrgCodeFromSql"/>
   </select>
   <!-- æ‰¹é‡åˆ é™¤è§’色的与用户关系-->
   <update id="deleteBathRoleUserRelation">
      delete from sys_user_role
      where role_id in
      <foreach item="id" collection="roleIdArray" open="(" separator="," close=")">
         #{id}
      </foreach>
   </update>
   <!-- æ‰¹é‡åˆ é™¤è§’色的与权限关系-->
   <update id="deleteBathRolePermissionRelation">
      delete from sys_role_permission
      where role_id in
      <foreach item="id" collection="roleIdArray" open="(" separator="," close=")">
         #{id}
      </foreach>
   </update>
   <!-- æŸ¥è¯¢è¢«é€»è¾‘删除的用户 -->
   <select id="selectLogicDeleted" resultType="org.jeecg.modules.system.entity.SysUser">
      SELECT * FROM sys_user ${ew.customSqlSegment}
   </select>
   <!-- æ›´æ–°è¢«é€»è¾‘删除的用户 -->
   <update id="revertLogicDeleted">
      UPDATE
         sys_user
      SET
         del_flag = 0,
         update_by = #{entity.updateBy},
         update_time = #{entity.updateTime}
      WHERE
         del_flag = 1
         AND id IN
         <foreach collection="userIds" item="userId" open="(" close=")" separator="," >
            #{userId}
         </foreach>
   </update>
   <!-- å½»åº•删除被逻辑删除的用户 -->
   <delete id="deleteLogicDeleted">
      DELETE FROM sys_user WHERE del_flag = 1 AND id IN
      <foreach collection="userIds" item="userId" open="(" close=")" separator="," >
         #{userId}
      </foreach>
   </delete>
   <!-- æ›´æ–°ç©ºå­—符串为null -->
   <update id="updateNullByEmptyString">
      UPDATE sys_user
      <if test="fieldName == 'email'">
         SET email = NULL WHERE email = ''
      </if>
      <if test="fieldName == 'phone'">
         SET phone = NULL WHERE phone = ''
      </if>
   </update>
   <!-- é€šè¿‡å¤šä¸ªéƒ¨é—¨IDS,查询部门下的用户信息 -->
   <select id="queryByDepIds" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from sys_user where del_flag = 0
      <if test="departIds!=null  and departIds.size()>0">
         and id in (select user_id from sys_user_depart where dep_id in
         <foreach collection="departIds" index="index" item="id" open="(" separator="," close=")">
            #{id}
         </foreach>
         )
      </if>
      <if test="username!=null and username!=''">
         and username != #{username}
      </if>
   </select>
   <!-- æŸ¥è¯¢ç”¨æˆ·çš„æ‰€å±žäº§çº¿åç§°ä¿¡æ¯ -->
   <select id="getProNamesByUserIds" resultType="org.jeecg.modules.system.vo.MdcUserProVo">
      SELECT p.production_name, up.user_id FROM mdc_user_production up, mdc_production p WHERE p.id = up.pro_id AND up.user_id IN
      <foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
         #{id}
      </foreach>
   </select>
   <!-- æ ¹æ®è§’色Id查询该角色下的所有用户信息 -->
   <select id="getAllUsersByRoleId" resultType="org.jeecg.modules.system.entity.SysUser">
      select * from sys_user where del_flag = '0' and id in (select user_id from sys_user_role where role_id=#{roleId})
   </select>
   <!--根据角色编码查询用户id集合根据角色编码查询用户id集合-->
   <select id="getUserByRoleCode" resultType="java.lang.String">
      SELECT
         su.id
      FROM
         sys_user su
            LEFT JOIN sys_user_role sur ON su.id = sur.user_id
            LEFT JOIN sys_role sr ON sur.role_id = sr.id
      WHERE
         sr.role_code = #{ roleCode }
   </select>
   <!--根据角色编码和设备编号查询用户-->
    <select id="getEquipmentAdmin" resultType="org.jeecg.modules.system.entity.SysUser">
      SELECT
         t1.*
      FROM
         sys_user t1
            LEFT JOIN sys_user_role t2 ON t1.id = t2.user_id
            LEFT JOIN sys_role t3 ON t2.role_id = t3.id
      WHERE
         t3.role_code = #{roleCode} AND equipment_ids LIKE concat(concat('%',#{equipmentId}),'%')
   </select>
    <select id="selectUsersByNames" resultType="org.jeecg.modules.system.entity.SysUser">
      SELECT
      username,
      realname
      FROM sys_user
      WHERE
      username IN
      <foreach item="name" collection="userNames" open="(" separator="," close=")">
         #{name}
      </foreach>
   </select>
</mapper>