This is an automated email from the ASF dual-hosted git repository.

zhaoqingran pushed a commit to branch bulletin
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/bulletin by this push:
     new 5090d24f2 improve
5090d24f2 is described below

commit 5090d24f2fc9676d22e3681f741cd79fd40315b2
Author: zqr10159 <[email protected]>
AuthorDate: Thu Aug 8 17:47:00 2024 +0800

    improve
---
 .../entity/manager/bulletin/BulletinDto.java       |  6 ++++++
 .../manager/controller/BulletinController.java     |  9 +++++----
 .../hertzbeat/manager/service/BulletinService.java |  2 +-
 .../manager/service/impl/BulletinServiceImpl.java  | 23 ++++++++++++++++------
 .../app/routes/bulletin/bulletin.component.html    |  3 +++
 .../src/app/routes/bulletin/bulletin.component.ts  | 12 ++---------
 6 files changed, 34 insertions(+), 21 deletions(-)

diff --git 
a/common/src/main/java/org/apache/hertzbeat/common/entity/manager/bulletin/BulletinDto.java
 
b/common/src/main/java/org/apache/hertzbeat/common/entity/manager/bulletin/BulletinDto.java
index dad6faa75..6f400fc61 100644
--- 
a/common/src/main/java/org/apache/hertzbeat/common/entity/manager/bulletin/BulletinDto.java
+++ 
b/common/src/main/java/org/apache/hertzbeat/common/entity/manager/bulletin/BulletinDto.java
@@ -19,6 +19,7 @@
 package org.apache.hertzbeat.common.entity.manager.bulletin;
 
 import java.util.List;
+import java.util.Map;
 import lombok.Data;
 
 @Data
