From 5f2abdabbe8fa597238f7cf142f66ab298745c18 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 30 May 2026 22:06:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20IoT=20=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E6=A8=A1=E6=9D=BF=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 后端 mail/sms/notify 模板 simple-list 仅返回启用模板精简字段 - 前端补充 mail/sms/notify 模板 simple-list API 封装 - vue3 与 vben antd/ele 在各自 system 模块封装模板选择组件 - IoT 告警配置按接收类型动态选择短信、邮件、站内信模板 - 补充前端 IotAlertReceiveTypeEnum,替换表单内裸常量 --- .../admin/mail/MailTemplateController.java | 10 ++++++---- .../admin/notify/NotifyTemplateController.java | 8 +++++--- .../admin/sms/SmsTemplateController.java | 8 +++++--- .../dal/mysql/mail/MailTemplateMapper.java | 6 ++++++ .../dal/mysql/notify/NotifyTemplateMapper.java | 6 ++++++ .../dal/mysql/sms/SmsTemplateMapper.java | 6 ++++++ .../service/mail/MailTemplateService.java | 8 ++++++++ .../service/mail/MailTemplateServiceImpl.java | 15 ++++++++++++--- .../service/notify/NotifyTemplateService.java | 5 +++-- .../notify/NotifyTemplateServiceImpl.java | 5 ++--- .../system/service/sms/SmsTemplateService.java | 5 +++-- .../service/sms/SmsTemplateServiceImpl.java | 4 ++-- .../mail/MailTemplateServiceImplTest.java | 17 +++++++++++++++++ .../notify/NotifyTemplateServiceImplTest.java | 18 ++++++++++++++++++ .../sms/SmsTemplateServiceImplTest.java | 16 ++++++++++++++++ 15 files changed, 115 insertions(+), 22 deletions(-) diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java index 52ac150875..2b8d586a67 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.controller.admin.mail; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -80,10 +81,11 @@ public class MailTemplateController { return success(BeanUtils.toBean(pageResult, MailTemplateRespVO.class)); } - @GetMapping({"/list-all-simple", "simple-list"}) - @Operation(summary = "获得邮件模版精简列表") - public CommonResult> getSimpleTemplateList() { - List list = mailTempleService.getMailTemplateList(); + @GetMapping({"/list-all-simple", "/simple-list"}) + @Operation(summary = "获得邮件模版精简列表", description = "只包含被开启的邮件模版,主要用于前端的下拉选项") + public CommonResult> getSimpleMailTemplateList() { + List list = mailTempleService.getMailTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); return success(BeanUtils.toBean(list, MailTemplateSimpleRespVO.class)); } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java index 6000dd0089..0aed501462 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.controller.admin.notify; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -88,9 +89,10 @@ public class NotifyTemplateController { } @GetMapping({"/list-all-simple", "/simple-list"}) - @Operation(summary = "获得站内信模版精简列表") - public CommonResult> getSimpleTemplateList() { - List list = notifyTemplateService.getNotifyTemplateList(); + @Operation(summary = "获得站内信模版精简列表", description = "只包含被开启的站内信模版,主要用于前端的下拉选项") + public CommonResult> getSimpleNotifyTemplateList() { + List list = notifyTemplateService.getNotifyTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); return success(BeanUtils.toBean(list, NotifyTemplateSimpleRespVO.class)); } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java index c7854e9b07..0bd3bcc4a7 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -90,9 +91,10 @@ public class SmsTemplateController { } @GetMapping({"/list-all-simple", "/simple-list"}) - @Operation(summary = "获得短信模板精简列表") - public CommonResult> getSimpleTemplateList() { - List list = smsTemplateService.getSmsTemplateList(); + @Operation(summary = "获得短信模板精简列表", description = "只包含被开启的短信模板,主要用于前端的下拉选项") + public CommonResult> getSimpleSmsTemplateList() { + List list = smsTemplateService.getSmsTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); return success(BeanUtils.toBean(list, SmsTemplateSimpleRespVO.class)); } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java index 1730e58f96..24911dfc88 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemp import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface MailTemplateMapper extends BaseMapperX { @@ -28,4 +30,8 @@ public interface MailTemplateMapper extends BaseMapperX { return selectOne(MailTemplateDO::getCode, code); } + default List selectListByStatus(Integer status) { + return selectList(MailTemplateDO::getStatus, status); + } + } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java index 1fcb8ee0d5..d5ea599cd9 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.Notify import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface NotifyTemplateMapper extends BaseMapperX { @@ -23,4 +25,8 @@ public interface NotifyTemplateMapper extends BaseMapperX { .orderByDesc(NotifyTemplateDO::getId)); } + default List selectListByStatus(Integer status) { + return selectList(NotifyTemplateDO::getStatus, status); + } + } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java index a9a1ebb995..af695976ca 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface SmsTemplateMapper extends BaseMapperX { @@ -30,4 +32,8 @@ public interface SmsTemplateMapper extends BaseMapperX { return selectCount(SmsTemplateDO::getChannelId, channelId); } + default List selectListByStatus(Integer status) { + return selectList(SmsTemplateDO::getStatus, status); + } + } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java index 0ee9e2b25b..49c846fda9 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java @@ -69,6 +69,14 @@ public interface MailTemplateService { */ List getMailTemplateList(); + /** + * 获取指定状态的邮件模版数组 + * + * @param status 状态 + * @return 邮件模版数组 + */ + List getMailTemplateListByStatus(Integer status); + /** * 从缓存中获取邮件模版 * diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java index 2ee46dbf75..2c3f4131ea 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java @@ -113,7 +113,9 @@ public class MailTemplateServiceImpl implements MailTemplateService { } @Override - public MailTemplateDO getMailTemplate(Long id) {return mailTemplateMapper.selectById(id);} + public MailTemplateDO getMailTemplate(Long id) { + return mailTemplateMapper.selectById(id); + } @Override @Cacheable(value = RedisKeyConstants.MAIL_TEMPLATE, key = "#code", unless = "#result == null") @@ -127,7 +129,14 @@ public class MailTemplateServiceImpl implements MailTemplateService { } @Override - public List getMailTemplateList() {return mailTemplateMapper.selectList();} + public List getMailTemplateList() { + return mailTemplateMapper.selectList(); + } + + @Override + public List getMailTemplateListByStatus(Integer status) { + return mailTemplateMapper.selectListByStatus(status); + } @Override public String formatMailTemplateContent(String content, Map params) { @@ -236,4 +245,4 @@ public class MailTemplateServiceImpl implements MailTemplateService { return ReUtil.findAllGroup1(PATTERN_PARAMS, content); } -} \ No newline at end of file +} diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java index 4947c5ce04..0d9135bc91 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java @@ -70,11 +70,12 @@ public interface NotifyTemplateService { PageResult getNotifyTemplatePage(NotifyTemplatePageReqVO pageReqVO); /** - * 获得启用状态的站内信模版列表 + * 获得指定状态的站内信模版列表 * + * @param status 状态 * @return 站内信模版列表 */ - List getNotifyTemplateList(); + List getNotifyTemplateListByStatus(Integer status); /** * 格式化站内信内容 diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java index 4e19430724..4b1b70d9f9 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.system.service.notify; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; @@ -117,8 +116,8 @@ public class NotifyTemplateServiceImpl implements NotifyTemplateService { } @Override - public List getNotifyTemplateList() { - return notifyTemplateMapper.selectList(NotifyTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()); + public List getNotifyTemplateListByStatus(Integer status) { + return notifyTemplateMapper.selectListByStatus(status); } @VisibleForTesting diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java index 320adc088e..f26fe7b6e2 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java @@ -71,11 +71,12 @@ public interface SmsTemplateService { PageResult getSmsTemplatePage(SmsTemplatePageReqVO pageReqVO); /** - * 获得启用状态的短信模板列表 + * 获得指定状态的短信模板列表 * + * @param status 状态 * @return 短信模板列表 */ - List getSmsTemplateList(); + List getSmsTemplateListByStatus(Integer status); /** * 获得指定短信渠道下的短信模板数量 diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java index b9661af1bc..bf1dbb398f 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java @@ -131,8 +131,8 @@ public class SmsTemplateServiceImpl implements SmsTemplateService { } @Override - public List getSmsTemplateList() { - return smsTemplateMapper.selectList(SmsTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()); + public List getSmsTemplateListByStatus(Integer status) { + return smsTemplateMapper.selectListByStatus(status); } @Override diff --git a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImplTest.java b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImplTest.java index fa9b709a71..af0211eda4 100755 --- a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImplTest.java +++ b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImplTest.java @@ -156,6 +156,23 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { assertEquals(dbMailTemplate02, list.get(1)); } + @Test + public void testGetMailTemplateListByStatus() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class, + o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + mailTemplateMapper.insert(dbMailTemplate); + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, + o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + + // 调用 + List list = mailTemplateService.getMailTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbMailTemplate, list.get(0)); + } + @Test public void testGetMailTemplate() { // mock 数据 diff --git a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImplTest.java b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImplTest.java index ba1f98e22c..6217a6ff8b 100644 --- a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImplTest.java +++ b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImplTest.java @@ -12,6 +12,7 @@ import org.springframework.context.annotation.Import; import jakarta.annotation.Resource; import java.util.HashMap; +import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; @@ -136,6 +137,23 @@ public class NotifyTemplateServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbNotifyTemplate, pageResult.getList().get(0)); } + @Test + public void testGetNotifyTemplateListByStatus() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class, + o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + notifyTemplateMapper.insert(dbNotifyTemplate); + notifyTemplateMapper.insert(cloneIgnoreId(dbNotifyTemplate, + o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + + // 调用 + List list = notifyTemplateService.getNotifyTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbNotifyTemplate, list.get(0)); + } + @Test public void testGetNotifyTemplate() { // mock 数据 diff --git a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImplTest.java b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImplTest.java index 344f566847..5847b797e1 100644 --- a/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImplTest.java +++ b/yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImplTest.java @@ -244,6 +244,22 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbSmsTemplate, pageResult.getList().get(0)); } + @Test + public void testGetSmsTemplateListByStatus() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + smsTemplateMapper.insert(dbSmsTemplate); + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, + o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + + // 调用 + List list = smsTemplateService.getSmsTemplateListByStatus( + CommonStatusEnum.ENABLE.getStatus()); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbSmsTemplate, list.get(0)); + } + @Test public void testGetSmsTemplateCountByChannelId() { // mock 数据