1. 案件证据添加分页查询接口

2. 重命名代码
topo_dev
xueqingkun 10 months ago
parent 14c86578fb
commit 17a6939593

@ -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());
}
}

@ -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<Object> {
@Override
public boolean supports(@Nullable MethodParameter methodParameter,
@Nullable Class<? extends HttpMessageConverter<?>> 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<? extends HttpMessageConverter<?>> 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());
}
}

@ -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;

@ -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<List<CaseEvidenceDetailDTO>> queryEvidenceList(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId) {
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = caseEvidenceService.queryEvidenceList(caseId);
return R.ok(caseEvidenceDetailDTOS);
@Operation(summary = "分页查询案件证据信息列表")
@GetMapping("/pageListEvidence")
public R<IPage<CaseEvidenceDetailDTO>> 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<CaseEvidenceDetailDTO> pageListEvidence = caseEvidenceService.pageListEvidence(caseId, page, size);
return R.ok(pageListEvidence);
}
}

@ -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<EvidenceFile> {
List<EvidenceFileDTO> listFileInfo(List<String> evidenceIds);
}

@ -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_fileService
@ -15,6 +18,10 @@ import org.springframework.stereotype.Service;
public class EvidenceFileDaoServiceImpl extends ServiceImpl<EvidenceFileMapper, EvidenceFile>
implements EvidenceFileDaoService {
@Override
public List<EvidenceFileDTO> listFileInfo(List<String> evidenceIds) {
return super.getBaseMapper().listFileInfo(evidenceIds);
}
}

@ -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<EvidenceFileDTO> 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<EvidenceFileDTO> fileList) {
if (Objects.nonNull(caseEvidence)){
this.id = caseEvidence.getId();
this.evidenceName = caseEvidence.getEvidenceName();
this.evidenceType = caseEvidence.getEvidenceType();
this.updateTime = caseEvidence.getUpdateTime();
}
this.fileList = fileList;
}
}

@ -6,6 +6,9 @@ import lombok.Data;
@Data
public class EvidenceFileDTO {
@Schema(description = "案件证据id")
private String evidenceId;
@Schema(description = "文件id集合")
private String fileId;

@ -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<EvidenceFile> {
List<EvidenceFileDTO> listFileInfo(List<String> evidenceIds);
}

@ -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<CaseEvidenceDetailDTO> queryEvidenceList(String caseId);
/**
*
* @param caseId id
* @param pageNum
* @param pageSize
* @return
*/
IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, Integer pageNum, Integer pageSize);
/**
*
* @param evidenceId id

@ -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<CaseEvidenceDetailDTO> pageListEvidence(String caseId, Integer pageNum, Integer pageSize) {
Assert.notEmpty(caseId,"案件id不能为空");
Page<CaseEvidence> 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<String> evidenceIds = caseEvidencePage.getRecords().stream().map(CaseEvidence::getId).distinct().toList();
List<EvidenceFileDTO> fileInfoList = evidenceFileDaoService.listFileInfo(evidenceIds);
Map<String, List<EvidenceFileDTO>> 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) {

@ -19,4 +19,23 @@
create_user_id,create_time,update_user_id,
update_time
</sql>
<select id="listFileInfo" resultType="com.supervision.police.dto.EvidenceFileDTO">
select
ef.file_id as fileId,
ef.evidence_id as evidenceId,
mf.filename as filename,
mf.file_type as fileType
from evidence_file ef
left join minio_file mf on ef.file_id = mf.id
<where>
<if test="evidenceIds != null and evidenceIds.size > 0">
ef.evidence_id in
<foreach item="evidenceId" collection="evidenceIds" open="(" separator="," close=")">
#{evidenceId}
</foreach>
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save