From d75748cedbed89fe43dc326497cf015447c70493 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 13 二月 2025 16:58:28 +0800
Subject: [PATCH] 管理后台人员管理,维修受理,验收管理

---
 ruoyi-admin/src/main/resources/application-test.yml                              |    6 +-
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDeptToUserMapper.java        |    9 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/SysUserVO.java                    |    4 +
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                  |   15 +++-
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java   |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java        |    3 +
 ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml              |    6 ++
 ruoyi-applet/src/main/resources/application-test.yml                             |    6 +-
 ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java              |    8 +-
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   69 +++++++++++++++++++---
 ruoyi-system/src/main/resources/mapper/system/TDeptToUserMapper.xml              |    3 +
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java      |    5 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |    2 
 13 files changed, 110 insertions(+), 27 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index c5afa68..27aea74 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -165,7 +165,7 @@
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         user.setCreateBy(getUsername());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setPassword(SecurityUtils.encryptPassword("123456"));
         userService.insertUser(user);
         return AjaxResult.success();
     }
diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml
index 4ca4b21..93fd2c2 100644
--- a/ruoyi-admin/src/main/resources/application-test.yml
+++ b/ruoyi-admin/src/main/resources/application-test.yml
@@ -193,9 +193,9 @@
     accessPath: /file/
     allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
 wx:
