From 17a6939593adc87b392137abb94a98fd5928573c Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 17 Jul 2024 13:06:08 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=A1=88=E4=BB=B6=E8=AF=81=E6=8D=AE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=202.=20=E9=87=8D=E5=91=BD=E5=90=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ExceptionResponseConfig.java | 33 ++++++++ .../supervision/config/ResponseConfig.java | 76 ------------------- .../config/TransactionManagerConfig.java | 1 - .../controller/CaseEvidenceController.java | 15 ++-- .../daoService/EvidenceFileDaoService.java | 4 + .../impl/EvidenceFileDaoServiceImpl.java | 7 ++ .../police/dto/CaseEvidenceDetailDTO.java | 20 ++++- .../police/dto/EvidenceFileDTO.java | 3 + .../police/mapper/EvidenceFileMapper.java | 4 + .../police/service/CaseEvidenceService.java | 11 ++- .../service/impl/CaseEvidenceServiceImpl.java | 28 +++++++ .../resources/mapper/EvidenceFileMapper.xml | 19 +++++ 12 files changed, 135 insertions(+), 86 deletions(-) create mode 100644 src/main/java/com/supervision/config/ExceptionResponseConfig.java delete mode 100644 src/main/java/com/supervision/config/ResponseConfig.java diff --git a/src/main/java/com/supervision/config/ExceptionResponseConfig.java b/src/main/java/com/supervision/config/ExceptionResponseConfig.java new file mode 100644 index 0000000..6655180 --- /dev/null +++ b/src/main/java/com/supervision/config/ExceptionResponseConfig.java @@ -0,0 +1,33 @@ +package com.supervision.config; + +import com.supervision.common.domain.R; +import com.supervision.common.enums.ResultStatusEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.bind.annotation.ExceptionHandler; + +/** + * 统一返回 + * + * @author wb + * @date 2022/3/10 13:24 + */ +@Slf4j +@Configuration +public class ExceptionResponseConfig { + + /** + * 添加手动校验参数的异常处理 + * @param exception 参数验证异常 + * @return 通用返回值 + */ + @ExceptionHandler(IllegalArgumentException.class) + public R manualValidationExceptionResponse(IllegalArgumentException exception) { + log.error("=========手动校验参数异常=========>>>"); + log.error(exception.getMessage(), exception); + log.error("<<<=========手动校验参数异常========="); + return R.fail(ResultStatusEnum.ILLEGAL_ARGUMENT,exception.getMessage()); + } + + +} diff --git a/src/main/java/com/supervision/config/ResponseConfig.java b/src/main/java/com/supervision/config/ResponseConfig.java deleted file mode 100644 index e26a0b0..0000000 --- a/src/main/java/com/supervision/config/ResponseConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.supervision.config; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import com.supervision.common.domain.R; -import com.supervision.common.enums.ResultStatusEnum; -import lombok.extern.slf4j.Slf4j; -import org.springframework.core.MethodParameter; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.server.ServerHttpRequest; -import org.springframework.http.server.ServerHttpResponse; -import org.springframework.lang.Nullable; -import org.springframework.validation.BindException; -import org.springframework.web.bind.MethodArgumentNotValidException; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; - -import java.util.Objects; -import java.util.stream.Collectors; - -/** - * 统一返回 - * - * @author wb - * @date 2022/3/10 13:24 - */ -@Slf4j -@RestControllerAdvice(annotations = RestController.class, basePackages = {"com.supervision.**.controller"}) -public class ResponseConfig implements ResponseBodyAdvice { - - - @Override - public boolean supports(@Nullable MethodParameter methodParameter, - @Nullable Class> aClass) { - assert methodParameter != null; - String lowerCase = methodParameter.getDeclaringClass().getName().toLowerCase(); - log.info(lowerCase); - if (lowerCase.contains("swagger") || lowerCase.contains("springdoc")) { - return false; - } else { - log.info("--------{}---------", lowerCase); - return true; - } - } - - @Override - @SuppressWarnings("all") - public Object beforeBodyWrite(Object o, @Nullable MethodParameter methodParameter, @Nullable MediaType mediaType, - @Nullable Class> aClass, @Nullable ServerHttpRequest serverHttpRequest, - @Nullable ServerHttpResponse serverHttpResponse) { - - return o; - } - - - - /** - * 添加手动校验参数的异常处理 - * @param exception 参数验证异常 - * @return 通用返回值 - */ - @ExceptionHandler(IllegalArgumentException.class) - public R manualValidationExceptionResponse(IllegalArgumentException exception) { - log.error("=========手动校验参数异常=========>>>"); - log.error(exception.getMessage(), exception); - log.error("<<<=========手动校验参数异常========="); - return R.fail(ResultStatusEnum.ILLEGAL_ARGUMENT,exception.getMessage()); - } - - - -} diff --git a/src/main/java/com/supervision/config/TransactionManagerConfig.java b/src/main/java/com/supervision/config/TransactionManagerConfig.java index 8274b79..0ad1a6f 100644 --- a/src/main/java/com/supervision/config/TransactionManagerConfig.java +++ b/src/main/java/com/supervision/config/TransactionManagerConfig.java @@ -1,6 +1,5 @@ package com.supervision.config; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; diff --git a/src/main/java/com/supervision/police/controller/CaseEvidenceController.java b/src/main/java/com/supervision/police/controller/CaseEvidenceController.java index 8fc5a88..b5a74b7 100644 --- a/src/main/java/com/supervision/police/controller/CaseEvidenceController.java +++ b/src/main/java/com/supervision/police/controller/CaseEvidenceController.java @@ -1,5 +1,6 @@ package com.supervision.police.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.common.domain.R; import com.supervision.police.dto.CaseEvidenceDetailDTO; import com.supervision.police.service.CaseEvidenceService; @@ -11,8 +12,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; -import java.util.List; - /** * 案件证据控制器 @@ -53,10 +52,12 @@ public class CaseEvidenceController { CaseEvidenceDetailDTO caseEvidenceDetailDTO = caseEvidenceService.queryEvidenceDetail(evidenceId); return R.ok(caseEvidenceDetailDTO); } - @Operation(summary = "查询案件证据信息列表") - @GetMapping("/list") - public R> queryEvidenceList(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId) { - List caseEvidenceDetailDTOS = caseEvidenceService.queryEvidenceList(caseId); - return R.ok(caseEvidenceDetailDTOS); + @Operation(summary = "分页查询案件证据信息列表") + @GetMapping("/pageListEvidence") + public R> pageListEvidence(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId, + @RequestParam(defaultValue = "1") @Parameter(name = "page",description = "页码") Integer page, + @RequestParam(defaultValue = "10") @Parameter(name = "size",description = "每页数量") Integer size) { + IPage pageListEvidence = caseEvidenceService.pageListEvidence(caseId, page, size); + return R.ok(pageListEvidence); } } diff --git a/src/main/java/com/supervision/police/daoService/EvidenceFileDaoService.java b/src/main/java/com/supervision/police/daoService/EvidenceFileDaoService.java index 02d88b3..0c5b7ef 100644 --- a/src/main/java/com/supervision/police/daoService/EvidenceFileDaoService.java +++ b/src/main/java/com/supervision/police/daoService/EvidenceFileDaoService.java @@ -2,6 +2,9 @@ package com.supervision.police.daoService; import com.supervision.police.domain.EvidenceFile; import com.baomidou.mybatisplus.extension.service.IService; +import com.supervision.police.dto.EvidenceFileDTO; + +import java.util.List; /** * @author Administrator @@ -10,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface EvidenceFileDaoService extends IService { + List listFileInfo(List evidenceIds); } diff --git a/src/main/java/com/supervision/police/daoService/impl/EvidenceFileDaoServiceImpl.java b/src/main/java/com/supervision/police/daoService/impl/EvidenceFileDaoServiceImpl.java index 80e3642..73b1d25 100644 --- a/src/main/java/com/supervision/police/daoService/impl/EvidenceFileDaoServiceImpl.java +++ b/src/main/java/com/supervision/police/daoService/impl/EvidenceFileDaoServiceImpl.java @@ -3,9 +3,12 @@ package com.supervision.police.daoService.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.police.domain.EvidenceFile; import com.supervision.police.daoService.EvidenceFileDaoService; +import com.supervision.police.dto.EvidenceFileDTO; import com.supervision.police.mapper.EvidenceFileMapper; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author Administrator * @description 针对表【evidence_file】的数据库操作Service实现 @@ -15,6 +18,10 @@ import org.springframework.stereotype.Service; public class EvidenceFileDaoServiceImpl extends ServiceImpl implements EvidenceFileDaoService { + @Override + public List listFileInfo(List evidenceIds) { + return super.getBaseMapper().listFileInfo(evidenceIds); + } } diff --git a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java index 61520cb..2c316ea 100644 --- a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java +++ b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java @@ -1,9 +1,13 @@ package com.supervision.police.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.supervision.police.domain.CaseEvidence; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; @Data public class CaseEvidenceDetailDTO { @@ -21,5 +25,19 @@ public class CaseEvidenceDetailDTO { private List fileList; @Schema(description = "最近时间") - private String updateTime; + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime updateTime; + + public CaseEvidenceDetailDTO() { + } + + public CaseEvidenceDetailDTO(CaseEvidence caseEvidence, List fileList) { + if (Objects.nonNull(caseEvidence)){ + this.id = caseEvidence.getId(); + this.evidenceName = caseEvidence.getEvidenceName(); + this.evidenceType = caseEvidence.getEvidenceType(); + this.updateTime = caseEvidence.getUpdateTime(); + } + this.fileList = fileList; + } } diff --git a/src/main/java/com/supervision/police/dto/EvidenceFileDTO.java b/src/main/java/com/supervision/police/dto/EvidenceFileDTO.java index af42db6..da10bb4 100644 --- a/src/main/java/com/supervision/police/dto/EvidenceFileDTO.java +++ b/src/main/java/com/supervision/police/dto/EvidenceFileDTO.java @@ -6,6 +6,9 @@ import lombok.Data; @Data public class EvidenceFileDTO { + @Schema(description = "案件证据id") + private String evidenceId; + @Schema(description = "文件id集合") private String fileId; diff --git a/src/main/java/com/supervision/police/mapper/EvidenceFileMapper.java b/src/main/java/com/supervision/police/mapper/EvidenceFileMapper.java index 5678a2a..16ead4c 100644 --- a/src/main/java/com/supervision/police/mapper/EvidenceFileMapper.java +++ b/src/main/java/com/supervision/police/mapper/EvidenceFileMapper.java @@ -2,6 +2,9 @@ package com.supervision.police.mapper; import com.supervision.police.domain.EvidenceFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.supervision.police.dto.EvidenceFileDTO; + +import java.util.List; /** * @author Administrator @@ -11,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface EvidenceFileMapper extends BaseMapper { + List listFileInfo(List evidenceIds); } diff --git a/src/main/java/com/supervision/police/service/CaseEvidenceService.java b/src/main/java/com/supervision/police/service/CaseEvidenceService.java index b71b39c..2880e4e 100644 --- a/src/main/java/com/supervision/police/service/CaseEvidenceService.java +++ b/src/main/java/com/supervision/police/service/CaseEvidenceService.java @@ -1,6 +1,6 @@ package com.supervision.police.service; -import com.supervision.police.domain.CaseEvidence; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.police.dto.CaseEvidenceDTO; import com.supervision.police.dto.CaseEvidenceDetailDTO; @@ -37,6 +37,15 @@ public interface CaseEvidenceService { */ List queryEvidenceList(String caseId); + /** + * 分页查询案件证据信息列表 + * @param caseId 案件id + * @param pageNum 每页大小 + * @param pageSize 当前页码 + * @return + */ + IPage pageListEvidence(String caseId, Integer pageNum, Integer pageSize); + /** * 查询案件证据信息详情 * @param evidenceId 证据id diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java index 0fbea88..a861b80 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -1,11 +1,15 @@ package com.supervision.police.service.impl; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.supervision.police.daoService.CaseEvidenceDaoService; import com.supervision.police.daoService.EvidenceFileDaoService; import com.supervision.police.domain.CaseEvidence; import com.supervision.police.domain.EvidenceFile; import com.supervision.police.dto.CaseEvidenceDetailDTO; +import com.supervision.police.dto.EvidenceFileDTO; import com.supervision.police.service.CaseEvidenceService; import com.supervision.police.dto.CaseEvidenceDTO; import lombok.RequiredArgsConstructor; @@ -14,6 +18,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service @@ -94,6 +100,28 @@ public class CaseEvidenceServiceImpl implements CaseEvidenceService { return caseEvidenceDaoService.queryEvidenceList(caseId); } + @Override + @Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class) + public IPage pageListEvidence(String caseId, Integer pageNum, Integer pageSize) { + + Assert.notEmpty(caseId,"案件id不能为空"); + Page caseEvidencePage = caseEvidenceDaoService.lambdaQuery().eq(CaseEvidence::getCaseId, caseId) + .orderBy(true, false,CaseEvidence::getUpdateTime) + .page(new Page<>(pageNum, pageSize)); + + if (caseEvidencePage.getTotal() == 0){ + return PageDTO.of(pageNum,pageSize,0); + } + + // 查询文件信息 + List evidenceIds = caseEvidencePage.getRecords().stream().map(CaseEvidence::getId).distinct().toList(); + List fileInfoList = evidenceFileDaoService.listFileInfo(evidenceIds); + Map> evidenceFileMap = fileInfoList.stream().collect(Collectors.groupingBy(EvidenceFileDTO::getEvidenceId)); + + // 转换分页结果 + return caseEvidencePage.convert(caseEvidence -> new CaseEvidenceDetailDTO(caseEvidence,evidenceFileMap.get(caseEvidence.getId()))); + } + @Override @Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class) public CaseEvidenceDetailDTO queryEvidenceDetail(String evidenceId) { diff --git a/src/main/resources/mapper/EvidenceFileMapper.xml b/src/main/resources/mapper/EvidenceFileMapper.xml index fe5457e..84cbba4 100644 --- a/src/main/resources/mapper/EvidenceFileMapper.xml +++ b/src/main/resources/mapper/EvidenceFileMapper.xml @@ -19,4 +19,23 @@ create_user_id,create_time,update_user_id, update_time + + +