This is an automated email from the ASF dual-hosted git repository.
zhengqiwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git
The following commit(s) were added to refs/heads/master by this push:
new 861e9d377 [refactor] move code from TagController to TagService (#2418)
861e9d377 is described below
commit 861e9d377ffcd12f61763ff57d050d7f892f5a2d
Author: kangli <[email protected]>
AuthorDate: Wed Jul 31 00:31:08 2024 +0800
[refactor] move code from TagController to TagService (#2418)
Co-authored-by: Calvin <[email protected]>
---
.../manager/controller/TagController.java | 37 +---------------------
.../hertzbeat/manager/service/TagService.java | 10 +++---
.../manager/service/impl/TagServiceImpl.java | 35 +++++++++++++++++++-
.../hertzbeat/manager/service/TagServiceTest.java | 8 ++---
4 files changed, 43 insertions(+), 47 deletions(-)
diff --git
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/TagController.java
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/TagController.java
index cbcf52c14..e7f793239 100644
---
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/TagController.java
+++
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/TagController.java
@@ -20,9 +20,7 @@ package org.apache.hertzbeat.manager.controller;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
-import jakarta.persistence.criteria.Predicate;
import jakarta.validation.Valid;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
@@ -31,8 +29,6 @@ import org.apache.hertzbeat.common.entity.manager.Tag;
import org.apache.hertzbeat.manager.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -83,38 +79,7 @@ public class TagController {
@Parameter(description = "Tag type", example = "0")
@RequestParam(required = false) Byte type,
@Parameter(description = "List current page", example = "0")
@RequestParam(defaultValue = "0") int pageIndex,
@Parameter(description = "Number of list pagination", example =
"8") @RequestParam(defaultValue = "8") int pageSize) {
- // Get tag information
- Specification<Tag> specification = (root, query, criteriaBuilder) -> {
- List<Predicate> andList = new ArrayList<>();
- if (type != null) {
- Predicate predicateApp =
criteriaBuilder.equal(root.get("type"), type);
- andList.add(predicateApp);
- }
- Predicate[] andPredicates = new Predicate[andList.size()];
- Predicate andPredicate =
criteriaBuilder.and(andList.toArray(andPredicates));
-
- List<Predicate> orList = new ArrayList<>();
- if (search != null && !search.isEmpty()) {
- Predicate predicateName =
criteriaBuilder.like(root.get("name"), "%" + search + "%");
- orList.add(predicateName);
- Predicate predicateValue =
criteriaBuilder.like(root.get("tagValue"), "%" + search + "%");
- orList.add(predicateValue);
- }
- Predicate[] orPredicates = new Predicate[orList.size()];
- Predicate orPredicate =
criteriaBuilder.or(orList.toArray(orPredicates));
-
- if (andPredicates.length == 0 && orPredicates.length == 0) {
- return query.where().getRestriction();
- } else if (andPredicates.length == 0) {
- return orPredicate;
- } else if (orPredicates.length == 0) {
- return andPredicate;
- } else {
- return query.where(andPredicate, orPredicate).getRestriction();
- }
- };
- PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
- Page<Tag> alertPage = tagService.getTags(specification, pageRequest);
+ Page<Tag> alertPage = tagService.getTags(search, type, pageIndex,
pageSize);
Message<Page<Tag>> message = Message.success(alertPage);
return ResponseEntity.ok(message);
}
diff --git
a/manager/src/main/java/org/apache/hertzbeat/manager/service/TagService.java
b/manager/src/main/java/org/apache/hertzbeat/manager/service/TagService.java
index e6d6c5f88..4e9f399cb 100644
--- a/manager/src/main/java/org/apache/hertzbeat/manager/service/TagService.java
+++ b/manager/src/main/java/org/apache/hertzbeat/manager/service/TagService.java
@@ -23,8 +23,6 @@ import java.util.Set;
import org.apache.hertzbeat.common.entity.manager.Monitor;
import org.apache.hertzbeat.common.entity.manager.Tag;
import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
/**
* tag service
@@ -45,11 +43,13 @@ public interface TagService {
/**
* get tag page list
- * @param specification Query condition
- * @param pageRequest Paging condition
+ * @param search Tag content search
+ * @param type Tag type
+ * @param pageIndex List current page
+ * @param pageSize Number of list pagination
* @return Tags
*/
- Page<Tag> getTags(Specification<Tag> specification, PageRequest
pageRequest);
+ Page<Tag> getTags(String search, Byte type, int pageIndex, int pageSize);
/**
* delete tags
diff --git
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/TagServiceImpl.java
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/TagServiceImpl.java
index 479de1c47..74f555644 100644
---
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/TagServiceImpl.java
+++
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/TagServiceImpl.java
@@ -17,6 +17,8 @@
package org.apache.hertzbeat.manager.service.impl;
+import jakarta.persistence.criteria.Predicate;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
@@ -69,7 +71,38 @@ public class TagServiceImpl implements TagService {
}
@Override
- public Page<Tag> getTags(Specification<Tag> specification, PageRequest
pageRequest) {
+ public Page<Tag> getTags(String search, Byte type, int pageIndex, int
pageSize) {
+ // Get tag information
+ Specification<Tag> specification = (root, query, criteriaBuilder) -> {
+ List<Predicate> andList = new ArrayList<>();
+ if (type != null) {
+ Predicate predicateApp =
criteriaBuilder.equal(root.get("type"), type);
+ andList.add(predicateApp);
+ }
+ Predicate[] andPredicates = new Predicate[andList.size()];
+ Predicate andPredicate =
criteriaBuilder.and(andList.toArray(andPredicates));
+
+ List<Predicate> orList = new ArrayList<>();
+ if (search != null && !search.isEmpty()) {
+ Predicate predicateName =
criteriaBuilder.like(root.get("name"), "%" + search + "%");
+ orList.add(predicateName);
+ Predicate predicateValue =
criteriaBuilder.like(root.get("tagValue"), "%" + search + "%");
+ orList.add(predicateValue);
+ }
+ Predicate[] orPredicates = new Predicate[orList.size()];
+ Predicate orPredicate =
criteriaBuilder.or(orList.toArray(orPredicates));
+
+ if (andPredicates.length == 0 && orPredicates.length == 0) {
+ return query.where().getRestriction();
+ } else if (andPredicates.length == 0) {
+ return orPredicate;
+ } else if (orPredicates.length == 0) {
+ return andPredicate;
+ } else {
+ return query.where(andPredicate, orPredicate).getRestriction();
+ }
+ };
+ PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
return tagDao.findAll(specification, pageRequest);
}
diff --git
a/manager/src/test/java/org/apache/hertzbeat/manager/service/TagServiceTest.java
b/manager/src/test/java/org/apache/hertzbeat/manager/service/TagServiceTest.java
index f8f7bdc73..b5c11f885 100644
---
a/manager/src/test/java/org/apache/hertzbeat/manager/service/TagServiceTest.java
+++
b/manager/src/test/java/org/apache/hertzbeat/manager/service/TagServiceTest.java
@@ -22,11 +22,10 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.ArgumentMatchers.anySet;
+import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.when;
-
import java.util.Collections;
import java.util.HashSet;
import java.util.Optional;
@@ -78,9 +77,8 @@ class TagServiceTest {
@Test
void getTags() {
- Specification<Tag> specification = mock(Specification.class);
- when(tagDao.findAll(specification, PageRequest.of(1,
1))).thenReturn(Page.empty());
- assertNotNull(tagService.getTags(specification, PageRequest.of(1, 1)));
+ when(tagDao.findAll(any(Specification.class),
any(PageRequest.class))).thenReturn(Page.empty());
+ assertNotNull(tagService.getTags(null, null, 1, 10));
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]