添加案件证据管理相关接口
parent
c7a39b5ff5
commit
ee75cb48d4
@ -0,0 +1,76 @@
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.supervision.police.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class CaseEvidenceDetailDTO {
|
||||
|
||||
@Schema(description = "案件证据id")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "案件证据名称")
|
||||
private String evidenceName;
|
||||
|
||||
@Schema(description = "案件证据类型")
|
||||
private String evidenceType;
|
||||
|
||||
@Schema(description = "案件证据文件信息列表")
|
||||
private List<EvidenceFileDTO> fileList;
|
||||
|
||||
@Schema(description = "最近时间")
|
||||
private String updateTime;
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.supervision.police.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class EvidenceFileDTO {
|
||||
|
||||
@Schema(description = "文件id集合")
|
||||
private String fileId;
|
||||
|
||||
@Schema(description = "文件名称")
|
||||
private String fileName;
|
||||
|
||||
@Schema(description = "文件类型")
|
||||
private String fileType;
|
||||
|
||||
}
|
@ -1,13 +1,25 @@
|
||||
package com.supervision.police.service;
|
||||
|
||||
import com.supervision.police.vo.CaseEvidenceReqVo;
|
||||
import com.supervision.police.domain.CaseEvidence;
|
||||
import com.supervision.police.dto.CaseEvidenceDTO;
|
||||
import com.supervision.police.dto.CaseEvidenceDetailDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CaseEvidenceService {
|
||||
String saveEvidence(CaseEvidenceReqVo reqVO);
|
||||
|
||||
String updateEvidence(CaseEvidenceReqVo reqVO);
|
||||
/**
|
||||
* 保存案件笔录信息
|
||||
* @param caseEvidenceDTO
|
||||
* @return 笔录id
|
||||
*/
|
||||
String saveEvidence(CaseEvidenceDTO caseEvidenceDTO);
|
||||
|
||||
String updateEvidence(CaseEvidenceDTO caseEvidenceDTO);
|
||||
|
||||
boolean deleteEvidence(String evidenceId);
|
||||
|
||||
void queryEvidenceList(String caseId);
|
||||
List<CaseEvidenceDetailDTO> queryEvidenceList(String caseId);
|
||||
|
||||
CaseEvidenceDetailDTO queryEvidenceDetail(String evidenceId);
|
||||
}
|
||||
|
@ -1,33 +1,105 @@
|
||||
package com.supervision.police.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
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.service.CaseEvidenceService;
|
||||
import com.supervision.police.vo.CaseEvidenceReqVo;
|
||||
import com.supervision.police.dto.CaseEvidenceDTO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CaseEvidenceServiceImpl implements CaseEvidenceService {
|
||||
|
||||
private final CaseEvidenceDaoService caseEvidenceDaoService;
|
||||
|
||||
private final EvidenceFileDaoService evidenceFileDaoService;
|
||||
|
||||
@Override
|
||||
public String saveEvidence(CaseEvidenceReqVo reqVO) {
|
||||
return null;
|
||||
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||
public String saveEvidence(CaseEvidenceDTO caseEvidenceDTO) {
|
||||
// 必填校验
|
||||
caseEvidencePersistenceAssert(caseEvidenceDTO);
|
||||
|
||||
// 保存证据信息
|
||||
CaseEvidence caseEvidence = caseEvidenceDTO.toCaseEvidence();
|
||||
caseEvidenceDaoService.save(caseEvidence);
|
||||
|
||||
if (true){
|
||||
throw new IllegalArgumentException("保存证据信息失败");
|
||||
}
|
||||
//保存文件关联信息
|
||||
caseEvidenceDTO.getFileIdList().forEach(fileId -> {
|
||||
EvidenceFile evidenceFile = new EvidenceFile();
|
||||
evidenceFile.setFileId(fileId);
|
||||
evidenceFile.setEvidenceId(caseEvidence.getId());
|
||||
evidenceFileDaoService.save(evidenceFile);
|
||||
});
|
||||
return caseEvidence.getId();
|
||||
}
|
||||
|
||||
private void caseEvidencePersistenceAssert(CaseEvidenceDTO caseEvidenceDTO) {
|
||||
Assert.notEmpty(caseEvidenceDTO.getCaseId(),"案件id不能为空");
|
||||
Assert.notEmpty(caseEvidenceDTO.getEvidenceName(),"证据名称不能为空");
|
||||
Assert.notEmpty(caseEvidenceDTO.getEvidenceType(),"证据类型不能为空");
|
||||
Assert.notEmpty(caseEvidenceDTO.getProvider(),"证据提供人不能为空");
|
||||
Assert.notEmpty(caseEvidenceDTO.getFileIdList(),"文件id不能为空");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String updateEvidence(CaseEvidenceReqVo reqVO) {
|
||||
return null;
|
||||
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||
public String updateEvidence(CaseEvidenceDTO caseEvidenceDTO) {
|
||||
|
||||
Assert.notEmpty(caseEvidenceDTO.getId(),"证据id不能为空");
|
||||
caseEvidencePersistenceAssert(caseEvidenceDTO);
|
||||
caseEvidenceDaoService.getOptById(caseEvidenceDTO.getId()).orElseThrow(() -> new IllegalArgumentException("证据信息不存在"));
|
||||
|
||||
// 更新证据信息
|
||||
CaseEvidence caseEvidence = caseEvidenceDTO.toCaseEvidence();
|
||||
caseEvidenceDaoService.updateById(caseEvidence);
|
||||
|
||||
// 更新文件关联信息
|
||||
evidenceFileDaoService.lambdaUpdate().eq(EvidenceFile::getEvidenceId,caseEvidence.getId()).remove();
|
||||
caseEvidenceDTO.getFileIdList().forEach(fileId -> {
|
||||
EvidenceFile evidenceFile = new EvidenceFile();
|
||||
evidenceFile.setFileId(fileId);
|
||||
evidenceFile.setEvidenceId(caseEvidence.getId());
|
||||
evidenceFileDaoService.save(evidenceFile);
|
||||
});
|
||||
return caseEvidenceDTO.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||
public boolean deleteEvidence(String evidenceId) {
|
||||
return false;
|
||||
|
||||
boolean remove = caseEvidenceDaoService.lambdaUpdate().eq(CaseEvidence::getId, evidenceId).remove();
|
||||
|
||||
if (remove){
|
||||
evidenceFileDaoService.lambdaUpdate().eq(EvidenceFile::getEvidenceId,evidenceId).remove();
|
||||
}
|
||||
return remove;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void queryEvidenceList(String caseId) {
|
||||
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||
public List<CaseEvidenceDetailDTO> queryEvidenceList(String caseId) {
|
||||
|
||||
return caseEvidenceDaoService.queryEvidenceList(caseId);
|
||||
}
|
||||
|
||||
// todo: 设置返回值
|
||||
@Override
|
||||
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||
public CaseEvidenceDetailDTO queryEvidenceDetail(String evidenceId) {
|
||||
return caseEvidenceDaoService.queryEvidenceDetail(evidenceId);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue