Procházet zdrojové kódy

1.删除无用前端文件
2.更新 notify 相关的类

reghao před 2 roky
rodič
revize
94a812002e
23 změnil soubory, kde provedl 75 přidání a 537 odebrání
  1. 0 7
      agent/bin/agent-dev.json
  2. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/DockerImpl.java
  3. 7 5
      manager/src/main/java/cn/reghao/devops/manager/notification/NotifyReceiver.java
  4. 22 26
      manager/src/main/java/cn/reghao/devops/manager/notification/NotifyService.java
  5. 7 8
      manager/src/main/java/cn/reghao/devops/manager/notification/notifier/email/EmailAccount.java
  6. 2 0
      manager/src/main/java/cn/reghao/devops/manager/notification/notifier/email/EmailNotify.java
  7. 1 1
      manager/src/main/java/cn/reghao/devops/manager/util/aliyun/AliyunCdn.java
  8. 1 1
      manager/src/main/java/cn/reghao/devops/manager/util/aliyun/AliyunOss.java
  9. 9 3
      manager/src/main/resources/application-dev.yml
  10. 0 8
      manager/src/main/resources/application-dev1.yml
  11. 10 4
      manager/src/main/resources/application-test.yml
  12. 0 61
      manager/src/main/resources/templates/sys/notify/ding.html
  13. 0 38
      manager/src/main/resources/templates/sys/notify/dingadd.html
  14. 0 65
      manager/src/main/resources/templates/sys/notify/email.html
  15. 0 50
      manager/src/main/resources/templates/sys/notify/emailadd.html
  16. 0 28
      manager/src/main/resources/templates/sys/notify/notifyreceivers.html
  17. 0 63
      manager/src/main/resources/templates/sys/notify/receiver.html
  18. 0 42
      manager/src/main/resources/templates/sys/notify/receiveradd.html
  19. 0 65
      manager/src/main/resources/templates/sys/notify/sms.html
  20. 0 51
      manager/src/main/resources/templates/sys/notify/smsadd.html
  21. 3 4
      manager/src/test/java/AccountTest.java
  22. 9 3
      manager/src/test/java/AppConfigTest.java
  23. 3 3
      manager/src/test/java/GitTest.java

+ 0 - 7
agent/bin/agent-dev.json

@@ -1,7 +0,0 @@
-{
-  "manager": {
-    "host": "localhost",
-    "port": 4020
-  },
-  "heartbeatInterval": 5
-}

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/DockerImpl.java

