Bladeren bron

add search record

zero 1 jaar geleden
bovenliggende
commit
c2ad59f979

+ 4 - 1
src/main/java/com/example/xiaoshiweixinback/business/exception/ExceptionEnum.java

@@ -16,7 +16,10 @@ public enum ExceptionEnum {
     INIT_GENERICITY_BEAN_ERROR("10003","泛型实例化异常"),
     THE_PHONE_CANNOT_BE_EXIST("10004","手机号已存在"),
     THE_LOG_OUT("10004","未登录"),
-    THE_CODE_IS_NOT_NULL("10006","验证码不能为空");
+    THE_CODE_IS_NOT_NULL("10006","验证码不能为空"),
+
+    //异常20000
+    THE_PARAMETER_EXCEPTION("20001", "参数异常,请传入数据");
 
     private String code;// 异常代码
     private String message;// 异常信息

+ 0 - 2
src/main/java/com/example/xiaoshiweixinback/controller/PatentController.java

@@ -4,12 +4,10 @@ import com.alibaba.fastjson2.JSONObject;
 import com.example.xiaoshiweixinback.business.common.Constants;
 import com.example.xiaoshiweixinback.business.common.Response;
 import com.example.xiaoshiweixinback.business.common.base.Records;
-import com.example.xiaoshiweixinback.business.utils.FileUtil;
 import com.example.xiaoshiweixinback.business.utils.FileUtils;
 import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPictureNoDTO;
 import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPatentVectorDTO;
 import com.example.xiaoshiweixinback.entity.dto.patent.ImportTaskAMVO;
-import com.example.xiaoshiweixinback.entity.product.ProductIdDTO;
 import com.example.xiaoshiweixinback.entity.vo.esPicture.EsPictureNoVo;
 import com.example.xiaoshiweixinback.service.common.EsDenseVectorService;
 import com.example.xiaoshiweixinback.service.common.FileManagerService;

+ 69 - 0
src/main/java/com/example/xiaoshiweixinback/controller/SearchRecordController.java

@@ -0,0 +1,69 @@
+package com.example.xiaoshiweixinback.controller;
+
+
+import com.example.xiaoshiweixinback.business.common.Constants;
+import com.example.xiaoshiweixinback.business.common.Response;
+import com.example.xiaoshiweixinback.business.common.base.Records;
+import com.example.xiaoshiweixinback.entity.dto.searchRecord.AddSearchRecordDTO;
+import com.example.xiaoshiweixinback.entity.dto.searchRecord.SelectSearchRecordDTO;
+import com.example.xiaoshiweixinback.service.SearchRecordService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/searchRecord")
+@RestController
+public class SearchRecordController {
+
+    @Autowired
+    private SearchRecordService searchRecordService;
+
+    @Operation(summary = "添加或更新检索记录")
+    @PostMapping("/addSearchRecord")
+    public Response addSearchRecord(@RequestBody AddSearchRecordDTO recordVO) {
+        Records records = new Records();
+        try {
+            Integer id = searchRecordService.addSearchRecord(recordVO);
+            records.setData(id);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询检索记录")
+    @PostMapping("/querySearchRecords")
+    public Response querySearchRecords(@RequestBody SelectSearchRecordDTO searchRecordDTO) {
+        Records records = new Records();
+        try {
+            records = searchRecordService.searchRecords(searchRecordDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+
+    @Operation(summary = "删除检索记录")
+    @PostMapping("/removeSearchRecords")
+    public Response removeSearchRecords(@RequestBody List<Integer> ids) {
+        Records records = new Records();
+        try {
+            List<Integer> idList = searchRecordService.removeSearchRecords(ids);
+            records.setData(idList);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+}

+ 21 - 0
src/main/java/com/example/xiaoshiweixinback/entity/dto/searchRecord/AddSearchRecordDTO.java

@@ -0,0 +1,21 @@
+package com.example.xiaoshiweixinback.entity.dto.searchRecord;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AddSearchRecordDTO {
+
+    private Integer id;
+
+    private Integer productId;
+
+    private String searchCondition;
+
+    private Integer allNum;
+
+    private Date searchTime;
+
+    private String personUuid;
+}

+ 18 - 0
src/main/java/com/example/xiaoshiweixinback/entity/dto/searchRecord/SelectSearchRecordDTO.java

@@ -0,0 +1,18 @@
+package com.example.xiaoshiweixinback.entity.dto.searchRecord;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SelectSearchRecordDTO {
+
+    private Integer productId;
+
+    private Date searchTime;
+
+    private Long pageNum;
+
+    private Long pageSize;
+
+}

+ 24 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/searchRecord/SelectSearchRecordVO.java

@@ -0,0 +1,24 @@
+package com.example.xiaoshiweixinback.entity.vo.searchRecord;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SelectSearchRecordVO {
+
+    private Integer id;
+
+    private Integer productId;
+
+    private String searchCondition;
+
+    private Integer allNum;
+
+    private Date searchTime;
+
+    private String personUuid;
+
+    private Date createTime;
+
+}

+ 75 - 0
src/main/java/com/example/xiaoshiweixinback/service/SearchRecordService.java

@@ -1,11 +1,29 @@
 package com.example.xiaoshiweixinback.service;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.xiaoshiweixinback.business.common.base.Records;
+import com.example.xiaoshiweixinback.business.exception.BusinessException;
+import com.example.xiaoshiweixinback.business.exception.ExceptionEnum;
+import com.example.xiaoshiweixinback.business.utils.BeanUtil;
+import com.example.xiaoshiweixinback.business.utils.CacheUtil;
+import com.example.xiaoshiweixinback.business.utils.LoginUtils;
+import com.example.xiaoshiweixinback.business.utils.ToolUtil;
 import com.example.xiaoshiweixinback.domain.SearchRecord;
 
+import com.example.xiaoshiweixinback.entity.dto.searchRecord.AddSearchRecordDTO;
+import com.example.xiaoshiweixinback.entity.dto.searchRecord.SelectSearchRecordDTO;
+import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
+import com.example.xiaoshiweixinback.entity.vo.searchRecord.SelectSearchRecordVO;
 import com.example.xiaoshiweixinback.mapper.SearchRecordMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
 * @author admin
@@ -15,6 +33,63 @@ import org.springframework.stereotype.Service;
 @Service
 public class SearchRecordService extends ServiceImpl<SearchRecordMapper, SearchRecord> {
 
+    @Autowired
+    private SearchRecordMapper searchRecordMapper;
+
+    @Autowired
+    private CacheUtil cacheUtils;
+
+    public Integer addSearchRecord(AddSearchRecordDTO vo) {
+        if (ToolUtil.isEmpty(vo)) {
+            throw new BusinessException(ExceptionEnum.THE_PARAMETER_EXCEPTION);
+        }
+        Integer id = vo.getId();
+        SearchRecord record = new SearchRecord();
+        BeanUtil.copy(vo, record);
+        if (id != null) {
+            SearchRecord searchRecord = searchRecordMapper.selectById(id);
+            searchRecord.updateById();
+        } else {
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(LoginUtils.getToken());
+            record.setPersonUuid(personnelVO.getUuid());
+            record.insert();
+            id = record.getId();
+        }
+        return id;
+    }
+
+    public Records searchRecords(SelectSearchRecordDTO searchRecordDTO) {
+        Long pageNum = searchRecordDTO.getPageNum();
+        Long pageSize = searchRecordDTO.getPageSize();
+        Integer productId = searchRecordDTO.getProductId();
+        Page<SearchRecord> page = new Page<>(pageNum, pageSize);
+        Page<SearchRecord> record = searchRecordMapper.selectPage(page, new LambdaQueryWrapper<SearchRecord>()
+                .eq(ToolUtil.isNotEmpty(productId), SearchRecord::getProductId, productId)
+                .orderByDesc(SearchRecord::getSearchTime));
+        List<SelectSearchRecordVO> recordVOS = new ArrayList<>();
+        List<SearchRecord> list = record.getRecords();
+        if (ToolUtil.isNotEmpty(list)) {
+            list.forEach(i -> {
+                SelectSearchRecordVO recordVO = new SelectSearchRecordVO();
+                BeanUtil.copy(i, recordVO);
+                recordVOS.add(recordVO);
+            });
+        }
+        Records records = new Records();
+        records.setCurrent(pageNum);
+        records.setSize(pageSize);
+        records.setTotal(page.getTotal());
+        records.setData(recordVOS);
+        return records;
+    }
+
+    public List<Integer> removeSearchRecords(List<Integer> ids) {
+        if (!CollectionUtils.isEmpty(ids)) {
+            throw new BusinessException(ExceptionEnum.THE_PARAMETER_EXCEPTION);
+        }
+        this.removeBatchByIds(ids);
+        return ids;
+    }
 }