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]

Reply via email to