@@ -60,7 +60,7 @@ public class DockerImpl implements Docker {
             textFile.write(dockerfile, dockerfileContent);
             String imageId = dockerClient.buildImageCmd()
                     .withDockerfile(dockerfile)
-                    // repoTag 格式为 docker.reghao.cn/devops/manager:12345678
+                    // repoTag 格式为 docker.reghao.cn/devops:12345678
                     .withTags(Set.of(repoTag))
                     .start()
                     .awaitImageId();

+ 7 - 5
manager/src/main/java/cn/reghao/devops/manager/config/WebhookProperties.java → manager/src/main/java/cn/reghao/devops/manager/notification/NotifyReceiver.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.manager.config;
+package cn.reghao.devops.manager.notification;
 
 import lombok.Data;
 import org.springframework.beans.factory.annotation.Value;
@@ -11,10 +11,12 @@ import org.springframework.stereotype.Component;
  */
 @Data
 @Component
-@ConfigurationProperties(prefix = "webhook")
-public class WebhookProperties {
-    @Value("${webhook.name}")
+@ConfigurationProperties(prefix = "receiver")
+public class NotifyReceiver {
+    @Value("${receiver.name}")
     private String name;
-    @Value("${webhook.url}")
+    @Value("${receiver.type}")
+    private String type;
+    @Value("${receiver.url}")
     private String url;
 }

+ 22 - 26
manager/src/main/java/cn/reghao/devops/manager/notification/NotifyService.java

@@ -1,13 +1,12 @@
 package cn.reghao.devops.manager.notification;
 
-import cn.reghao.devops.manager.config.WebhookProperties;
 import cn.reghao.devops.manager.notification.notifier.Notify;
 import cn.reghao.devops.manager.notification.notifier.ding.DingMsg;
+import cn.reghao.devops.manager.notification.notifier.ding.DingNotify;
+import cn.reghao.devops.manager.notification.notifier.email.EmailMsg;
+import cn.reghao.devops.manager.notification.notifier.email.EmailNotify;
 import cn.reghao.jutil.jdk.thread.ThreadPoolWrapper;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.BeanFactoryAware;
 import org.springframework.stereotype.Service;
 
 import java.util.concurrent.ExecutorService;
@@ -20,34 +19,31 @@ import java.util.concurrent.ExecutorService;
  */
 @Slf4j
 @Service
-public class NotifyService implements BeanFactoryAware {
-    private BeanFactory beanFactory;
+public class NotifyService {
     private final ExecutorService threadPool = ThreadPoolWrapper.threadPool("notify-service");
-    private final WebhookProperties webhookProperties;
-    private final Notify notify;
+    private final NotifyReceiver notifyReceiver;
+    private final DingNotify dingNotify;
+    private final EmailNotify emailNotify;
 
-    public NotifyService(WebhookProperties webhookProperties, Notify notify) {
-        this.webhookProperties = webhookProperties;
-        this.notify = notify;
-    }
-
-    @Override
-    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
-        this.beanFactory = beanFactory;
+    public NotifyService(NotifyReceiver notifyReceiver, DingNotify dingNotify, EmailNotify emailNotify) {
+        this.notifyReceiver = notifyReceiver;
+        this.dingNotify = dingNotify;
+        this.emailNotify = emailNotify;
     }
 
     public <T> void notify(T msg) {
-         /*Object object = beanFactory.getBean("webhookProperties");
-         if (object instanceof WebhookProperties) {
-             WebhookProperties webhookProperties = (WebhookProperties) object;
-             DingMsg dingMsg = (DingMsg) msg;
-             String receiver = webhookProperties.getUrl();
-             threadPool.execute(new NotifyTask<DingMsg>(notify, receiver, dingMsg));
-         }*/
+        String receiver = notifyReceiver.getUrl();
+        notify(receiver, msg);
+    }
 
-        DingMsg dingMsg = (DingMsg) msg;
-        String receiver = webhookProperties.getUrl();
-        threadPool.execute(new NotifyTask<DingMsg>(notify, receiver, dingMsg));
+    public <T> void notify(String receiver, T msg) {
+        if (msg instanceof DingMsg) {
+            DingMsg dingMsg = (DingMsg) msg;
+            threadPool.execute(new NotifyTask<>(dingNotify, receiver, dingMsg));
+        } else if (msg instanceof EmailMsg) {
+            EmailMsg emailMsg = (EmailMsg) msg;
+            threadPool.execute(new NotifyTask<>(emailNotify, receiver, emailMsg));
+        }
     }
     /**
      * @param

+ 7 - 8
manager/src/main/java/cn/reghao/devops/manager/notification/notifier/email/EmailAccount.java

@@ -1,20 +1,19 @@
 package cn.reghao.devops.manager.notification.notifier.email;
 
-import lombok.Getter;
-
-import javax.validation.constraints.NotBlank;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
 
 /**
  * @author reghao
  * @date 2023-10-30 14:41:19
  */
-@Getter
+@Data
+@Component
+@ConfigurationProperties(prefix = "email")
 public class EmailAccount {
+    private String smtp;
     private String username;
     private String password;
-    // TODO 验证 HTTP 地址格式
-    @NotBlank(message = "SMTP 地址不能为空白字符串")
-    private String smtp;
-    @NotBlank(message = "邮件显示用户不能为空白字符串")
     private String personal;
 }

+ 2 - 0
manager/src/main/java/cn/reghao/devops/manager/notification/notifier/email/EmailNotify.java

@@ -1,6 +1,7 @@
 package cn.reghao.devops.manager.notification.notifier.email;
 
 import cn.reghao.devops.manager.notification.notifier.Notify;
+import org.springframework.stereotype.Component;
 
 import javax.mail.MessagingException;
 import javax.mail.Session;
@@ -17,6 +18,7 @@ import java.util.Properties;
  * @author reghao
  * @date 2021-02-25 19:23:16
  */
+@Component
 public class EmailNotify implements Notify<EmailMsg> {
     private final String account;
     private final String password;

+ 1 - 1
manager/src/main/java/cn/reghao/devops/manager/aliyun/AliyunCdn.java → manager/src/main/java/cn/reghao/devops/manager/util/aliyun/AliyunCdn.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.manager.aliyun;
+package cn.reghao.devops.manager.util.aliyun;
 
 import com.aliyun.cdn20180510.Client;
 import com.aliyun.cdn20180510.models.DescribeRefreshTasksRequest;

+ 1 - 1
manager/src/main/java/cn/reghao/devops/manager/aliyun/AliyunOss.java → manager/src/main/java/cn/reghao/devops/manager/util/aliyun/AliyunOss.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.manager.aliyun;
+package cn.reghao.devops.manager.util.aliyun;
 
 import java.io.BufferedReader;
 import java.io.File;

+ 9 - 3
manager/src/main/resources/application-dev.yml

@@ -3,6 +3,12 @@ spring:
     url: jdbc:mysql://localhost:3306/reghao_devops_rdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
     username: dev
     password: Dev@123456
-webhook:
-  name: ding-tnb
-  url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662
+receiver:
+  name: ding-msgbot
+  type: webhook
+  url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662
+email:
+  smtp: smtp.163.com
+  username: gisgit@163.com
+  password: sirHdeKYn4PHcMP9
+  personal: admin@devops

+ 0 - 8
manager/src/main/resources/application-dev1.yml

@@ -1,8 +0,0 @@
-spring:
-  datasource:
-    url: jdbc:mysql://localhost:3306/reghao_devops_rdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
-    username: dev
-    password: Dev@123456
-webhook:
-  name: ding-tnb
-  url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662

+ 10 - 4
manager/src/main/resources/application-test.yml

@@ -1,8 +1,14 @@
 spring:
   datasource:
-    url: jdbc:mysql://192.168.0.112:3306/reghao_devops_tdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
+    url: jdbc:mysql://192.168.0.212:3306/reghao_devops_tdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
     username: test
     password: Test@123456
-webhook:
-  name: ding-tnb
-  url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662
+receiver:
+  name: ding-msgbot
+  type: webhook
+  url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662
+email:
+  smtp: smtp.163.com
+  username: gisgit@163.com
+  password: sirHdeKYn4PHcMP9
+  personal: admin@devops

+ 0 - 61
manager/src/main/resources/templates/sys/notify/ding.html

@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 钉钉账户配置</span>
-        <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="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加钉钉账户" th:attr="data-url=@{/sys/notify/ding/add}"
-                            data-size="640,480">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
-                </div>
-            </div>
-        </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="notifyAccountId">账户 ID</th>
-                    <th class="sortable" data-field="username">用户名</th>
-                    <th class="sortable" data-field="password">密码</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.notifyAccountId}">账户 ID</td>
-                    <td th:text="${item.username}">用户名</td>
-                    <td th:text="${item.password}">密码</td>
-                    <td>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/ding/edit/'+${item.id}}"
-                           data-size="640,480" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.notifyAccountId} + '?'"
-                           th:href="@{'/api/sys/notify/ding/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-        <div th:replace="/common/fragment :: page"></div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 38
manager/src/main/resources/templates/sys/notify/dingadd.html

@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{/api/sys/notify/ding}">
-        <input type="hidden" name="id" th:value="${dingAccount?.id}"/>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">账户 ID</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="notifyAccountId" placeholder="请输入账户 ID" required th:value="${dingAccount?.notifyAccountId}">
-            </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="username" placeholder="请输入用户名" required th:value="${dingAccount?.username}">
-            </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="password" placeholder="请输入密码" required th:value="${dingAccount?.password}">
-            </div>
-        </div>
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 65
manager/src/main/resources/templates/sys/notify/email.html

@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 邮件账户配置</span>
-        <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="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加邮件账户" th:attr="data-url=@{/sys/notify/email/add}"
-                            data-size="640,480">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
-                </div>
-            </div>
-        </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="notifyAccountId">账户 ID</th>
-                    <th class="sortable" data-field="username">用户名</th>
-                    <th class="sortable" data-field="password">密码</th>
-                    <th class="sortable" data-field="smtp">SMTP</th>
-                    <th class="sortable" data-field="personal">发件人</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.notifyAccountId}">账户 ID</td>
-                    <td th:text="${item.username}">用户名</td>
-                    <td th:text="${item.password}">密码</td>
-                    <td th:text="${item.smtp}">SMTP</td>
-                    <td th:text="${item.personal}">发件人</td>
-                    <td>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/email/edit/'+${item.id}}"
-                           data-size="640,480" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.notifyAccountId} + '?'"
-                           th:href="@{'/api/sys/notify/email/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-        <div th:replace="/common/fragment :: page"></div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 50
manager/src/main/resources/templates/sys/notify/emailadd.html

@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{/api/sys/notify/email}">
-        <input type="hidden" name="id" th:value="${emailAccount?.id}"/>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">账户 ID</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="notifyAccountId" placeholder="请输入账户 ID" required th:value="${emailAccount?.notifyAccountId}">
-            </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="username" placeholder="请输入用户名" required th:value="${emailAccount?.username}">
-            </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="password" placeholder="请输入密码" required th:value="${emailAccount?.password}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">SMTP</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="smtp" placeholder="请输入 SMTP 地址" required th:value="${emailAccount?.smtp}">
-            </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="personal" placeholder="请输入发件人名字" required th:value="${emailAccount?.personal}">
-            </div>
-        </div>
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 28
manager/src/main/resources/templates/sys/notify/notifyreceivers.html

@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
-</head>
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-bg-gray" style="padding: 30px;">
-        <div class="layui-card-body">
-            <table class="layui-table timo-detail-table">
-                <thead>
-                <tr>
-                    <th class="sortable">行号</th>
-                    <th class="sortable">内容</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item,stat:${list}">
-                    <td th:text="${stat.index}">行号</td>
-                    <td th:text="${item}">接收地址</td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-<script th:replace="/common/template :: script"></script>
-</body>
-</html>

+ 0 - 63
manager/src/main/resources/templates/sys/notify/receiver.html

@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 通知组设置</span>
-        <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="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加接收者" th:attr="data-url=@{/sys/notify/receiver/add}"
-                            data-size="640,480">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
-                </div>
-            </div>
-        </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="notifyType">通知类型</th>
-                    <th class="sortable" data-field="notifyAccountId">通知账户</th>
-                    <th class="sortable" data-field="notifyName">通知名字</th>
-                    <th class="sortable" data-field="receiver">接收地址</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.notifyType}">通知类型</td>
-                    <td th:text="${item.notifyAccountId}">通知账户</td>
-                    <td th:text="${item.notifyName}">通知名字</td>
-                    <td th:text="${item.receiver}">接收地址</td>
-                    <td>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/receiver/edit/'+${item.id}}"
-                           data-size="640,480" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.notifyAccountId} + '?'"
-                           th:href="@{'/api/sys/notify/receiver/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-        <div th:replace="/common/fragment :: page"></div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 42
manager/src/main/resources/templates/sys/notify/receiveradd.html

