From 7f71993050a4a33031ede85eb88c2aba62dc088a Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Sat, 23 Dec 2023 14:47:25 +0800
Subject: [PATCH] 权限

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   79 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 73 insertions(+), 6 deletions(-)

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 93eca00..9e26b0f 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
@@ -3,13 +3,21 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import javax.validation.Validator;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+import com.ruoyi.alarm.config.mapper.ArdAlarmTypeConfigMapper;
 import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DictUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -67,6 +75,8 @@
     protected Validator validator;
     @Resource
     private RedisCache redisCache;
+    @Resource
+    private ArdAlarmTypeConfigMapper ardAlarmTypeConfigMapper;
 
     /**
      * 项目启动时,初始化参数到缓存
@@ -128,12 +138,17 @@
     public List<SysUser> selectUserList(SysUser user) {
         return userMapper.selectUserList(user);
     }
+    /**
+     * 获取App单兵和指挥端用户列表
+     *
+     * @param user APP用户信息
+     * @return 用户信息集合信息
+     */
     @Override
-    @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectAppUserList(SysUser user) {
-        return userMapper.selectAppUserList(user);
+//    @DataScope(deptAlias = "d", userAlias = "u")
+    public List<SysUser> selectAllAppUserList(SysUser user) {
+        return userMapper.selectAllAppUserList(user);
     }
-
     /**
      * 根据条件分页查询已分配用户角色列表
      *
@@ -298,6 +313,7 @@
     public int insertUser(SysUser user) {
 
         // 新增用户信息
+        user.setUserId(IdUtils.simpleUUID());
         int rows = userMapper.insertUser(user);
         if (rows > 0) {  //增加用户缓存
             redisCache.setCacheObject(getCacheKey(user.getUserId()), user);
@@ -306,6 +322,8 @@
         insertUserPost(user);
         // 新增用户与角色管理
         insertUserRole(user);
+        // 新增用户与报警类型关联
+        insertAlarmTypeConfig(user);
         return rows;
     }
 
@@ -330,6 +348,11 @@
     @Transactional
     public int updateUser(SysUser user) {
         String userId = user.getUserId();
+        // 删除用户与报警类型关联
+        ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByUserId(userId);
+        // 新增用户与报警类型关联
+        insertAlarmTypeConfig(user);
+
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 新增用户与角色管理
@@ -429,7 +452,14 @@
     public void insertUserRole(SysUser user) {
         this.insertUserRole(user.getUserId(), user.getRoleIds());
     }
-
+    /**
+     * 新增用户报警类型信息
+     *
+     * @param user 用户对象
+     */
+    public void insertAlarmTypeConfig(SysUser user) {
+        this.insertAlarmTypeConfig(user.getUserId(), user.getCommands());
+    }
     /**
      * 新增用户岗位信息
      *
@@ -469,7 +499,27 @@
             userRoleMapper.batchUserRole(list);
         }
     }
-
+    /**
+     * 新增用户报警类型
+     *
+     * @param userId  用户ID
+     * @param commands 报警类型组
+     */
+    public void insertAlarmTypeConfig(String userId, List<String> commands) {
+        if (StringUtils.isNotEmpty(commands)) {
+            // 新增用户与角色管理
+            List<ArdAlarmTypeConfig> list = new ArrayList<ArdAlarmTypeConfig>(commands.size());
+            for (String command : commands) {
+                ArdAlarmTypeConfig ur = new ArdAlarmTypeConfig();
+                ur.setUserId(userId);
+                ur.setCommand(command);
+                String alarm_type = DictUtils.getDictLabel("alarm_type", command);
+                ur.setAlarmType(alarm_type);
+                list.add(ur);
+            }
+            ardAlarmTypeConfigMapper.batchAlarmTypeConfig(list);
+        }
+    }
     /**
      * 通过用户ID删除用户
      *
@@ -503,6 +553,8 @@
             checkUserAllowed(new SysUser(userId));
             checkUserDataScope(userId);
         }
+        // 删除用户与报警类型关联
+        ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByIds(userIds);
         // 删除用户与角色关联
         userRoleMapper.deleteUserRole(userIds);
         // 删除用户与岗位关联
@@ -580,4 +632,19 @@
     private String getCacheKey(String configKey) {
         return CacheConstants.USER_LIST_KEY + configKey;
     }
+
+
+    @Override
+    public List<SysUser> userByDeptList(List<Long> deptList) {
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("dept_id",deptList);
+        return userMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<SysUser> userByDept(Long deptId) {
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("dept_id",deptId).eq("del_flag","0").eq("app_user_type","1");
+        return userMapper.selectList(queryWrapper);
+    }
 }

--
Gitblit v1.9.3