190 lines
6.4 KiB
Java
190 lines
6.4 KiB
Java
package com.example.caseData.controller;
|
|
|
|
import cn.hutool.core.lang.Dict;
|
|
import cn.hutool.json.JSONArray;
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.example.caseData.common.Response;
|
|
import com.example.caseData.dao.*;
|
|
import com.example.caseData.dto.T;
|
|
import com.example.caseData.dto.caseExchange.CaseExchangeDto;
|
|
import com.example.caseData.dto.caseExchangeDraft.CaseExchangeDraftDto;
|
|
import com.example.caseData.dto.caseExchangeLabel.CaseExchangeLabelDto;
|
|
import com.example.caseData.dto.caseExchangeVote.CaseExchangeVoteDto;
|
|
import com.example.caseData.dto.caseExchangeVoteOption.CaseExchangeVoteOptionDto;
|
|
import com.example.caseData.dto.userCommentCaseExchange.GetUserCaseExchangeCommentPageDto;
|
|
import com.example.caseData.dto.userCommentCaseExchange.UserCommentCaseExchangeDto;
|
|
import com.example.caseData.exception.BusinessException;
|
|
import com.example.caseData.model.*;
|
|
import com.example.caseData.request.caseExchangeDraftRequest.addCaseExchangeDraft;
|
|
import com.example.caseData.request.caseExchangeDraftRequest.getCaseExchangeDraftSearchPage;
|
|
import com.example.caseData.request.caseExchangeRequest.*;
|
|
import com.example.caseData.service.CaseExchangeDraftService;
|
|
import com.example.caseData.service.CaseExchangeService;
|
|
import com.example.caseData.utils.IntToString;
|
|
import com.example.caseData.utils.Replace;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.*;
|
|
|
|
@RestController
|
|
@RequestMapping("/api")
|
|
public class CaseExchangeDraftController {
|
|
@Resource
|
|
private HttpServletRequest httpServletRequest;
|
|
|
|
@Resource
|
|
private CaseExchangeDao caseExchangeDao;
|
|
|
|
@Resource
|
|
private UserDao userDao;
|
|
|
|
@Resource
|
|
private BasicHospitalDao basicHospitalDao;
|
|
|
|
@Resource
|
|
private CaseExchangeService caseExchangeService;
|
|
|
|
@Resource
|
|
private CaseExchangeDraftService caseExchangeDraftService;
|
|
|
|
@Resource
|
|
private CaseExchangeDraftDao caseExchangeDraftDao;
|
|
|
|
@Resource
|
|
private CaseExchangeVoteDao caseExchangeVoteDao;
|
|
|
|
@Resource
|
|
private CaseExchangeLabelDao caseExchangeLabelDao;
|
|
|
|
@Resource
|
|
private CaseExchangeVoteOptionDao caseExchangeVoteOptionDao;
|
|
|
|
@Resource
|
|
private UserVoteExchangeDao userVoteExchangeDao;
|
|
|
|
@Resource
|
|
private UserCommentExchangeDao userCommentExchangeDao;
|
|
|
|
/**
|
|
* 临床病例库-病例交流-草稿-搜索
|
|
*/
|
|
@PostMapping("/exchange/draft/search")
|
|
public Response<Map<String, Object>> getCaseExchangeDraftSearchPage(
|
|
@Validated()
|
|
@RequestBody getCaseExchangeDraftSearchPage request
|
|
) {
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
if (userId == null) {
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
request.validateForPage();
|
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
Page<CaseExchangeDraftDto> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
|
|
|
IPage<CaseExchangeDraftDto> resultPage = caseExchangeDraftDao.getCaseExchangeDraftSearchPage(
|
|
page,
|
|
userId,
|
|
request.handleOrder()
|
|
);
|
|
|
|
for (CaseExchangeDraftDto dto : resultPage.getRecords()) {
|
|
// 处理标签
|
|
if (dto.getExchangeLabelJson() != null && !dto.getExchangeLabelJson().isEmpty()){
|
|
try {
|
|
JSONArray array = JSONUtil.parseArray(dto.getExchangeLabelJson());
|
|
List<CaseExchangeDraftDto.CaseExchangeLabelDto> caseExchangeLabelDto = JSONUtil.toList(array, CaseExchangeDraftDto.CaseExchangeLabelDto.class);
|
|
dto.setExchangeLabel(caseExchangeLabelDto);
|
|
dto.setExchangeLabelJson("");
|
|
} catch (Exception e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
// 处理投票
|
|
if (dto.getExchangeVoteJson() != null && !dto.getExchangeVoteJson().isEmpty()){
|
|
try {
|
|
CaseExchangeDraftDto.ExchangeVoteDto caseExchangeVoteDto = JSONUtil.toBean(dto.getExchangeVoteJson(), CaseExchangeDraftDto.ExchangeVoteDto.class);
|
|
dto.setExchangeVote(caseExchangeVoteDto);
|
|
dto.setExchangeVoteJson("");
|
|
} catch (Exception e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
resultMap.put("page", resultPage.getCurrent());
|
|
resultMap.put("pageSize", resultPage.getSize());
|
|
resultMap.put("total", resultPage.getTotal());
|
|
resultMap.put("data", resultPage.getRecords());
|
|
return Response.success(resultMap);
|
|
}
|
|
|
|
|
|
/**
|
|
* 临床病例库-病例交流-草稿-新增
|
|
*/
|
|
@PostMapping("/exchange/draft")
|
|
public Response<T> AddCaseExchangeDraft(
|
|
@Validated()
|
|
@RequestBody addCaseExchangeDraft request
|
|
) {
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
if (userId == null) {
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
try {
|
|
boolean res = caseExchangeDraftService.AddCaseExchangeDraft(request,userId);
|
|
if (!res){
|
|
return Response.error("操作失败");
|
|
}
|
|
} catch (BusinessException e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
|
|
return Response.success();
|
|
}
|
|
|
|
/**
|
|
* 病例交流-草稿-删除
|
|
*/
|
|
@DeleteMapping("/exchange/draft/{draft_id}")
|
|
public Response<T> DeleteCaseExchangeComment(
|
|
@PathVariable("draft_id") String draftId
|
|
) {
|
|
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
if (userId == null) {
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
try {
|
|
boolean res = caseExchangeDraftService.DeleteCaseExchangeDraft(draftId,userId);
|
|
if (!res){
|
|
return Response.error("操作失败");
|
|
}
|
|
} catch (BusinessException e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
|
|
return Response.success();
|
|
}
|
|
|
|
|
|
}
|