From 4b838e2a64b4f441819f43fccd067c076eb422b9 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期三, 26 七月 2023 22:47:15 +0800
Subject: [PATCH] 修改用户关联报警类型

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 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..c74bca5 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,19 @@
 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.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+import com.ruoyi.alarm.config.mapper.ArdAlarmTypeConfigMapper;
 import com.ruoyi.common.constant.CacheConstants;
 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 +73,8 @@
     protected Validator validator;
     @Resource
     private RedisCache redisCache;
+    @Resource
+    private ArdAlarmTypeConfigMapper ardAlarmTypeConfigMapper;
 
     /**
      * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧弬鏁板埌缂撳瓨
@@ -306,6 +314,8 @@
         insertUserPost(user);
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         insertUserRole(user);
+        // 鏂板鐢ㄦ埛涓庢姤璀︾被鍨嬪叧鑱�
+        insertAlarmTypeConfig(user);
         return rows;
     }
 
@@ -330,6 +340,11 @@
     @Transactional
     public int updateUser(SysUser user) {
         String userId = user.getUserId();
+        // 鍒犻櫎鐢ㄦ埛涓庢姤璀︾被鍨嬪叧鑱�
+        ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByUserId(userId);
+        // 鏂板鐢ㄦ埛涓庢姤璀︾被鍨嬪叧鑱�
+        insertAlarmTypeConfig(user);
+
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
@@ -429,7 +444,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 +491,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 +545,8 @@
             checkUserAllowed(new SysUser(userId));
             checkUserDataScope(userId);
         }
+        // 鍒犻櫎鐢ㄦ埛涓庢姤璀︾被鍨嬪叧鑱�
+        ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByIds(userIds);
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
         userRoleMapper.deleteUserRole(userIds);
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱�

--
Gitblit v1.9.3