-  config:
-    appId: wxc3985a05da7d86dc
-    secret: 5cca42633c25439613b328c08ef20cc9
+  conf:
+    appId: wxe91f1af7638aa5dd
+    secretId: a787e1a462715604e0c9528b6d8960d1
 #OSS及短信配置
 code:
   config:
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
index 7f39fab..6b095e6 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
@@ -121,6 +121,7 @@
         if (tenant==null){
 //            appUser.setTenantAttributes();
 //            appUser.setTenantType();
+            tenant = new TTenant();
             tenant.setPhone(appletUserDecodeData.getPhoneNumber());
             tenant.setAccount(appletUserDecodeData.getPhoneNumber());
             tenant.setPassword(SecurityUtils.encryptPassword(appletUserDecodeData.getPhoneNumber().substring(5)));
diff --git a/ruoyi-applet/src/main/resources/application-test.yml b/ruoyi-applet/src/main/resources/application-test.yml
index 53c6be7..a0e94e7 100644
--- a/ruoyi-applet/src/main/resources/application-test.yml
+++ b/ruoyi-applet/src/main/resources/application-test.yml
@@ -193,9 +193,9 @@
     accessPath: /file/
     allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
 wx:
-  config:
-    appId: wxc3985a05da7d86dc
-    secret: 5cca42633c25439613b328c08ef20cc9
+  conf:
+    appId: wxe91f1af7638aa5dd
+    secretId: a787e1a462715604e0c9528b6d8960d1
 #OSS及短信配置
 code:
   config:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 21ff250..9a6eea2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -125,8 +125,11 @@
 
     @TableField(exist = false)
     private String roleName;
-
+    @TableField(exist = false)
     private String deptName;
+    @ApiModelProperty(value = "部门id集合")
+    @TableField(exist = false)
+    private List<String> deptIds;
 
     public String getRoleName() {
         return roleName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
index c98a23f..843a7fc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.ruoyi.system.model.TDeptToUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.system.domain.SysUserRole;
@@ -70,4 +71,6 @@
      * @return 结果
      */
     public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds);
+
+    void insertBatchUserDept(List<TDeptToUser> deptToUserList);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDeptToUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDeptToUserMapper.java
index effd9a5..37dfe49 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDeptToUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDeptToUserMapper.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.system.model.TDeptToUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,14 @@
  * @author xiaochen
  * @since 2025-02-06
  */
+@Mapper
 public interface TDeptToUserMapper extends BaseMapper<TDeptToUser> {
 
+    /**
+     * 根据用户ID删除部门用户中间表
+     *
+     * @param userId 用户ID
+     * @return 删除结果
+     **/
+    int deleteUserDeptByUserId(Long userId);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
index 8609862..3727f0a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
@@ -5,18 +5,20 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "账户列表query")
 public class SysUserQuery extends BasePage {
 
     @ApiModelProperty(value = "姓名")
-    private String nickName;
+    private String nickNameAndPhone;
 
     @ApiModelProperty(value = "角色id")
     private Integer roleId;
 
-    @ApiModelProperty(value = "手机号")
-    private String phonenumber;
+    @ApiModelProperty(value = "部门id集合")
+    private List<String> deptIds;
 
     @ApiModelProperty(value = "状态  0=正常 1=停用")
     private String status;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 5fc26a4..ed7ae34 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -6,8 +6,14 @@
 import java.util.stream.Collectors;
 import javax.validation.Validator;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.system.mapper.*;
+import com.ruoyi.system.model.TDept;
+import com.ruoyi.system.model.TDeptToUser;
 import com.ruoyi.system.query.SysUserQuery;
+import com.ruoyi.system.service.TDeptToUserService;
 import com.ruoyi.system.vo.SysUserVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,11 +33,6 @@
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
-import com.ruoyi.system.mapper.SysPostMapper;
-import com.ruoyi.system.mapper.SysRoleMapper;
-import com.ruoyi.system.mapper.SysUserMapper;
-import com.ruoyi.system.mapper.SysUserPostMapper;
-import com.ruoyi.system.mapper.SysUserRoleMapper;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
 
@@ -59,9 +60,13 @@
 
     @Autowired
     private SysUserPostMapper userPostMapper;
+    @Autowired
+    private TDeptToUserMapper deptToUserMapper;
 
     @Autowired
     private ISysConfigService configService;
+    @Autowired
+    private TDeptMapper deptMapper;
 
     @Autowired
     protected Validator validator;
@@ -264,7 +269,7 @@
         // 新增用户信息
         int rows = userMapper.insertUser(user);
         // 新增用户岗位关联
-//        insertUserPost(user);
+        insertUserDept(user);
         // 新增用户与角色管理
         insertUserRoleId(user);
         return rows;
@@ -297,10 +302,10 @@
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 新增用户与角色管理
         insertUserRoleId(user);
-        // 删除用户与岗位关联
-//        userPostMapper.deleteUserPostByUserId(userId);
-        // 新增用户与岗位管理
-//        insertUserPost(user);
+        // 删除用户与部门关联
+        deptToUserMapper.deleteUserDeptByUserId(userId);
+        // 新增用户与部门管理
+        insertUserDept(user);
         return userMapper.updateUser(user);
     }
 
@@ -401,6 +406,17 @@
     }
 
     /**
+     * 新增用户角色信息
+     *
+     * @param user 用户对象
+     */
+    public void insertUserDept(SysUser user)
+    {
+        this.insertUserDept(user.getUserId(), user.getDeptIds());
+    }
+
+
+    /**
      * 新增用户岗位信息
      * 
      * @param user 用户对象
@@ -460,6 +476,26 @@
             ur.setUserId(userId);
             ur.setRoleId(roleId);
             userRoleMapper.insertUserRole(ur);
+        }
+    }
+    /**
+     * 新增用户部门信息
+     *
+     * @param userId 用户ID
+     * @param deptIds 部门id集合
+     */
+    public void insertUserDept(Long userId, List<String> deptIds)
+    {
+        if (Objects.nonNull(userId) && !CollectionUtils.isEmpty(deptIds)){
+            List<TDeptToUser> deptToUserList = new ArrayList<>();
+            for (String deptId : deptIds) {
+                // 新增用户与角色管理
+                TDeptToUser deptToUser = new TDeptToUser();
+                deptToUser.setUserId(userId);
+                deptToUser.setDeptId(deptId);
+                deptToUserList.add(deptToUser);
+            }
+            userRoleMapper.insertBatchUserDept(deptToUserList);
         }
     }
 