@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{/api/sys/notify/receiver}">
-        <input type="hidden" name="id" th:value="${notifyGroup?.id}"/>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">通知类型</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="notifyType" placeholder="请输入通知类型" required th:value="${notifyGroup?.notifyType}">
-            </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="notifyAccountId" placeholder="请输入通知账户" th:value="${notifyGroup?.notifyAccountId}">
-            </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="notifyName" placeholder="请输入通知名字" required th:value="${notifyGroup?.notifyName}">
-            </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="receiver" placeholder="请输入接收组者地址" required th:value="${notifyGroup?.receiver}">
-            </div>
-        </div>
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-</body>
-</html>

+ 0 - 65
manager/src/main/resources/templates/sys/notify/sms.html

@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 短信账户配置</span>
-        <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="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加短信账户" th:attr="data-url=@{/sys/notify/sms/add}"
-                            data-size="640,480">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
-                </div>
-            </div>
-        </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="notifyAccountId">账户 ID</th>
-                    <th class="sortable" data-field="username">用户名</th>
-                    <th class="sortable" data-field="password">密码</th>
-                    <th class="sortable" data-field="url">URL</th>
-                    <th class="sortable" data-field="sprdid">sprdid</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.notifyAccountId}">账户 ID</td>
-                    <td th:text="${item.username}">用户名</td>
-                    <td th:text="${item.password}">密码</td>
-                    <td th:text="${item.url}">URL</td>
-                    <td th:text="${item.sprdid}">sprdid</td>
-                    <td>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/notify/sms/edit/'+${item.id}}"
-                           data-size="640,480" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.notifyAccountId} + '?'"
-                           th:href="@{'/api/sys/notify/sms/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-        <div th:replace="/common/fragment :: page"></div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 51
manager/src/main/resources/templates/sys/notify/smsadd.html

