Browse Source

精简 mgr/admin 模块的 SysPageController

reghao 6 months ago
parent
commit
e7d17a22c8

+ 20 - 34
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/page/SysPageController.java

@@ -1,8 +1,7 @@
 package cn.reghao.devops.mgr.admin.controller.page;
 
-import cn.reghao.devops.mgr.admin.db.repository.NotifyReceiverRepository;
-import cn.reghao.devops.mgr.admin.db.repository.SysMessageRepository;
-import cn.reghao.devops.mgr.admin.model.po.NotifyReceiver;
+import cn.reghao.devops.mgr.admin.db.repository.WebhookRepository;
+import cn.reghao.devops.mgr.admin.model.po.Webhook;
 import cn.reghao.devops.mgr.admin.model.po.SysMessage;
 import cn.reghao.devops.mgr.admin.model.vo.SysMsg;
 import cn.reghao.devops.mgr.admin.service.SysMessageService;
@@ -28,11 +27,11 @@ import java.util.List;
 @Controller
 @RequestMapping("/sys")
 public class SysPageController {
-    private final NotifyReceiverRepository notifyReceiverRepository;
+    private final WebhookRepository webhookRepository;
     private final SysMessageService sysMessageService;
 
-    public SysPageController(NotifyReceiverRepository notifyReceiverRepository, SysMessageService sysMessageService) {
-        this.notifyReceiverRepository = notifyReceiverRepository;
+    public SysPageController(WebhookRepository webhookRepository, SysMessageService sysMessageService) {
+        this.webhookRepository = webhookRepository;
         this.sysMessageService = sysMessageService;
     }
 
@@ -78,9 +77,9 @@ public class SysPageController {
     @ApiOperation(value = "通知接收列表页面", notes = "N")
     @PreAuthorize("hasRole('ROLE_ADMIN')")
     @GetMapping("/notify")
-    public String receiverIndex(Model model) throws Exception {
+    public String receiverIndex(Model model) {
         PageRequest pageRequest = PageRequest.of(0, 100);
-        Page<NotifyReceiver> page = notifyReceiverRepository.findAll(pageRequest);
+        Page<Webhook> page = webhookRepository.findAll(pageRequest);
         model.addAttribute("page", page);
         model.addAttribute("list", page.getContent());
         return "/admin/notify/receiver";
@@ -97,15 +96,15 @@ public class SysPageController {
     @PreAuthorize("hasRole('ROLE_ADMIN')")
     @PostMapping(value = "/notify/save", produces = MediaType.APPLICATION_JSON_VALUE)
     @ResponseBody
-    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);
+    public String saveReceiver(@Validated Webhook webhook) {
+        String name = webhook.getName();
+        Webhook webhook1 = webhookRepository.findByName(name);
+        if (webhook1 != null) {
+            String errMsg = String.format("Webhook %s exist", name);
             return WebResult.failWithMsg(errMsg);
         }
 
-        notifyReceiverRepository.save(notifyReceiver);
+        webhookRepository.save(webhook);
         return WebResult.success();
     }
 
@@ -114,29 +113,16 @@ public class SysPageController {
     @PostMapping(value = "/notify/default/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
     @ResponseBody
     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);
+        Webhook webhook1 = webhookRepository.findByName(name);
+        if (webhook1 == null || webhook1.getSetdefault()) {
+            String errMsg = String.format("Webhook %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 = "删除 webhook", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @DeleteMapping(value = "/notify/delete/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String deleteReceiver(@PathVariable("name") String name) {
-        NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
-        if (notifyReceiver != null) {
-            notifyReceiverRepository.delete(notifyReceiver);
-        }
-
+        Webhook webhook2 = webhookRepository.findByTypeAndSetdefaultIsTrue(webhook1.getType());
+        webhook1.setSetdefault(true);
+        webhook2.setSetdefault(false);
+        webhookRepository.saveAll(List.of(webhook1, webhook2));
         return WebResult.success();
     }
 }

+ 0 - 14
mgr/src/main/java/cn/reghao/devops/mgr/admin/db/repository/NotifyReceiverRepository.java

@@ -1,14 +0,0 @@
-package cn.reghao.devops.mgr.admin.db.repository;
-
-import cn.reghao.devops.mgr.admin.model.po.NotifyReceiver;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-/**
- * @author reghao
- * @date 2024-01-26 20:02:50
- */
-public interface NotifyReceiverRepository extends JpaRepository<NotifyReceiver, Integer> {
-    NotifyReceiver findByName(String name);
-    NotifyReceiver findByTypeAndSetdefaultIsTrue(String type);
-    NotifyReceiver findBySetdefaultIsTrue();
-}

+ 13 - 0
mgr/src/main/java/cn/reghao/devops/mgr/admin/db/repository/WebhookRepository.java

@@ -0,0 +1,13 @@
+package cn.reghao.devops.mgr.admin.db.repository;
+
+import cn.reghao.devops.mgr.admin.model.po.Webhook;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * @author reghao
+ * @date 2024-01-26 20:02:50
+ */
+public interface WebhookRepository extends JpaRepository<Webhook, Integer> {
+    Webhook findByName(String name);
+    Webhook findByTypeAndSetdefaultIsTrue(String type);
+}

+ 2 - 2
mgr/src/main/java/cn/reghao/devops/mgr/admin/model/po/NotifyReceiver.java → mgr/src/main/java/cn/reghao/devops/mgr/admin/model/po/Webhook.java

@@ -18,7 +18,7 @@ import javax.validation.constraints.NotBlank;
 @Getter
 @Entity
 @Table(name = "sys_notify_receiver")
-public class NotifyReceiver extends BaseEntity {
+public class Webhook extends BaseEntity {
     @Column(nullable = false, unique = true)
     private String name;
     private String type;
@@ -27,7 +27,7 @@ public class NotifyReceiver extends BaseEntity {
     private String sign;
     private Boolean setdefault;
 
-    public NotifyReceiver() {
+    public Webhook() {
         this.type = NotifyType.webhook.getName();
         this.setdefault = false;
     }

+ 9 - 10
mgr/src/main/java/cn/reghao/devops/mgr/admin/service/NotifyService.java

@@ -1,12 +1,11 @@
 package cn.reghao.devops.mgr.admin.service;
 
+import cn.reghao.devops.mgr.admin.db.repository.WebhookRepository;
 import cn.reghao.devops.mgr.admin.service.notifier.ding.DingMsg;
 import cn.reghao.devops.mgr.admin.service.notifier.ding.DingNotify;
 import cn.reghao.devops.mgr.admin.service.notifier.email.EmailMsg;
-import cn.reghao.devops.mgr.admin.service.notifier.email.EmailNotify;
-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.NotifyReceiver;
+import cn.reghao.devops.mgr.admin.model.po.Webhook;
 import cn.reghao.devops.mgr.admin.service.notifier.Notify;
 import cn.reghao.jutil.jdk.thread.ThreadPoolWrapper;
 import lombok.extern.slf4j.Slf4j;
@@ -25,26 +24,26 @@ import java.util.concurrent.ExecutorService;
 public class NotifyService {
     private final ExecutorService threadPool = ThreadPoolWrapper.threadPool("notify-service");
     private final DingNotify dingNotify;
-    private final NotifyReceiverRepository notifyReceiverRepository;
+    private final WebhookRepository webhookRepository;
     private final SysMessageService sysMessageService;
 
-    public NotifyService(DingNotify dingNotify, NotifyReceiverRepository notifyReceiverRepository, SysMessageService sysMessageService) {
+    public NotifyService(DingNotify dingNotify, WebhookRepository webhookRepository, SysMessageService sysMessageService) {
         this.dingNotify = dingNotify;
-        this.notifyReceiverRepository = notifyReceiverRepository;
+        this.webhookRepository = webhookRepository;
         this.sysMessageService = sysMessageService;
     }
 
     public <T> void notify(T msg) {
         String receiver;
         if (msg instanceof DingMsg) {
-            NotifyReceiver notifyReceiver = notifyReceiverRepository.findByTypeAndSetdefaultIsTrue(NotifyType.webhook.getName());
-            if (notifyReceiver != null) {
-                receiver = notifyReceiver.getUrl();
+            Webhook webhook = webhookRepository.findByTypeAndSetdefaultIsTrue(NotifyType.webhook.getName());
+            if (webhook != null) {
+                receiver = webhook.getUrl();
                 DingMsg dingMsg = (DingMsg) msg;
                 threadPool.execute(new NotifyTask<>(sysMessageService, dingNotify, receiver, dingMsg));
             }
         } else if (msg instanceof EmailMsg) {
-            /*NotifyReceiver notifyReceiver = notifyReceiverRepository.findByTypeAndSetdefaultIsTrue(NotifyType.email.getName());
+            /*Webhook notifyReceiver = webhookRepository.findByTypeAndSetdefaultIsTrue(NotifyType.email.getName());
             if (notifyReceiver != null) {
                 receiver = notifyReceiver.getUrl();
                 EmailMsg emailMsg = (EmailMsg) msg;

+ 0 - 2
mgr/src/main/resources/templates/admin/notify/receiver.html

@@ -37,8 +37,6 @@
                     <td>
                         <a class="ajax-post" th:attr="data-msg='确定将 '+ ${item.name} + ' 设为默认?'"
                            th:href="@{'/sys/receiver/default/' + ${item.name}}">设为默认</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.name} + '?'"
-                           th:href="@{'/sys/receiver/delete/' + ${item.name}}">删除</a>
                     </td>
                 </tr>
                 </tbody>

+ 3 - 3
mgr/src/main/resources/templates/admin/notify/receiveredit.html

@@ -9,19 +9,19 @@
         <div class="layui-form-item">
             <label class="layui-form-label required">通知类型</label>
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="type" required readonly th:value="${notifyReceiver.type}">
+                <input class="layui-input" type="text" name="type" required readonly th:value="${webhook.type}">
             </div>
         </div>
         <div class="layui-form-item">
             <label class="layui-form-label required">通知名字</label>
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="name" required th:value="${notifyReceiver.name}">
+                <input class="layui-input" type="text" name="name" required th:value="${webhook.name}">
             </div>
         </div>
         <div class="layui-form-item">
             <label class="layui-form-label required">接收者地址</label>
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="url" required th:value="${notifyReceiver.url}">
+                <input class="layui-input" type="text" name="url" required th:value="${webhook.url}">
             </div>
         </div>
         <div class="layui-form-item timo-finally">