Commit d60aeb76a3d7a11a5ed6ebd2c95ed422e6b35810

Authored by puhui999
1 parent 14a80f9c

feat: 新增批量删除站内信模版接口

yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java
... ... @@ -4,19 +4,23 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7   -import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.*;
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateRespVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO;
  10 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateSendReqVO;
8 11 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
9 12 import cn.iocoder.yudao.module.system.service.notify.NotifySendService;
10 13 import cn.iocoder.yudao.module.system.service.notify.NotifyTemplateService;
11 14 import io.swagger.v3.oas.annotations.Operation;
12 15 import io.swagger.v3.oas.annotations.Parameter;
13 16 import io.swagger.v3.oas.annotations.tags.Tag;
  17 +import jakarta.annotation.Resource;
  18 +import jakarta.validation.Valid;
14 19 import org.springframework.security.access.prepost.PreAuthorize;
15 20 import org.springframework.validation.annotation.Validated;
16 21 import org.springframework.web.bind.annotation.*;
17 22  
18   -import jakarta.annotation.Resource;
19   -import jakarta.validation.Valid;
  23 +import java.util.List;
20 24  
21 25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
22 26  
... ... @@ -56,6 +60,15 @@ public class NotifyTemplateController {
56 60 return success(true);
57 61 }
58 62  
  63 + @DeleteMapping("/delete-list")
  64 + @Operation(summary = "批量删除站内信模版")
  65 + @Parameter(name = "ids", description = "编号列表", required = true)
  66 + @PreAuthorize("@ss.hasPermission('system:notify-template:delete')")
  67 + public CommonResult<Boolean> deleteNotifyTemplateList(@RequestParam("ids") List<Long> ids) {
  68 + notifyTemplateService.deleteNotifyTemplateList(ids);
  69 + return success(true);
  70 + }
  71 +
59 72 @GetMapping("/get")
60 73 @Operation(summary = "获得站内信模版")
61 74 @Parameter(name = "id", description = "编号", required = true, example = "1024")
... ...
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java
... ... @@ -4,8 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 4 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO;
5 5 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO;
6 6 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
7   -
8 7 import jakarta.validation.Valid;
  8 +
  9 +import java.util.List;
9 10 import java.util.Map;
10 11  
11 12 /**
... ... @@ -38,6 +39,13 @@ public interface NotifyTemplateService {
38 39 void deleteNotifyTemplate(Long id);
39 40  
40 41 /**
  42 + * 批量删除站内信模版
  43 + *
  44 + * @param ids 编号列表
  45 + */
  46 + void deleteNotifyTemplateList(List<Long> ids);
  47 +
  48 + /**
41 49 * 获得站内信模版
42 50 *
43 51 * @param id 编号
... ...
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java
1 1 package cn.iocoder.yudao.module.system.service.notify;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.hutool.core.util.ReUtil;
4 5 import cn.hutool.core.util.StrUtil;
5 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -10,13 +11,13 @@ import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
10 11 import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper;
11 12 import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
12 13 import com.google.common.annotations.VisibleForTesting;
  14 +import jakarta.annotation.Resource;
13 15 import lombok.extern.slf4j.Slf4j;
14 16 import org.springframework.cache.annotation.CacheEvict;
15 17 import org.springframework.cache.annotation.Cacheable;
16 18 import org.springframework.stereotype.Service;
17 19 import org.springframework.validation.annotation.Validated;
18 20  
19   -import jakarta.annotation.Resource;
20 21 import java.util.List;
21 22 import java.util.Map;
22 23 import java.util.regex.Pattern;
... ... @@ -85,6 +86,27 @@ public class NotifyTemplateServiceImpl implements NotifyTemplateService {
85 86 notifyTemplateMapper.deleteById(id);
86 87 }
87 88  
  89 + @Override
  90 + @CacheEvict(cacheNames = RedisKeyConstants.NOTIFY_TEMPLATE,
  91 + allEntries = true) // allEntries 清空所有缓存,因为 id 不是直接的缓存 code,不好清理
  92 + public void deleteNotifyTemplateList(List<Long> ids) {
  93 + // 校验存在
  94 + validateNotifyTemplatesExists(ids);
  95 + // 批量删除
  96 + notifyTemplateMapper.deleteByIds(ids);
  97 + }
  98 +
  99 + private void validateNotifyTemplatesExists(List<Long> ids) {
  100 + if (CollUtil.isEmpty(ids)) {
  101 + return;
  102 + }
  103 + // 校验存在
  104 + List<NotifyTemplateDO> templates = notifyTemplateMapper.selectByIds(ids);
  105 + if (CollUtil.isEmpty(templates) || templates.size() != ids.size()) {
  106 + throw exception(NOTIFY_TEMPLATE_NOT_EXISTS);
  107 + }
  108 + }
  109 +
88 110 private void validateNotifyTemplateExists(Long id) {
89 111 if (notifyTemplateMapper.selectById(id) == null) {
90 112 throw exception(NOTIFY_TEMPLATE_NOT_EXISTS);
... ...