@@ -628,6 +664,19 @@
     public PageInfo<SysUserVO> pageList(SysUserQuery query) {
         PageInfo<SysUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<SysUserVO> list = userMapper.pageList(query,pageInfo);
+        if(CollectionUtils.isEmpty(list)){
+            return pageInfo;
+        }
+        List<Long> userIds = list.stream().map(SysUserVO::getUserId).collect(Collectors.toList());
+        // 查询所有部门
+        List<TDept> depts = deptMapper.selectList(Wrappers.lambdaQuery(TDept.class));
+        List<TDeptToUser> tDeptToUsers = deptToUserMapper.selectList(Wrappers.lambdaQuery(TDeptToUser.class)
+                .in(TDeptToUser::getUserId, userIds));
+        for (SysUserVO sysUserVO : list) {
+            tDeptToUsers.stream().filter(tDeptToUser -> tDeptToUser.getUserId().equals(sysUserVO.getUserId())).forEach(tDeptToUser -> {
+                sysUserVO.setDeptList(depts.stream().filter(tDept -> tDept.getId().equals(tDeptToUser.getDeptId())).map(TDept::getDeptName).collect(Collectors.toList()));
+            });
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysUserVO.java
index 15cf0d2..09a4e0d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysUserVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysUserVO.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "账户列表VO")
 public class SysUserVO extends SysUser {
@@ -14,7 +16,7 @@
     @ApiModelProperty(value = "单位名称")
     private String companyName;
     @ApiModelProperty(value = "部门")
-    private String deptName;
+    private List<String> deptList;
     @ApiModelProperty(value = "角色")
     private String roleName;
 
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 7336905..7487409 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -228,19 +228,24 @@
 		from sys_user u
 		left join sys_user_role ur on u.user_id = ur.user_id
 		left join sys_role r on r.role_id = ur.role_id
+		left join t_dept_to_user tdtu on u.user_id = tdtu.user_id
 		WHERE u.del_flag = 0
-		<if test="query.nickName != null and query.nickName != ''">
-			AND u.nick_name LIKE concat('%',#{query.nickName},'%')
+		<if test="query.nickNameAndPhone != null and query.nickNameAndPhone != ''">
+			AND (u.nick_name LIKE concat('%',#{query.nickNameAndPhone},'%')
+			    OR u.phonenumber LIKE concat('%',#{query.nickNameAndPhone},'%'))
 		</if>
 		<if test="query.roleId != null">
 			AND r.role_id = #{query.roleId}
 		</if>
-		<if test="query.phonenumber != null and query.phonenumber != ''">
-			AND u.phonenumber LIKE concat('%',#{query.phonenumber},'%')
-		</if>
 		<if test="query.status != null and query.status != ''">
 			AND u.status = #{query.status}
 		</if>
+		<if test="query.deptIds != null and query.deptIds.size()>0">
+			AND u.user_id IN (select DISTINCT user_id from t_dept_to_user where dept_id IN
+			<foreach collection="query.deptIds" close=")" open="(" item="deptId" separator=",">
+				#{deptId}
+			</foreach>)
+		</if>
 		ORDER BY u.create_time DESC
 	</select>
 	<select id="selectIdByPhone" resultType="java.lang.Long">
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
index f7715e4..9b0d3cd 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
@@ -33,6 +33,12 @@
     <insert id="insertUserRole">
 		insert into sys_user_role(user_id, role_id) values (#{userRole.userId},#{userRole.roleId})
 	</insert>
+    <insert id="insertBatchUserDept">
+		insert into sys_user_role(user_id, dept_id) values
+		<foreach item="item" index="index" collection="deptToUserList" separator=",">
+			(#{item.userId},#{item.deptId})
+		</foreach>
+	</insert>
 
     <delete id="deleteUserRoleInfo" parameterType="SysUserRole">
 		delete from sys_user_role where user_id=#{userId} and role_id=#{roleId}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TDeptToUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TDeptToUserMapper.xml
index 8e20f23..a740cf8 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TDeptToUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TDeptToUserMapper.xml
@@ -13,5 +13,8 @@
     <sql id="Base_Column_List">
         id, dept_id, user_id
     </sql>
+    <delete id="deleteUserDeptByUserId">
+        delete from t_dept_to_user where user_id=#{userId}
+    </delete>
 
 </mapper>

--
Gitblit v1.7.1