wlzboy
2025-12-04 af8cab142a6b15c06e131a8474574dd5b00df982
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -25,6 +25,9 @@
        <result property="updateBy"     column="update_by"    />
        <result property="updateTime"   column="update_time"  />
        <result property="remark"       column="remark"       />
        <result property="openId"       column="open_id"       />
        <result property="unionId"     column="union_id"     />
        <result property="wechatNickname" column="wechat_nickname" />
        <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
        <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
    </resultMap>
@@ -49,7 +52,7 @@
    </resultMap>
   
   <sql id="selectUserVo">
        select u.user_id, u.dept_id, u.user_name,u.oa_user_id, u.oa_order_class, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.oa_user_id, u.create_by, u.create_time, u.remark,
        select u.user_id, u.dept_id, u.user_name,u.oa_user_id, u.oa_order_class, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.oa_user_id, u.create_by, u.create_time, u.remark,u.open_id,u.union_id,u.wechat_nickname,
        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
@@ -203,7 +206,6 @@
          <if test="oaOrderClass != null">oa_order_class = #{oaOrderClass},</if>
          <if test="openId != null and openId != ''">open_id = #{openId},</if>
          <if test="unionId != null and unionId != ''">union_id = #{unionId},</if>
          <if test="wechatNickname != null and wechatNickname != ''">wechat_nickname = #{wechatNickname},</if>
          <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
          <if test="loginDate != null">login_date = #{loginDate},</if>
          <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
@@ -254,7 +256,7 @@
   <select id="selectUsersByBranchDeptIds" resultMap="SysUserResult">
      SELECT DISTINCT
         u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, 
         u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
         u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.create_time,
         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
@@ -263,19 +265,16 @@
      LEFT JOIN sys_role r ON r.role_id = ur.role_id
      WHERE u.del_flag = '0'
         AND u.status = '0'
         AND u.dept_id IN (
            -- 查询分公司及其所有子部门
         AND u.dept_id IN (
            SELECT t.dept_id 
            FROM sys_dept t
            WHERE t.del_flag = '0' 
               AND (
                  -- 分公司本身
               AND (
                  t.dept_id IN
                  <foreach collection="branchDeptIds" item="deptId" open="(" separator="," close=")">
                     #{deptId}
                  </foreach>
                  OR
                  -- 分公司的子部门(通过ancestors字段匹配)
                  OR
                  <foreach collection="branchDeptIds" item="deptId" open="(" separator=" OR " close=")">
                     find_in_set(#{deptId}, t.ancestors) > 0
                  </foreach>