xiexiang преди 1 година
родител
ревизия
244acaa7ea

+ 2 - 0
src/main/java/cn/cslg/pas/common/dto/QuerySearchRecordDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto;
 
+import cn.cslg.pas.common.model.request.OrderDTO;
 import lombok.Data;
 
 /**
@@ -10,4 +11,5 @@ public class QuerySearchRecordDTO {
     private Integer projectId;
     private Long size;
     private Long current;
+    private OrderDTO orderDTO;
 }

+ 33 - 4
src/main/java/cn/cslg/pas/service/novelty/NoveltySearchRecordService.java

@@ -6,6 +6,7 @@ import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyRetrieveRecordDTO;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.request.OrderDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO;
@@ -13,12 +14,14 @@ import cn.cslg.pas.common.vo.NoveltyProjectVO.QueryTemplateVO;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.RetrieveRecordVO;
 import cn.cslg.pas.domain.business.RetrieveRecord;
 import cn.cslg.pas.domain.business.novelty.AssoRetrieveRecordProject;
+import cn.cslg.pas.domain.business.novelty.NoveltyCompareLiterature;
 import cn.cslg.pas.domain.business.novelty.NoveltyReportTemplate;
 import cn.cslg.pas.mapper.RetrieveRecordMapper;
 import cn.cslg.pas.service.permissions.PermissionService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -65,6 +68,7 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
         Records records = new Records();
         Long size = querySearchRecordDTO.getSize();
         Long current = querySearchRecordDTO.getCurrent();
+        OrderDTO orderDTO = querySearchRecordDTO.getOrderDTO();
         Integer projectId = querySearchRecordDTO.getProjectId();
         List<RetrieveRecord> retrieveRecordList = new ArrayList<>();
         List<RetrieveRecordVO> retrieveRecordVOS = new ArrayList<>();
@@ -82,10 +86,18 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
                 //根据检索记录ids查询专利信息集合
                 Map<Integer, List<NoveltyCompareLiteratureVO>> noveltyMap = noveltyCompareLiteratureService.getPatentNoByRetrieveIds(retrieveIds);
 
-                LambdaQueryWrapper<RetrieveRecord> queryWrapper = new LambdaQueryWrapper<>();
-                queryWrapper.in(RetrieveRecord::getId, retrieveIds)
-                        .orderByDesc(RetrieveRecord::getRetrieveTime)
-                        .orderByDesc(RetrieveRecord::getCreateTime);
+                QueryWrapper<RetrieveRecord> queryWrapper = new QueryWrapper<>();
+                queryWrapper.lambda().in(RetrieveRecord::getId, retrieveIds);
+
+                if (orderDTO != null && orderDTO.getOrderBy() != null && !orderDTO.getOrderBy().isEmpty()) {
+                    String orderByField = orderDTO.getOrderBy();
+                    boolean isTrue = orderDTO.getOrderType() == 0;
+                    String column = this.getColumns(orderByField);
+                    queryWrapper.orderBy(orderByField != null && !orderByField.isEmpty(), isTrue, column);
+                } else {
+                    queryWrapper.orderBy(true, false, "create_time");
+                }
+
                 if (current != null && size != null) {
                     IPage<RetrieveRecord> retrieveRecords = this.page(new Page<>(current, size), queryWrapper);
                     retrieveRecordList = retrieveRecords.getRecords();
@@ -257,4 +269,21 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
         return ids;
     }
 
+
+    public String getColumns(String column){
+        Map<String, String> map = new HashMap<>();
+        map.put("conditions","conditions");
+        map.put("dbType","db_type");
+        map.put("searchType","search_type");
+        map.put("totalNum","total_num");
+        map.put("retrieveTime","retrieve_time");
+        map.put("createName","create_id");
+        map.put("createTime","create_time");
+        map.put("updateTime","update_time");
+        map.put("ifBySystem","if_by_system");
+        map.put("searchSetting","search_setting");
+        String reStr = map.get(column);
+        return reStr;
+    }
+
 }