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]