添加案件证据管理相关接口
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;
|
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 {
|
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);
|
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;
|
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.service.CaseEvidenceService;
|
||||||
import com.supervision.police.vo.CaseEvidenceReqVo;
|
import com.supervision.police.dto.CaseEvidenceDTO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class CaseEvidenceServiceImpl implements CaseEvidenceService {
|
public class CaseEvidenceServiceImpl implements CaseEvidenceService {
|
||||||
|
|
||||||
|
private final CaseEvidenceDaoService caseEvidenceDaoService;
|
||||||
|
|
||||||
|
private final EvidenceFileDaoService evidenceFileDaoService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String saveEvidence(CaseEvidenceReqVo reqVO) {
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||||
return null;
|
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
|
@Override
|
||||||
public String updateEvidence(CaseEvidenceReqVo reqVO) {
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||||
return null;
|
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
|
@Override
|
||||||
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
||||||
public boolean deleteEvidence(String evidenceId) {
|
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
|
@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