소스 검색

fixed collect patent

zero 1 년 전
부모
커밋
7cfa4b0832

+ 7 - 1
src/main/java/com/example/xiaoshiweixinback/controller/PatentController.java

@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.List;
 
 
@@ -87,7 +88,12 @@ public class PatentController {
     @Operation(summary = "收藏专利--zero")
     @PostMapping(value = "/collectPatent")
     public Response collectPatent(@RequestBody CollectPatentDTO patentDTO) throws Exception {
-        boolean b = esPatentService.collectPatent(patentDTO);
+        boolean b = false;
+        try {
+            b = esPatentService.collectPatent(patentDTO);
+        } catch (IOException e) {
+            return Response.error(e.getMessage());
+        }
         return Response.success(b);
     }
 

+ 24 - 24
src/main/java/com/example/xiaoshiweixinback/service/importPatent/EsPatentService.java

@@ -24,6 +24,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -65,24 +66,24 @@ public class EsPatentService {
                 .eq(AssoPersonProduct::getPersonUuid, uuid));
         Integer personProductId = assoPersonProduct.getId();
         //判断该专利是否已经被收藏
-        boolean b = this.selectPatentByProductId(personProductId);
-        if (!b) {
-            return true;
-        }
+        List<String> patentNoList = this.selectPatentByProductId(personProductId);
+        patentNos.removeAll(patentNoList);
         //根据专利号获取专利id
         List<String> list = new ArrayList<>();
-        for (String patentNo : patentNos) {
-            String patentId = this.selectPatentByPatentNo(patentNo);
-            Patent patent = new Patent();
-            patent.setProductId(personProductId);
-            PatentJoin patentJoin = new PatentJoin();
-            patentJoin.setParent(patentId);
-            patentJoin.setName("product");
-            patent.setPatentJoin(patentJoin);
-            try {
-                String id = esService.addChildPatent(patent, patentId);
-                list.add(id);
-            } catch (Exception e) {
+        if (!CollectionUtils.isEmpty(patentNos)) {
+            for (String patentNo : patentNos) {
+                String patentId = this.selectPatentByPatentNo(patentNo);
+                Patent patent = new Patent();
+                patent.setProductId(personProductId);
+                PatentJoin patentJoin = new PatentJoin();
+                patentJoin.setParent(patentId);
+                patentJoin.setName("product");
+                patent.setPatentJoin(patentJoin);
+                try {
+                    String id = esService.addChildPatent(patent, patentId);
+                    list.add(id);
+                } catch (Exception e) {
+                }
             }
         }
         if (ToolUtil.equals(list.size(), patentNos.size())) {
@@ -119,8 +120,8 @@ public class EsPatentService {
      * @return
      * @throws IOException
      */
-    public boolean selectPatentByProductId(Integer personProductId) throws IOException {
-        boolean flag = false;
+    public List<String> selectPatentByProductId(Integer personProductId) throws IOException {
+        List<String> list = new ArrayList<>();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("wxpatent");
@@ -129,12 +130,11 @@ public class EsPatentService {
         builder.query(query);
         builder.size(10);
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-        long count = response.hits().total().value();
-        if (count > 0) {
-            flag = true;
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            Patent patent = hit.source();
+            list.add(patent.getPatentNo());
         }
-//        List<Hit<Patent>> hits = response.hits().hits();
-//        int size = hits.size();
-        return flag;
+        return list;
     }
 }

+ 6 - 9
src/test/java/com/example/xiaoshiweixinback/XiaoshiWeixinbackApplicationTests.java

@@ -9,8 +9,10 @@ import org.springframework.context.annotation.Lazy;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
 
 @SpringBootTest
@@ -69,14 +71,9 @@ class XiaoshiWeixinbackApplicationTests {
 
     @Test
     public void test1() {
-        // 获取当前时间
-        LocalDateTime now = LocalDateTime.now();
-        now.format(DateTimeFormatter.ISO_DATE);
-        // 减去三年
-        LocalDateTime threeYearsAgo = now.minusYears(3);
-
-        // 打印结果
-        System.out.println("当前时间: " + now);
-        System.out.println("三年前的时间: " + threeYearsAgo);
+        List<String> list = Arrays.asList("A", "B", "C");
+        List<String> list1 = Arrays.asList("a", "C", "D", "F");
+        list.removeAll(list1);
+        System.out.println(list);
     }
 }