@@ -39,6 +40,11 @@ public class BulletinDto {
      */
     private List<String> metrics;
 
+    /**
+     * Monitor fields
+     */
+    private List<Map<String, List<String>>> fields;
+
     /**
      * Monitor ids
      */
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/BulletinController.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/BulletinController.java
index b5b4d420b..684f65bb6 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/BulletinController.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/BulletinController.java
@@ -84,11 +84,12 @@ public class BulletinController {
     @PostMapping
     public ResponseEntity<Message<Void>> addNewBulletin(@Valid @RequestBody 
BulletinDto bulletinDto) {
         try {
+            bulletinService.validate(bulletinDto);
             bulletinService.addBulletin(bulletinDto);
         } catch (Exception e) {
-            return ResponseEntity.ok(Message.fail(FAIL_CODE, "Add failed"));
+            return ResponseEntity.ok(Message.fail(FAIL_CODE, "Add failed! " + 
e.getMessage()));
         }
-        return ResponseEntity.ok(Message.success("Add success"));
+        return ResponseEntity.ok(Message.success("Add success!"));
     }
 
     /**
@@ -112,9 +113,9 @@ public class BulletinController {
         try {
             bulletinService.deleteBulletinByName(names);
         }catch (Exception e) {
-            return ResponseEntity.ok(Message.fail(FAIL_CODE, "Delete failed"));
+            return ResponseEntity.ok(Message.fail(FAIL_CODE, "Delete failed!" 
+ e.getMessage()));
         }
-        return ResponseEntity.ok(Message.success("Delete success"));
+        return ResponseEntity.ok(Message.success("Delete success!"));
     }
 
     @GetMapping("/metrics")
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/BulletinService.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/BulletinService.java
index 58110b979..b13fd644b 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/BulletinService.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/BulletinService.java
@@ -35,7 +35,7 @@ public interface BulletinService {
     /**
      * validate Bulletin
      */
-    void validate(Bulletin bulletin, Boolean isModify) throws 
IllegalArgumentException;
+    void validate(BulletinDto bulletindto) throws IllegalArgumentException;
 
     /**
      * List Bulletin
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/BulletinServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/BulletinServiceImpl.java
index 20b3c916a..b1c734ad3 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/BulletinServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/BulletinServiceImpl.java
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.hertzbeat.common.entity.manager.bulletin.BulletinDto;
 import org.apache.hertzbeat.common.entity.manager.bulletin.BulletinVo;
+import org.apache.hertzbeat.common.util.JsonUtil;
 import org.apache.hertzbeat.common.util.SnowFlakeIdGenerator;
 import org.apache.hertzbeat.manager.dao.BulletinDao;
 import org.apache.hertzbeat.common.entity.manager.bulletin.Bulletin;
@@ -57,16 +58,24 @@ public class BulletinServiceImpl implements BulletinService 
{
     /**
      * validate Bulletin
      *
-     * @param bulletin
-     * @param isModify
+     * @param bulletinDto
      */
     @Override
-    public void validate(Bulletin bulletin, Boolean isModify) throws 
IllegalArgumentException {
-        if (bulletin == null) {
+    public void validate(BulletinDto bulletinDto) throws 
IllegalArgumentException {
+        if (bulletinDto == null) {
             throw new IllegalArgumentException("Bulletin cannot be null");
         }
-        if (isModify && bulletin.getId() == null) {
-            throw new IllegalArgumentException("Bulletin id cannot be null");
+        if (bulletinDto.getApp() == null || bulletinDto.getApp().isEmpty()) {
+            throw new IllegalArgumentException("Bulletin app cannot be null or 
empty");
+        }
+        if (bulletinDto.getMetrics() == null || 
bulletinDto.getMetrics().isEmpty()) {
+            throw new IllegalArgumentException("Bulletin metrics cannot be 
null or empty");
+        }
+        if (bulletinDto.getFields() == null || 
bulletinDto.getFields().isEmpty()) {
+            throw new IllegalArgumentException("Bulletin fields cannot be null 
or empty");
+        }
+        if (bulletinDto.getMonitorIds() == null || 
bulletinDto.getMonitorIds().isEmpty()) {
+            throw new IllegalArgumentException("Bulletin monitorIds cannot be 
null or empty");
         }
     }
 
@@ -123,6 +132,8 @@ public class BulletinServiceImpl implements BulletinService 
{
             Bulletin bulletin = new Bulletin();
             bulletin.setName(bulletinDto.getName());
             bulletin.setId(SnowFlakeIdGenerator.generateId());
+            String fields = JsonUtil.toJson(bulletinDto.getFields());
+            bulletin.setFields(fields);
             bulletin.setMetrics(bulletinDto.getMetrics());
             bulletin.setMonitorIds(bulletinDto.getMonitorIds());
             bulletin.setApp(bulletinDto.getApp());
diff --git a/web-app/src/app/routes/bulletin/bulletin.component.html 
b/web-app/src/app/routes/bulletin/bulletin.component.html
index 1c5c4344f..750e8a781 100644
--- a/web-app/src/app/routes/bulletin/bulletin.component.html
+++ b/web-app/src/app/routes/bulletin/bulletin.component.html
@@ -135,6 +135,7 @@
             [(ngModel)]="define.app"
             (nzOnSearch)="onSearchAppDefines()"
             (ngModelChange)="onAppChange($event)"
+            required
           >
             <ng-container *ngFor="let app of appEntries">
               <nz-option *ngIf="isAppListLoading" [nzValue]="app.key" 
[nzLabel]="app.key + '/' + app.value"></nz-option>
@@ -153,6 +154,7 @@
             [(ngModel)]="define.monitorIds"
             (nzOnSearch)="onSearchMonitorsByApp(define.app)"
             nzMode="multiple"
+            required
           >
             <ng-container *ngFor="let monitor of monitors">
               <nz-option *ngIf="isMonitorListLoading" [nzValue]="monitor.id" 
[nzLabel]="monitor.name"></nz-option>
@@ -169,6 +171,7 @@
             [nzShowSelectAll]="false"
             [nzRenderList]="[leftRenderList, null]"
             (nzChange)="transferChange($event)"
+            required
           >
             <ng-template #leftRenderList let-items 
let-onItemSelect="onItemSelect">
               <nz-tree
diff --git a/web-app/src/app/routes/bulletin/bulletin.component.ts 
b/web-app/src/app/routes/bulletin/bulletin.component.ts
index b76d116e8..4de5cb565 100644
--- a/web-app/src/app/routes/bulletin/bulletin.component.ts
+++ b/web-app/src/app/routes/bulletin/bulletin.component.ts
@@ -62,7 +62,7 @@ export class BulletinComponent implements OnInit {
   appEntries: Array<{ value: any; key: string }> = [];
   checkedNodeList: NzTreeNode[] = [];
   monitors: Monitor[] = [];
-  metrics = new Set<string>;
+  metrics = new Set<string>();
   fields: any[] = [];
   pageIndex: number = 1;
   pageSize: number = 8;
@@ -130,6 +130,7 @@ export class BulletinComponent implements OnInit {
   onManageModalOk() {
     this.isManageModalOkLoading = true;
     this.define.metrics = Array.from(this.metrics);
+    this.define.fields = this.fields;
     if (this.isManageModalAdd) {
       const modalOk$ = this.bulletinDefineSvc
         .newBulletinDefine(this.define)
@@ -338,7 +339,6 @@ export class BulletinComponent implements OnInit {
         node.isChecked = true;
         this.metrics.add(node.key);
 
-        // 更新 fields,确保 value 是数组且不重复
         let existingField = this.fields.find(field => field[node.key]);
         if (existingField) {
           if (!existingField[node.key].includes(node.origin.value)) {
@@ -348,8 +348,6 @@ export class BulletinComponent implements OnInit {
           let fields = { [node.key]: [node.origin.value] };
           this.fields.push(fields);
         }
-
-        console.info('node:', this.fields);
       });
     }
     // delete
@@ -359,7 +357,6 @@ export class BulletinComponent implements OnInit {
         node.isChecked = false;
         this.metrics.delete(node.key);
 
-        // 从 fields 中移除相应的值
         let existingField = this.fields.find(field => field[node.key]);
         if (existingField) {
           const index = existingField[node.key].indexOf(node.origin.value);
@@ -371,10 +368,6 @@ export class BulletinComponent implements OnInit {
     }
   }
 
-
-
-
-
   loadData(page: number = 0, size: number = 8) {
     this.tableLoading = true;
     if (this.bulletinName != null) {
@@ -444,7 +437,6 @@ export class BulletinComponent implements OnInit {
       column: groupedData[name].column,
       data: groupedData[name].data
     }));
-    console.info('tabDefines:', this.tabDefines);
   }
 
   getMetricNames(tab: any): string[] {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to