chenyi преди 1 година
родител
ревизия
80868730bd

+ 4 - 1
src/main/java/cn/cslg/pas/common/dto/PatentDTO.java

@@ -3,7 +3,10 @@ package cn.cslg.pas.common.dto;
 import cn.cslg.pas.domain.es.Patent;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
-public class PatentDTO extends Patent {
+public class PatentDTO{
     private Long total;
+    private List<Patent> patents;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/common/model/request/MapRequest.java

@@ -9,6 +9,6 @@ import java.util.Map;
 @Data
 @Accessors(chain = true)
 public class MapRequest extends QueryRequest{
-  private List<Map<String,Object>> searchQuery;
+  private Map<String,Object> searchQuery;
 
 }

+ 1 - 0
src/main/java/cn/cslg/pas/common/model/request/QueryRequest.java

@@ -15,4 +15,5 @@ public class QueryRequest {
     private String groupField;
     private String groupFieldValue;
     private List<OrderDTO> orderDTOList;
+    private Integer projectId;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -22,7 +22,7 @@ public class PatentController {
 
     @Operation(summary = "查询专利")
     @PostMapping("/queryPatent")
-    public Response queryEvent(@RequestBody StringRequest stringRequest) throws Exception {
+    public Response queryPatent(@RequestBody StringRequest stringRequest) throws Exception {
         Business business = businessFactory.getClass("patentService");
         Records records = (Records) business.queryMessage(stringRequest);
         return Response.success(records);

+ 9 - 32
src/main/java/cn/cslg/pas/service/business/PatentService.java

@@ -54,53 +54,33 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> implements
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
-        List<PatentDTO> patents = esService.esSearch(queryRequest.getGroupField(), queryRequest.getCurrent().intValue(), queryRequest.getSize().intValue(), null);
+        PatentDTO patents = esService.esSearch(queryRequest);
         Records records = new Records();
         records.setCurrent(queryRequest.getCurrent());
         records.setSize(queryRequest.getSize());
         records.setData(patents);
-        records.setTotal(patents.get(0).getTotal());
+        records.setTotal(patents.getTotal());
         return records;
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Integer addMessage(Object object, List<MultipartFile> files) {
-     return null;
+    public Object addMessage(Object object, List<MultipartFile> files) {
+        return null;
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public Object deleteMessage(List<Integer> ids) throws IOException {
-return  null;
+        return null;
     }
 
-    /**
-     * 更新事件接口
-     *
-     * @param object
-     * @param files
-     * @return
-     */
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public Object updateMessage(Object object, List<MultipartFile> files) {
-return null;
+        return null;
     }
 
-    /**
-     * 查询事件分组信息
-     *
-     * @param groupRequest
-     * @return
-     * @throws Exception
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public Object getGroup(GroupRequest groupRequest,String tableName) throws Exception {
-
-        Records records = new Records();
-        records.setCurrent(groupRequest.getCurrent());
-        return records;
+    @Override
+    public Object getGroup(GroupRequest groupRequest, String tableName) throws Exception {
+        return null;
     }
 
     @Override
@@ -114,7 +94,4 @@ return null;
     }
 
 
-
-
-
 }

+ 43 - 17
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -1,6 +1,9 @@
 package cn.cslg.pas.service.business.es;
 
 import cn.cslg.pas.common.dto.PatentDTO;
+import cn.cslg.pas.common.model.request.MapRequest;
+import cn.cslg.pas.common.model.request.QueryRequest;
+import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
 import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
@@ -23,6 +26,7 @@ import org.springframework.stereotype.Service;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 
 @Service
@@ -97,13 +101,37 @@ public class EsService {
 
     /**
      * Es检索
-     * @param searchCondition 检索条件
-     * @param page            检索页码
-     * @param size            页大小
-     * @param orderFields     排序字段
+     *
+     * @param queryRequest 检索条件
      * @return
      */
-    public List<PatentDTO> esSearch(String searchCondition, Integer page, Integer size, List<String> orderFields) throws Exception {
+    public PatentDTO esSearch(QueryRequest queryRequest) throws Exception {
+        PatentDTO dto = new PatentDTO();
+
+        String searchCondition = "";
+        Integer projectId = queryRequest.getProjectId();
+        Long current = queryRequest.getCurrent();
+        Long size = queryRequest.getSize();
+        if (queryRequest instanceof StringRequest) {
+            searchCondition = ((StringRequest) queryRequest).getSearchQuery();
+        } else if (queryRequest instanceof MapRequest) {
+            Map<String, Object> map = ((MapRequest) queryRequest).getSearchQuery();
+            for (String key : map.keySet()) {
+                Object value = map.get(key);
+                if (searchCondition != "") {
+                    searchCondition = "AND" + key + "=" + value;
+                } else {
+                    searchCondition = key + "=" + value;
+                }
+            }
+        }
+        if (projectId != null) {
+            if (searchCondition != null && searchCondition != "") {
+                searchCondition = "projectId = " + projectId + " AND " + searchCondition;
+            } else {
+                searchCondition = "projectId = " + projectId;
+            }
+        }
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
@@ -111,11 +139,11 @@ public class EsService {
         treeNode tree = expressManager.getInstance().Parse(searchCondition, false);
         //格式化检索式
         //3. 从es中检索数据
-        Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "esConfig");
+        Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
         //4. 返回数据
         //分页
-        if (page != null && size != null) {
-            builder.from(page).size(size);
+        if (current != null && size != null) {
+            builder.from(current.intValue()).size(size.intValue());
         }
         builder.query(q);
         //排序
@@ -124,19 +152,17 @@ public class EsService {
                         .field("public_date").order(SortOrder.Desc)));
 
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-        List<PatentDTO> list = new ArrayList<>();
+        List<Patent> list = new ArrayList<>();
         List<Hit<Patent>> hits = response.hits().hits();
-
+        long total = response.hits().total().value();
         for (Hit<Patent> hit : hits) {
-            PatentDTO dto = new PatentDTO();
-            long total = response.hits().total().value();
             Patent esMess = hit.source();
-            BeanUtils.copyProperties(esMess, dto);
-            dto.setTotal(total);
-            list.add(dto);
+            list.add(esMess);
         }
+        dto.setTotal(total);
+        dto.setPatents(list);
 
-        return list;
+        return dto;
     }
 
     /**
@@ -153,7 +179,7 @@ public class EsService {
         //组装查询条件
         BoolQuery.Builder boolQuery = new BoolQuery.Builder();
         boolQuery.should(q -> q.match(v -> v
-               .query(key)
+                .query(key)
                 //字段名
                 .field("patent_no")
         ));

+ 2 - 2
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -394,11 +394,11 @@ public class FormatQueryService {
         treeNode Left = node.getLeft();
         treeNode Right = node.getRight();
         //如果and or  则递归本身
-        if (operate1.getShowName().equals(enuType.Logic)) {
+        if (operate1.gettype().equals(enuType.Logic)) {
             Query q1 = this.EsQueryToQuery((operateNode) Left, configName);
             Query q2 = this.EsQueryToQuery((operateNode) Right, configName);
             query = QueryBuilders.bool(i -> i.must(q1, q2));
-        } else if (operate1.getShowName().equals(enuType.Assignment)){
+        } else if (operate1.gettype().equals(enuType.Assignment)){
             //比较运算符
             IQueryBuilder iQueryBuilder = null;
             String field = Left.ToString();

+ 19 - 6
src/test/java/cn/cslg/pas/service/EsServiceTests.java

@@ -1,10 +1,13 @@
 package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.dto.PatentDTO;
+import cn.cslg.pas.common.model.request.QueryRequest;
+import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.FormatUtil;
 import cn.cslg.pas.common.utils.RedisUtil;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.domain.es.Patent;
+import cn.cslg.pas.service.business.PatentService;
 import cn.cslg.pas.service.business.es.EsService;
 
 import cn.cslg.pas.service.importPatent.SchedulingTaskService;
@@ -29,12 +32,15 @@ public class EsServiceTests {
     private EsService esService;
 
     @Autowired
+    private PatentService patentService;
+
+    @Autowired
     private RedisUtil redisUtil;
 
     @Autowired
     private SchedulingTaskService importTaskAdd;
     @Test
-    void addPatent() throws Exception {
+ public    void addPatent() throws Exception {
         Patent patent =new Patent();
         patent.setPatentNo("CN202023204739.4");
      String id = esService.addPatent(patent);
@@ -42,7 +48,7 @@ public class EsServiceTests {
     }
 
     @Test
-    void getPatentByPatentNo() throws  Exception {
+    public   void getPatentByPatentNo() throws  Exception {
         //根据专利号获得id
         PatentWithIdVO patentWithIdVO  = esService.getIdByPatentNo("CN201114765Y");
         Patent patent =new Patent();
@@ -54,12 +60,12 @@ public class EsServiceTests {
     }
 
     @Test
-    void updatePatent() throws Exception{
+    public   void updatePatent() throws Exception{
 
     }
 
     @Test
-    void addImportTask() throws  Exception {
+    public  void addImportTask() throws  Exception {
         List<Patent> patentList = esService.search("1",1,10);
         System.out.println(patentList);
         Thread.sleep(1000000);
@@ -67,7 +73,14 @@ public class EsServiceTests {
 
     @Test
     void search() throws Exception {
-        List<PatentDTO> list = esService.esSearch("patentNo=CN201199922Y and simpleFamilyNum>1 or simpleFamilyNum=0", 0, 50,null);
+        StringRequest stringRequest = new StringRequest();
+        stringRequest.setSearchQuery("titleTextContent=电子");
+        stringRequest.setCurrent(0L);
+        stringRequest.setSize(50L);
+        stringRequest.setProjectId(1);
+        Object o = patentService.queryMessage(stringRequest);
+        System.out.println(o);
+//        List<PatentDTO> list = esService.esSearch("patentNo=CN201199922Y and simpleFamilyNum>1 or simpleFamilyNum=0", 0, 50,null);
 //        List<Patent> list = esService.Search("titleTextContent=电子 or projectId=1", 0, 50,null);
 //        List<Patent> list = esService.Search("patentNo=CN201199922Y and simpleFamilyNum>1", 0, 50,null);
 //        List<Patent> list = esService.Search("publicDate=2009-03", 0, 50,null);
@@ -75,6 +88,6 @@ public class EsServiceTests {
 //        List<Patent> list = esService.Search("titleTextContent=电子", 0, 50,null);
 //        List<Patent> list = esService.Search("projectId=1", 0, 50,null);
 //        List<Patent> list = esService.search("patentNo=CN201199922Y", 0, 50);
-        System.out.println(list);
+//        System.out.println(list);
     }
 }

+ 16 - 0
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -4,6 +4,7 @@ import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.controller.EventController;
+import cn.cslg.pas.controller.PatentController;
 import cn.cslg.pas.service.business.ProductMarketDataService;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.http.entity.ContentType;
@@ -28,6 +29,10 @@ import java.util.List;
 public class EventServiceTests {
     @Autowired
     private EventController eventController;
+    @Autowired
+    PatentController patentController;
+
+
 
     @Autowired
     private ProductMarketDataService productMarketDataService;
@@ -99,4 +104,15 @@ public class EventServiceTests {
         Records records=(Records) productMarketDataService.getGroup(groupRequest,"productMarketData");
         System.out.println(records);
     }
+
+    @Test
+    void test11() throws Exception {
+        StringRequest stringRequest = new StringRequest();
+        stringRequest.setSearchQuery("titleTextContent=电子");
+        stringRequest.setCurrent(0L);
+        stringRequest.setSize(50L);
+        stringRequest.setProjectId(1);
+        Response response = patentController.queryPatent(stringRequest);
+        System.out.println(response);
+    }
 }