Bladeren bron

update sys.controller

reghao 1 jaar geleden
bovenliggende
commit
95c94af6c3

+ 6 - 38
web/src/main/java/cn/reghao/devops/web/sys/controller/EmailAccountController.java → web/src/main/java/cn/reghao/devops/web/sys/controller/EmailController.java

@@ -1,6 +1,5 @@
 package cn.reghao.devops.web.sys.controller;
 
-import cn.reghao.devops.web.util.db.PageSort;
 import cn.reghao.devops.web.sys.db.repository.EmailAccountRepository;
 import cn.reghao.devops.web.sys.db.repository.NotifyReceiverRepository;
 import cn.reghao.devops.web.sys.model.vo.NotifyType;
@@ -9,11 +8,7 @@ import cn.reghao.devops.web.sys.model.po.NotifyReceiver;
 import cn.reghao.jutil.jdk.result.WebResult;
 import cn.reghao.jutil.jdk.string.StringRegexp;
 import io.swagger.annotations.Api;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
 import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,39 +18,20 @@ import java.util.List;
  * @author reghao
  * @date 2024-01-26 20:52:54
  */
-@Api(tags = "邮件帐号接收页面")
-@Controller
-@RequestMapping("/sys/notify/email")
-public class EmailAccountController {
+@Api(tags = "邮件帐号管理接口")
+@RestController
+@RequestMapping("/api/sys/notify/email")
+public class EmailController {
     private final NotifyReceiverRepository notifyReceiverRepository;
     private final EmailAccountRepository emailAccountRepository;
 
-    public EmailAccountController(NotifyReceiverRepository notifyReceiverRepository,
-                                  EmailAccountRepository emailAccountRepository) {
+    public EmailController(NotifyReceiverRepository notifyReceiverRepository,
+                           EmailAccountRepository emailAccountRepository) {
         this.notifyReceiverRepository = notifyReceiverRepository;
         this.emailAccountRepository = emailAccountRepository;
     }
 
-    @GetMapping("")
-    public String emailIndex(Model model) {
-        PageRequest pageRequest = PageSort.pageRequest();
-        Page<EmailAccount> page = emailAccountRepository.findAll(pageRequest);
-        page.getContent().forEach(emailAccount -> {
-            emailAccount.setPassword("******");
-        });
-
-        model.addAttribute("page", page);
-        model.addAttribute("list", page.getContent());
-        return "/sys/notify/email";
-    }
-
-    @GetMapping("/add")
-    public String emailAdd(Model model) {
-        return "/sys/notify/emailadd";
-    }
-
     @PostMapping(value = "/save", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
     public String saveReceiver(@Validated EmailAccount emailAccount) {
         String email = emailAccount.getUsername();
         boolean matched = StringRegexp.matchEmail(email);
@@ -78,15 +54,7 @@ public class EmailAccountController {
         return WebResult.success();
     }
 
-    @GetMapping("/edit/{username}")
-    public String emailEdit(@PathVariable("username") String username, Model model) throws Exception {
-        List<EmailAccount> list = emailAccountRepository.findAll();
-        model.addAttribute("emailAccount", list.get(0));
-        return "/sys/notify/emailadd";
-    }
-
     @DeleteMapping(value = "/delete/{username}", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
     public String deleteEmail(@PathVariable("username") String username) {
         NotifyReceiver notifyReceiver = notifyReceiverRepository.findByType(NotifyType.email.name());
         if (notifyReceiver != null) {

+ 0 - 86
web/src/main/java/cn/reghao/devops/web/sys/controller/FileController.java

@@ -1,86 +0,0 @@
-package cn.reghao.devops.web.sys.controller;
-
-import cn.reghao.devops.web.sys.model.po.DiskFile;
-import cn.reghao.devops.web.sys.service.FileService;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.jutil.web.ServletUtil;
-import org.springframework.data.domain.Page;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2024-01-20 17:24:58
- */
-@Controller
-public class FileController {
-    private final FileService fileService;
-
-    public FileController(FileService fileService) {
-        this.fileService = fileService;
-    }
-
-    @GetMapping("/file/**")
-    @ResponseBody
-    public void getFile() throws IOException {
-        HttpServletRequest servletRequest = ServletUtil.getRequest();
-        String uri = servletRequest.getRequestURI();
-        String uri1 = URLDecoder.decode(uri, StandardCharsets.UTF_8);
-        String objectName =  uri1.replaceFirst("/", "");
-        fileService.getFile(objectName);
-    }
-
-    @GetMapping("/admin/file/list")
-    public String list(ModelMap model, HttpServletRequest request) {
-        int pageNumber = Integer.parseInt(ServletUtil.getRequestParam("pageNo", "1"));
-        Page<DiskFile> page = fileService.getDiskFiles(pageNumber);
-        page.getContent().forEach(fileMeta -> {
-            String objectName = fileMeta.getObjectName();
-            fileMeta.setObjectName(String.format("/%s", objectName));
-        });
-
-        model.put("page", page);
-        return "/admin/file/imglist";
-    }
-
-    @GetMapping("/admin/file/upload")
-    public String upload(ModelMap model, HttpServletRequest request) {
-        model.put("id", 1);
-        return "/admin/file/fileupload";
-    }
-
-    @PostMapping(value = "/admin/file/upload/image", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String uploadImage(MultipartFile file) throws Exception {
-        String url = fileService.putFile(file);
-        Map<String, String> map = new HashMap<>();
-        map.put("name", file.getOriginalFilename());
-        map.put("url", url);
-        return WebResult.success(map);
-    }
-
-    @PostMapping(value = "/admin/file/upload/images", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String uploadImages(@RequestParam("files") List<MultipartFile> files) {
-        files.forEach(file -> {
-            try {
-                fileService.putFile(file);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        });
-
-        return WebResult.success();
-    }
-}

+ 6 - 35
web/src/main/java/cn/reghao/devops/web/sys/controller/NotifyReceiverController.java → web/src/main/java/cn/reghao/devops/web/sys/controller/ReceiverController.java

@@ -1,6 +1,5 @@
 package cn.reghao.devops.web.sys.controller;
 
-import cn.reghao.devops.web.util.db.PageSort;
 import cn.reghao.devops.web.sys.db.repository.EmailAccountRepository;
 import cn.reghao.devops.web.sys.db.repository.NotifyReceiverRepository;
 import cn.reghao.devops.web.sys.model.vo.NotifyType;
@@ -9,11 +8,7 @@ import cn.reghao.devops.web.sys.model.po.NotifyReceiver;
 import cn.reghao.jutil.jdk.result.WebResult;
 import cn.reghao.jutil.jdk.string.StringRegexp;
 import io.swagger.annotations.Api;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
 import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,35 +18,20 @@ import java.util.List;
  * @author reghao
  * @date 2024-01-26 20:32:24
  */
-@Api(tags = "通知接收页面")
-@Controller
-@RequestMapping("/sys/notify/receiver")
-public class NotifyReceiverController {
+@Api(tags = "通知接收接口")
+@RestController
+@RequestMapping("/api/sys/notify/receiver")
+public class ReceiverController {
     private final NotifyReceiverRepository notifyReceiverRepository;
     private final EmailAccountRepository emailAccountRepository;
 
-    public NotifyReceiverController(NotifyReceiverRepository notifyReceiverRepository,
-                                    EmailAccountRepository emailAccountRepository) {
+    public ReceiverController(NotifyReceiverRepository notifyReceiverRepository,
+                              EmailAccountRepository emailAccountRepository) {
         this.notifyReceiverRepository = notifyReceiverRepository;
         this.emailAccountRepository = emailAccountRepository;
     }
 
-    @GetMapping("")
-    public String receiverIndex(Model model) throws Exception {
-        PageRequest pageRequest = PageSort.pageRequest();
-        Page<NotifyReceiver> page = notifyReceiverRepository.findAll(pageRequest);
-        model.addAttribute("page", page);
-        model.addAttribute("list", page.getContent());
-        return "/sys/notify/receiver";
-    }
-
-    @GetMapping("/add")
-    public String receiverAdd(Model model) throws Exception {
-        return "/sys/notify/receiveradd";
-    }
-
     @PostMapping(value = "/save", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
     public String saveReceiver(@Validated NotifyReceiver notifyReceiver) {
         String type = notifyReceiver.getType();
         NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByType(type);
@@ -77,15 +57,7 @@ public class NotifyReceiverController {
         return WebResult.success();
     }
 
-    @GetMapping("/edit/{name}")
-    public String receiverEdit(@PathVariable("name") String name, Model model) throws Exception {
-        NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
-        model.addAttribute("notifyReceiver", notifyReceiver);
-        return "/sys/notify/receiveredit";
-    }
-
     @PostMapping(value = "/edit", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
     public String editReceiver(@Validated NotifyReceiver notifyReceiver) {
         String name = notifyReceiver.getName();
         NotifyReceiver notifyReceiver1 = notifyReceiverRepository.findByName(name);
@@ -100,7 +72,6 @@ public class NotifyReceiverController {
     }
 
     @DeleteMapping(value = "/delete/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
     public String deleteReceiver(@PathVariable("name") String name) {
         NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
         if (notifyReceiver != null) {

+ 32 - 0
web/src/main/java/cn/reghao/devops/web/sys/controller/SysMessageController.java

@@ -0,0 +1,32 @@
+package cn.reghao.devops.web.sys.controller;
+
+import cn.reghao.devops.web.sys.service.SysMessageService;
+import cn.reghao.jutil.jdk.result.WebResult;
+import io.swagger.annotations.Api;
+import org.springframework.http.MediaType;
+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;
+
+/**
+ * @author reghao
+ * @date 2024-07-30 10:03:22
+ */
+@Api(tags = "系统消息接口")
+@RestController
+@RequestMapping("/api/sys")
+public class SysMessageController {
+    private final SysMessageService sysMessageService;
+
+    public SysMessageController(SysMessageService sysMessageService) {
+        this.sysMessageService = sysMessageService;
+    }
+
+    @PostMapping(value = "/message/clear", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String clearMessage() {
+        sysMessageService.clearUnread();
+        return WebResult.success();
+    }
+}

+ 53 - 0
web/src/main/java/cn/reghao/devops/web/sys/controller/page/EmailPageController.java

@@ -0,0 +1,53 @@
+package cn.reghao.devops.web.sys.controller.page;
+
+import cn.reghao.devops.web.sys.db.repository.EmailAccountRepository;
+import cn.reghao.devops.web.sys.model.po.EmailAccount;
+import cn.reghao.devops.web.util.db.PageSort;
+import io.swagger.annotations.Api;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author reghao
+ * @date 2024-01-26 20:52:54
+ */
+@Api(tags = "邮件帐号管理页面")
+@Controller
+@RequestMapping("/sys/notify/email")
+public class EmailPageController {
+    private final EmailAccountRepository emailAccountRepository;
+
+    public EmailPageController(EmailAccountRepository emailAccountRepository) {
+        this.emailAccountRepository = emailAccountRepository;
+    }
+
+    @GetMapping("")
+    public String emailIndex(Model model) {
+        PageRequest pageRequest = PageSort.pageRequest();
+        Page<EmailAccount> page = emailAccountRepository.findAll(pageRequest);
+        page.getContent().forEach(emailAccount -> {
+            emailAccount.setPassword("******");
+        });
+
+        model.addAttribute("page", page);
+        model.addAttribute("list", page.getContent());
+        return "/sys/notify/email";
+    }
+
+    @GetMapping("/add")
+    public String emailAdd(Model model) {
+        return "/sys/notify/emailadd";
+    }
+
+    @GetMapping("/edit/{username}")
+    public String emailEdit(@PathVariable("username") String username, Model model) throws Exception {
+        List<EmailAccount> list = emailAccountRepository.findAll();
+        model.addAttribute("emailAccount", list.get(0));
+        return "/sys/notify/emailadd";
+    }
+}

+ 47 - 0
web/src/main/java/cn/reghao/devops/web/sys/controller/page/ReceiverPageController.java

@@ -0,0 +1,47 @@
+package cn.reghao.devops.web.sys.controller.page;
+
+import cn.reghao.devops.web.sys.db.repository.NotifyReceiverRepository;
+import cn.reghao.devops.web.sys.model.po.NotifyReceiver;
+import cn.reghao.devops.web.util.db.PageSort;
+import io.swagger.annotations.Api;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author reghao
+ * @date 2024-01-26 20:32:24
+ */
+@Api(tags = "通知接收页面")
+@Controller
+@RequestMapping("/sys/notify/receiver")
+public class ReceiverPageController {
+    private final NotifyReceiverRepository notifyReceiverRepository;
+
+    public ReceiverPageController(NotifyReceiverRepository notifyReceiverRepository) {
+        this.notifyReceiverRepository = notifyReceiverRepository;
+    }
+
+    @GetMapping("")
+    public String receiverIndex(Model model) throws Exception {
+        PageRequest pageRequest = PageSort.pageRequest();
+        Page<NotifyReceiver> page = notifyReceiverRepository.findAll(pageRequest);
+        model.addAttribute("page", page);
+        model.addAttribute("list", page.getContent());
+        return "/sys/notify/receiver";
+    }
+
+    @GetMapping("/add")
+    public String receiverAdd(Model model) throws Exception {
+        return "/sys/notify/receiveradd";
+    }
+
+    @GetMapping("/edit/{name}")
+    public String receiverEdit(@PathVariable("name") String name, Model model) throws Exception {
+        NotifyReceiver notifyReceiver = notifyReceiverRepository.findByName(name);
+        model.addAttribute("notifyReceiver", notifyReceiver);
+        return "/sys/notify/receiveredit";
+    }
+}

+ 28 - 0
web/src/main/java/cn/reghao/devops/web/sys/controller/page/SysLogPageController.java

@@ -0,0 +1,28 @@
+package cn.reghao.devops.web.sys.controller.page;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author reghao
+ * @date 2021-04-04 21:24:18
+ */
+@Api(tags = "系统日志页面")
+@Controller
+@RequestMapping("/sys/log")
+public class SysLogPageController {
+    @ApiOperation(value = "系统运行日志页面")
+    @GetMapping("/rt")
+    public String runtimeLogPage() {
+        return "/sys/rtlog";
+    }
+
+    @ApiOperation(value = "系统访问日志页面")
+    @GetMapping("/access")
+    public String accessLogPage() {
+        return "/sys/accesslog";
+    }
+}

+ 8 - 18
web/src/main/java/cn/reghao/devops/web/sys/controller/SysPageController.java → web/src/main/java/cn/reghao/devops/web/sys/controller/page/SysMessagePageController.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.web.sys.controller;
+package cn.reghao.devops.web.sys.controller.page;
 
 import cn.reghao.devops.web.sys.model.po.SysMessage;
 import cn.reghao.devops.web.sys.db.repository.SysMessageRepository;
@@ -11,34 +11,24 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
 
 /**
  * @author reghao
  * @date 2021-04-04 21:24:18
  */
-@Api(tags = "系统页面")
+@Api(tags = "系统消息页面")
 @Controller
-public class SysPageController {
+@RequestMapping("/sys/message")
+public class SysMessagePageController {
     private final SysMessageRepository sysMessageRepository;
 
-    public SysPageController(SysMessageRepository sysMessageRepository) {
+    public SysMessagePageController(SysMessageRepository sysMessageRepository) {
         this.sysMessageRepository = sysMessageRepository;
     }
 
-    @ApiOperation(value = "系统运行日志页面")
-    @GetMapping("/sys/log/rt")
-    public String runtimeLogPage() {
-        return "/sys/rtlog";
-    }
-
-    @ApiOperation(value = "系统访问日志页面")
-    @GetMapping("/sys/log/access")
-    public String accessLogPage() {
-        return "/sys/accesslog";
-    }
-
     @ApiOperation(value = "系统消息页面")
-    @GetMapping("/sys/message")
+    @GetMapping("")
     public String messagePage(Model model) {
         PageRequest pageRequest = PageRequest.of(0, 10, Sort.by(Sort.Direction.DESC, "createTime"));
         Page<SysMessage> page = sysMessageRepository.findByUnreadIsTrue(pageRequest);
@@ -48,7 +38,7 @@ public class SysPageController {
     }
 
     @ApiOperation(value = "系统消息内容")
-    @GetMapping("/sys/message/detail/{id}")
+    @GetMapping("/detail/{id}")
     public String messageDetail(@PathVariable("id") int id, Model model) {
         SysMessage sysMessage = sysMessageRepository.findById(id).orElse(null);
         String content = "";

+ 39 - 0
web/src/main/java/cn/reghao/devops/web/sys/service/SysMessageService.java

@@ -0,0 +1,39 @@
+package cn.reghao.devops.web.sys.service;
+
+import cn.reghao.devops.web.sys.db.repository.SysMessageRepository;
+import cn.reghao.devops.web.sys.model.po.SysMessage;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author reghao
+ * @date 2024-07-30 10:06:13
+ */
+@Service
+public class SysMessageService {
+    private final SysMessageRepository sysMessageRepository;
+
+    public SysMessageService(SysMessageRepository sysMessageRepository) {
+        this.sysMessageRepository = sysMessageRepository;
+    }
+
+    public void clearUnread() {
+        List<SysMessage> list = sysMessageRepository.findByUnreadIsTrue(PageRequest.of(0, 100)).getContent();
+        if (!list.isEmpty()) {
+            list.forEach(sysMessage -> sysMessage.setUnread(false));
+            sysMessageRepository.saveAll(list);
+        }
+    }
+
+    public SysMessage getSysMessage(int id) {
+        SysMessage sysMessage = sysMessageRepository.findById(id).orElse(null);
+        if (sysMessage != null) {
+            sysMessage.setUnread(false);
+            sysMessageRepository.save(sysMessage);
+        }
+
+        return sysMessage;
+    }
+}

+ 1 - 1
web/src/main/resources/templates/sys/notify/email.html

@@ -40,7 +40,7 @@
                         <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/email/edit/'+${item.username}}"
                            data-size="640,480" href="#">编辑</a>
                         <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.username} + '?'"
-                           th:href="@{'/sys/notify/email/delete/' + ${item.username}}">删除</a>
+                           th:href="@{'/api/sys/notify/email/delete/' + ${item.username}}">删除</a>
                     </td>
                 </tr>
                 </tbody>

+ 1 - 1
web/src/main/resources/templates/sys/notify/emailadd.html

@@ -5,7 +5,7 @@
 
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/api/sys/notify/email}">
+    <form th:action="@{/api/sys/notify/email/save}">
         <div class="layui-form-item">
             <label class="layui-form-label required">SMTP</label>
             <div class="layui-input-inline">

+ 1 - 1
web/src/main/resources/templates/sys/notify/receiver.html

@@ -38,7 +38,7 @@
                         <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/receiver/edit/'+${item.name}}"
                            data-size="640,480" href="#">编辑</a>
                         <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.name} + '?'"
-                           th:href="@{'/sys/notify/receiver/delete/' + ${item.name}}">删除</a>
+                           th:href="@{'/api/sys/notify/receiver/delete/' + ${item.name}}">删除</a>
                     </td>
                 </tr>
                 </tbody>

+ 1 - 1
web/src/main/resources/templates/sys/notify/receiveradd.html

@@ -5,7 +5,7 @@
 
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/sys/notify/receiver/save}">
+    <form th:action="@{/api/sys/notify/receiver/save}">
         <div class="layui-form-item">
             <label class="layui-form-label required">通知类型</label>
             <div class="layui-input-inline">

+ 1 - 1
web/src/main/resources/templates/sys/notify/receiveredit.html

@@ -5,7 +5,7 @@
 
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/sys/notify/receiver/edit}">
+    <form th:action="@{/api/sys/notify/receiver/edit}">
         <div class="layui-form-item">
             <label class="layui-form-label required">通知类型</label>
             <div class="layui-input-inline">

+ 11 - 2
web/src/main/resources/templates/sys/sysmsg.html

@@ -9,6 +9,17 @@
         <i class="layui-icon layui-icon-refresh refresh-btn"></i>
     </div>
     <div class="layui-card-body">
+        <div class="layui-row timo-card-screen put-row">
+            <div class="layui-row timo-card-screen put-row">
+                <div class="pull-right">
+                    <div class="btn-group-right">
+                        <button class="layui-btn">
+                            <i class="fa fa-recycle"><a class="ajax-post" th:href="@{/api/sys/message/clear}">清空消息</a></i>
+                        </button>
+                    </div>
+                </div>
+            </div>
+        </div>
         <div class="timo-table-wrap">
             <table class="layui-table timo-table">
                 <thead>
@@ -27,8 +38,6 @@
                     <td>
                         <a class="open-popup" data-title="消息内容" th:attr="data-url=@{'/sys/message/detail/'+${item.id}}"
                            data-size="960,480" href="#">查看</a>
-                        <!--<a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.id} + ' 机器?'"
-                           th:href="@{'/api/sys/msg/' + ${item.id}}">删除</a>-->
                     </td>
                 </tr>
                 </tbody>