From 24681c81c09022f584a57006f2534b5f74723414 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 30 六月 2026 09:27:31 +0800
Subject: [PATCH] 初始化项目

---
 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/action/IotAlertTriggerSceneRuleAction.java |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/action/IotAlertTriggerSceneRuleAction.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/action/IotAlertTriggerSceneRuleAction.java
index bc26436..937b8f6 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/action/IotAlertTriggerSceneRuleAction.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/action/IotAlertTriggerSceneRuleAction.java
@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.iot.service.rule.scene.action;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
@@ -79,30 +80,38 @@
         }
         Map<String, Object> templateParams = buildTemplateParams(config, deviceMessage, device);
         config.getReceiveUserIds().forEach(userId ->
-                config.getReceiveTypes().forEach(receiveType -> sendAlertMessageToUser(userId, receiveType, templateParams)));
+                config.getReceiveTypes().forEach(receiveType ->
+                        sendAlertMessageToUser(userId, receiveType, config, templateParams)));
     }
 
     /**
      * 鎸夋寚瀹氭帴鏀舵柟寮忥紝缁欏崟涓敤鎴峰彂閫佸憡璀︽秷鎭�
      */
-    private void sendAlertMessageToUser(Long userId, Integer receiveType, Map<String, Object> templateParams) {
+    private void sendAlertMessageToUser(Long userId, Integer receiveType, IotAlertConfigDO config,
+                                        Map<String, Object> templateParams) {
         IotAlertReceiveTypeEnum typeEnum = IotAlertReceiveTypeEnum.of(receiveType);
         if (typeEnum == null) {
             return;
+        }
+        String templateCode = resolveTemplateCode(config, typeEnum);
+        if (StrUtil.isBlank(templateCode)) {//涓轰簡鍏煎鑰佺殑缁撴瀯
+            templateCode=typeEnum.getTemplateCode();
+            log.warn("[sendAlertMessageToUser][閰嶇疆({}) 鐢ㄦ埛({}) 鎺ユ敹鏂瑰紡({}) 鏈厤缃ā鏉匡紝浣跨敤榛樿妯℃澘锛坽}锛塢",
+                    config.getId(), userId, typeEnum,templateCode);
         }
         try {
             switch (typeEnum) {
                 case SMS:
                     smsSendApi.sendSingleSmsToAdmin(new SmsSendSingleToUserReqDTO().setUserId(userId)
-                            .setTemplateCode(typeEnum.getTemplateCode()).setTemplateParams(templateParams));
+                            .setTemplateCode(templateCode).setTemplateParams(templateParams));
                     break;
                 case MAIL:
                     mailSendApi.sendSingleMailToAdmin(new MailSendSingleToUserReqDTO().setUserId(userId)
-                            .setTemplateCode(typeEnum.getTemplateCode()).setTemplateParams(templateParams));
+                            .setTemplateCode(templateCode).setTemplateParams(templateParams));
                     break;
                 case NOTIFY:
                     notifyMessageSendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO().setUserId(userId)
-                            .setTemplateCode(typeEnum.getTemplateCode()).setTemplateParams(templateParams));
+                            .setTemplateCode(templateCode).setTemplateParams(templateParams));
                     break;
             }
         } catch (Exception ex) {
@@ -111,6 +120,24 @@
         }
     }
 
+    private String resolveTemplateCode(IotAlertConfigDO config, IotAlertReceiveTypeEnum typeEnum) {
+        String templateCode = null;
+        switch (typeEnum) {
+            case SMS:
+                templateCode = config.getSmsTemplateCode();
+                break;
+            case MAIL:
+                templateCode = config.getMailTemplateCode();
+                break;
+            case NOTIFY:
+                templateCode = config.getNotifyTemplateCode();
+                break;
+            default:
+                break;
+        }
+        return StrUtil.blankToDefault(templateCode, typeEnum.getTemplateCode());
+    }
+
     private Map<String, Object> buildTemplateParams(IotAlertConfigDO config,
                                                     @Nullable IotDeviceMessage deviceMessage,
                                                     @Nullable IotDeviceDO device) {

--
Gitblit v1.9.3