Selaa lähdekoodia

将 EmailController 和 ReceiverController 移到 SysMessageController

reghao 9 kuukautta sitten
vanhempi
commit
711f5540a9

+ 0 - 72
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/EmailController.java

@@ -1,72 +0,0 @@
-package cn.reghao.devops.mgr.admin.controller;
-
-import cn.reghao.devops.mgr.admin.db.repository.EmailAccountRepository;
-import cn.reghao.devops.mgr.admin.db.repository.NotifyReceiverRepository;
-import cn.reghao.devops.mgr.admin.model.po.EmailAccount;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.jutil.jdk.string.StringRegexp;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-01-26 20:52:54
- */
-@Api(tags = "邮件帐号管理接口")
-@RestController
-@RequestMapping("/api/sys/notify/email")
-public class EmailController {
-    private final NotifyReceiverRepository notifyReceiverRepository;
-    private final EmailAccountRepository emailAccountRepository;
-
-    public EmailController(NotifyReceiverRepository notifyReceiverRepository,
-                           EmailAccountRepository emailAccountRepository) {
-        this.notifyReceiverRepository = notifyReceiverRepository;
-        this.emailAccountRepository = emailAccountRepository;
-    }
-
-    @ApiOperation(value = "添加邮箱帐号", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/save", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String saveReceiver(@Validated EmailAccount emailAccount) {
-        String email = emailAccount.getUsername();
-        boolean matched = StringRegexp.matchEmail(email);
-        if (!matched) {
-            return WebResult.failWithMsg("邮箱地址格式不正确, 请检查");
-        }
-
-        List<EmailAccount> list = emailAccountRepository.findAll();
-        if (!list.isEmpty()) {
-            EmailAccount emailAccount1 = list.get(0);
-            emailAccount1.setSmtp(emailAccount.getSmtp());
-            emailAccount1.setUsername(emailAccount.getUsername());
-            emailAccount1.setPassword(emailAccount.getPassword());
-            emailAccount1.setPersonal(emailAccount.getPersonal());
-            emailAccountRepository.save(emailAccount1);
-        } else {
-            emailAccountRepository.save(emailAccount);
-        }
-
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "删除邮箱帐号", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @DeleteMapping(value = "/delete/{username}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteEmail(@PathVariable("username") String username) {
-        /*NotifyReceiver notifyReceiver = notifyReceiverRepository.findByType(NotifyType.email.name());
-        if (notifyReceiver != null) {
-            return WebResult.failWithMsg("系统中存在接收通知的邮箱地址, 不能删除发送通知的邮箱");
-        }
-
-        List<EmailAccount> list = emailAccountRepository.findAll();
-        emailAccountRepository.delete(list.get(0));*/
-        return WebResult.failWithMsg("接口未实现");
-    }
-}

+ 0 - 115
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/ReceiverController.java

@@ -1,115 +0,0 @@
-package cn.reghao.devops.mgr.admin.controller;
-
-import cn.reghao.devops.mgr.admin.db.repository.EmailAccountRepository;
-import cn.reghao.devops.mgr.admin.db.repository.NotifyReceiverRepository;
-import cn.reghao.devops.mgr.admin.model.vo.NotifyType;
-import cn.reghao.devops.mgr.admin.model.po.EmailAccount;
-import cn.reghao.devops.mgr.admin.model.po.NotifyReceiver;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.jutil.jdk.string.StringRegexp;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-01-26 20:32:24
- */
-@Api(tags = "通知接收接口")
-@RestController
-@RequestMapping("/api/sys/notify/receiver")
-public class ReceiverController {
-    private final NotifyReceiverRepository notifyReceiverRepository;
-    private final EmailAccountRepository emailAccountRepository;
-
-    public ReceiverController(NotifyReceiverRepository notifyReceiverRepository,
-                              EmailAccountRepository emailAccountRepository) {
-        this.notifyReceiverRepository = notifyReceiverRepository;
-        this.emailAccountRepository = emailAccountRepository;
-    }
-
-    @ApiOperation(value = "添加通知接收", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/save", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String saveReceiver(@Validated NotifyReceiver notifyReceiver) {
-        String name = notifyReceiver.getName();
-        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
-        if (notifyReceiver1 != null) {
-            String errMsg = String.format("NotifyReceiver %s exist", name);
-            return WebResult.failWithMsg(errMsg);
-        }
-
-        /*String type = notifyReceiver.getType();
-        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByType(type);
-        if (notifyReceiver1 != null) {
-            String errMsg = String.format("NotifyType %s already exist", type);
-            return WebResult.failWithMsg(errMsg);
-        }*/
-        String type = notifyReceiver.getType();
-        if (type.equals(NotifyType.email.name())) {
-            List<EmailAccount> list = emailAccountRepository.findAll();
-            if (list.isEmpty()) {
-                return WebResult.failWithMsg("没有可以发送通知的邮箱, 请先配置");
-            }
-
-            String email = notifyReceiver.getUrl();
-            boolean matched = StringRegexp.matchEmail(email);
-            if (!matched) {
-                return WebResult.failWithMsg("邮箱地址格式不正确, 请检查");
-            }
-        }
-
-        notifyReceiverRepository.save(notifyReceiver);
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "更新通知接收", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/edit", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String editReceiver(@Validated NotifyReceiver notifyReceiver) {
-        String name = notifyReceiver.getName();
-        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
-        if (notifyReceiver1 == null) {
-            String errMsg = String.format("NotifyReceiver %s not exist", name);
-            return WebResult.failWithMsg(errMsg);
-        }
-
-        notifyReceiver1.setUrl(notifyReceiver.getUrl());
-        notifyReceiverRepository.save(notifyReceiver1);
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "更新通知接收", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/default/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String updateDefaultReceiver(@PathVariable("name") String name) {
-        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
-        if (notifyReceiver1 == null || notifyReceiver1.getSetdefault()) {
-            String errMsg = String.format("NotifyReceiver %s not exist or it is default receiver", name);
-            return WebResult.failWithMsg(errMsg);
-        }
-
-        NotifyReceiver notifyReceiver2 = notifyReceiverRepository.findByTypeAndSetdefaultIsTrue(notifyReceiver1.getType());
-        notifyReceiver1.setSetdefault(true);
-        notifyReceiver2.setSetdefault(false);
-        notifyReceiverRepository.saveAll(List.of(notifyReceiver1, notifyReceiver2));
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "删除通知接收", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @DeleteMapping(value = "/delete/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteReceiver(@PathVariable("name") String name) {
-        NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
-        if (notifyReceiver != null) {
-            notifyReceiverRepository.delete(notifyReceiver);
-        }
-
-        return WebResult.success();
-    }
-}

+ 135 - 5
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/SysMessageController.java

@@ -1,15 +1,21 @@
 package cn.reghao.devops.mgr.admin.controller;
 
+import cn.reghao.devops.mgr.admin.db.repository.EmailAccountRepository;
+import cn.reghao.devops.mgr.admin.db.repository.NotifyReceiverRepository;
+import cn.reghao.devops.mgr.admin.model.po.EmailAccount;
+import cn.reghao.devops.mgr.admin.model.po.NotifyReceiver;
+import cn.reghao.devops.mgr.admin.model.vo.NotifyType;
 import cn.reghao.devops.mgr.admin.service.SysMessageService;
 import cn.reghao.jutil.jdk.result.WebResult;
+import cn.reghao.jutil.jdk.string.StringRegexp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author reghao
@@ -20,9 +26,14 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/api/sys")
 public class SysMessageController {
     private final SysMessageService sysMessageService;
+    private final EmailAccountRepository emailAccountRepository;
+    private final NotifyReceiverRepository notifyReceiverRepository;
 
-    public SysMessageController(SysMessageService sysMessageService) {
+    public SysMessageController(SysMessageService sysMessageService, EmailAccountRepository emailAccountRepository,
+                                NotifyReceiverRepository notifyReceiverRepository) {
         this.sysMessageService = sysMessageService;
+        this.emailAccountRepository = emailAccountRepository;
+        this.notifyReceiverRepository = notifyReceiverRepository;
     }
 
     @ApiOperation(value = "清空系统消息", notes = "N")
@@ -33,4 +44,123 @@ public class SysMessageController {
         sysMessageService.clearUnread();
         return WebResult.success();
     }
+
+    @ApiOperation(value = "添加邮箱帐号", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/notify/email/save", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String saveReceiver(@Validated EmailAccount emailAccount) {
+        String email = emailAccount.getUsername();
+        boolean matched = StringRegexp.matchEmail(email);
+        if (!matched) {
+            return WebResult.failWithMsg("邮箱地址格式不正确, 请检查");
+        }
+
+        List<EmailAccount> list = emailAccountRepository.findAll();
+        if (!list.isEmpty()) {
+            EmailAccount emailAccount1 = list.get(0);
+            emailAccount1.setSmtp(emailAccount.getSmtp());
+            emailAccount1.setUsername(emailAccount.getUsername());
+            emailAccount1.setPassword(emailAccount.getPassword());
+            emailAccount1.setPersonal(emailAccount.getPersonal());
+            emailAccountRepository.save(emailAccount1);
+        } else {
+            emailAccountRepository.save(emailAccount);
+        }
+
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "删除邮箱帐号", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @DeleteMapping(value = "/notify/email/delete/{username}", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String deleteEmail(@PathVariable("username") String username) {
+        /*NotifyReceiver notifyReceiver = notifyReceiverRepository.findByType(NotifyType.email.name());
+        if (notifyReceiver != null) {
+            return WebResult.failWithMsg("系统中存在接收通知的邮箱地址, 不能删除发送通知的邮箱");
+        }
+
+        List<EmailAccount> list = emailAccountRepository.findAll();
+        emailAccountRepository.delete(list.get(0));*/
+        return WebResult.failWithMsg("接口未实现");
+    }
+
+    @ApiOperation(value = "添加通知接收", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/notify/receiver/save", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String saveReceiver(@Validated NotifyReceiver notifyReceiver) {
+        String name = notifyReceiver.getName();
+        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
+        if (notifyReceiver1 != null) {
+            String errMsg = String.format("NotifyReceiver %s exist", name);
+            return WebResult.failWithMsg(errMsg);
+        }
+
+        /*String type = notifyReceiver.getType();
+        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByType(type);
+        if (notifyReceiver1 != null) {
+            String errMsg = String.format("NotifyType %s already exist", type);
+            return WebResult.failWithMsg(errMsg);
+        }*/
+        String type = notifyReceiver.getType();
+        if (type.equals(NotifyType.email.name())) {
+            List<EmailAccount> list = emailAccountRepository.findAll();
+            if (list.isEmpty()) {
+                return WebResult.failWithMsg("没有可以发送通知的邮箱, 请先配置");
+            }
+
+            String email = notifyReceiver.getUrl();
+            boolean matched = StringRegexp.matchEmail(email);
+            if (!matched) {
+                return WebResult.failWithMsg("邮箱地址格式不正确, 请检查");
+            }
+        }
+
+        notifyReceiverRepository.save(notifyReceiver);
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "更新通知接收", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/notify/receiver/edit", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String editReceiver(@Validated NotifyReceiver notifyReceiver) {
+        String name = notifyReceiver.getName();
+        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
+        if (notifyReceiver1 == null) {
+            String errMsg = String.format("NotifyReceiver %s not exist", name);
+            return WebResult.failWithMsg(errMsg);
+        }
+
+        notifyReceiver1.setUrl(notifyReceiver.getUrl());
+        notifyReceiverRepository.save(notifyReceiver1);
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "更新通知接收", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/notify/receiver/default/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String updateDefaultReceiver(@PathVariable("name") String name) {
+        NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
+        if (notifyReceiver1 == null || notifyReceiver1.getSetdefault()) {
+            String errMsg = String.format("NotifyReceiver %s not exist or it is default receiver", name);
+            return WebResult.failWithMsg(errMsg);
+        }
+
+        NotifyReceiver notifyReceiver2 = notifyReceiverRepository.findByTypeAndSetdefaultIsTrue(notifyReceiver1.getType());
+        notifyReceiver1.setSetdefault(true);
+        notifyReceiver2.setSetdefault(false);
+        notifyReceiverRepository.saveAll(List.of(notifyReceiver1, notifyReceiver2));
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "删除通知接收", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @DeleteMapping(value = "/notify/receiver/delete/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String deleteReceiver(@PathVariable("name") String name) {
+        NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
+        if (notifyReceiver != null) {
+            notifyReceiverRepository.delete(notifyReceiver);
+        }
+
+        return WebResult.success();
+    }
 }