@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{/api/sys/notify/sms}">
-        <input type="hidden" name="id" th:value="${smsAccount?.id}"/>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">账户 ID</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="notifyAccountId" placeholder="请输入账户 ID" required th:value="${smsAccount?.notifyAccountId}">
-            </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="username" placeholder="请输入用户名" required th:value="${smsAccount?.username}">
-            </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="password" placeholder="请输入密码" required th:value="${smsAccount?.password}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">URL</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="url" placeholder="请输入URL地址" required th:value="${smsAccount?.url}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">sprdid</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="sprdid" placeholder="请输入 sprdid" required th:value="${smsAccount?.sprdid}">
-            </div>
-        </div>
-        <input class="layui-input" type="hidden" name="scorpid" placeholder="请输入 scorpid" required th:value="${smsAccount?.scorpid}">
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 3 - 4
manager/src/test/java/AccountTest.java

@@ -24,7 +24,7 @@ public class AccountTest {
     @Test
     public void createUserAccount() {
         String username = "admin";
-        String password = "ecUgpUeIX2ub84EYPsiQ";
+        String password = "admin123456";
         String nickname = "";
         int roleId = 1;
 
@@ -38,9 +38,8 @@ public class AccountTest {
 
     @Test
     public void updateUserPassword() {
-        String username = "admin";
-        int userId = 102;
-        String password = "ecUgpUeIX2ub84EYPsiQ";
+        int userId = 101;
+        String password = "admin123456";
         userService.modifyUserPassword(userId, password);
     }
 }

+ 9 - 3
manager/src/test/java/AppConfigTest.java

@@ -6,6 +6,7 @@ import cn.reghao.devops.manager.app.db.repository.config.AppDeployConfigReposito
 import cn.reghao.devops.manager.app.model.po.AppBuilding;
 import cn.reghao.devops.manager.notification.NotifyService;
 import cn.reghao.devops.manager.notification.notifier.ding.DingMsg;
+import cn.reghao.devops.manager.notification.notifier.email.EmailMsg;
 import cn.reghao.devops.manager.util.ConsulNode;
 import cn.reghao.devops.manager.util.ConsulService;
 import lombok.extern.slf4j.Slf4j;
@@ -32,9 +33,14 @@ public class AppConfigTest {
     @Test
     public void notifyTest() throws InterruptedException {
         String title = "通知测试";
-        String text = "应用测试内容";
-        DingMsg dingMsg = new DingMsg(title, text);
-        notifyService.notify(dingMsg);
+        String content = "通知测试内容";
+
+        EmailMsg emailMsg = new EmailMsg(title, content);
+        String receiver = "haosg@outlook.com";
+        notifyService.notify(receiver, emailMsg);
+
+        DingMsg dingMsg = new DingMsg(title, content);
+        //notifyService.notify(dingMsg);
         Thread.sleep(3600_000);
     }
 

+ 3 - 3
manager/src/test/java/GitTest.java

@@ -21,9 +21,9 @@ import java.util.*;
 public class GitTest {
     @Test
     public void gitTest() throws Exception {
-        String repo = "https://git.reghao.cn/reghao/devops.git";
-        String username = "reghao";
-        String password = "gsh";
+        String repo = "";
+        String username = "";
+        String password = "";
 
         RepoAuthConfig repoAuthConfig = new RepoAuthConfig();
         repoAuthConfig.setAuthType(RepoAuthType.http.getName());