193 lines
8.1 KiB
Java
193 lines
8.1 KiB
Java
package com.example.caseData.controller;
|
|
|
|
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.userCollectClinicalArticle.UserCollectClinicalArticleDto;
|
|
import com.example.caseData.dto.userCollectClinicalVideo.UserCollectClinicalVideoDto;
|
|
import com.example.caseData.dto.userCollectExchange.UserCollectExchangeDto;
|
|
import com.example.caseData.model.*;
|
|
import com.example.caseData.request.userCollectRequest.getUserCollectSearchPage;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
@RestController
|
|
@RequestMapping("/api")
|
|
public class UserCollectController extends BaseController {
|
|
@Resource
|
|
private UserDao userDao;
|
|
|
|
@Resource
|
|
private BasicHospitalDao basicHospitalDao;
|
|
|
|
@Resource
|
|
private HttpServletRequest httpServletRequest;
|
|
|
|
@Resource
|
|
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
|
|
|
@Resource
|
|
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
|
|
|
@Resource
|
|
private CaseClinicalArticleAuthorDao caseClinicalArticleAuthorDao;
|
|
|
|
@Resource
|
|
private UserCollectClinicalVideoDao userCollectClinicalVideoDao;
|
|
|
|
@Resource
|
|
private CaseClinicalVideoAuthorDao caseClinicalVideoAuthorDao;
|
|
|
|
@Resource
|
|
private UserCollectExchangeDao userCollectExchangeDao;
|
|
|
|
/**
|
|
* 收藏记录-搜索-分页
|
|
*/
|
|
@PostMapping("/user/collect/search")
|
|
public Response<Map<String, Object>> getUserCollectSearchPage(
|
|
@Validated()
|
|
@RequestBody getUserCollectSearchPage request
|
|
) {
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
request.validateForPage();
|
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
if (request.getType() == 1){
|
|
// 文章
|
|
Page<UserCollectClinicalArticleDto> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
|
// 获取文章数据
|
|
IPage<UserCollectClinicalArticleDto> resultPage = userCollectClinicalArticleDao.getUserCollectClinicalArticleSearchPage(
|
|
page,
|
|
request.getKeyword(),
|
|
request.getHospitalId(),
|
|
request.getDoctorId(),
|
|
userId
|
|
);
|
|
|
|
for (UserCollectClinicalArticleDto dto : resultPage.getRecords()) {
|
|
UserCollectClinicalArticleDto.DataDto data = dto.getData();
|
|
List<UserCollectClinicalArticleDto.DataAuthorDto> dataAuthors = new ArrayList<>();
|
|
|
|
// 查找作者
|
|
LambdaQueryWrapper<CaseClinicalArticleAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
|
authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, dto.getId());
|
|
List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper);
|
|
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
|
|
UserCollectClinicalArticleDto.DataAuthorDto dataAuthor = new UserCollectClinicalArticleDto.DataAuthorDto();
|
|
|
|
// 查询医生
|
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
|
dataAuthor.setDoctorName(caseClinicalDoctor.getDoctorName());
|
|
|
|
dataAuthors.add(dataAuthor);
|
|
}
|
|
|
|
data.setAuthor(dataAuthors);
|
|
}
|
|
|
|
resultMap.put("page", resultPage.getCurrent());
|
|
resultMap.put("pageSize", resultPage.getSize());
|
|
resultMap.put("total", resultPage.getTotal());
|
|
resultMap.put("data", resultPage.getRecords());
|
|
}else if (request.getType() == 2){
|
|
// 视频
|
|
Page<UserCollectClinicalVideoDto> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
|
// 获取文章数据
|
|
IPage<UserCollectClinicalVideoDto> resultPage = userCollectClinicalVideoDao.getUserCollectClinicalVideoSearchPage(
|
|
page,
|
|
request.getKeyword(),
|
|
request.getHospitalId(),
|
|
request.getDoctorId(),
|
|
userId
|
|
);
|
|
|
|
for (UserCollectClinicalVideoDto dto : resultPage.getRecords()) {
|
|
UserCollectClinicalVideoDto.DataDto data = dto.getData();
|
|
List<UserCollectClinicalVideoDto.DataAuthorDto> dataAuthors = new ArrayList<>();
|
|
|
|
// 查找作者
|
|
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
|
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, dto.getId());
|
|
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
|
|
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
|
|
UserCollectClinicalVideoDto.DataAuthorDto dataAuthor = new UserCollectClinicalVideoDto.DataAuthorDto();
|
|
|
|
// 查询医生
|
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
|
|
|
dataAuthor.setDoctorName(caseClinicalDoctor.getDoctorName());
|
|
dataAuthors.add(dataAuthor);
|
|
}
|
|
|
|
data.setAuthor(dataAuthors);
|
|
}
|
|
|
|
resultMap.put("page", resultPage.getCurrent());
|
|
resultMap.put("pageSize", resultPage.getSize());
|
|
resultMap.put("total", resultPage.getTotal());
|
|
resultMap.put("data", resultPage.getRecords());
|
|
} else if (request.getType() == 3) {
|
|
// 病例交流
|
|
Page<UserCollectExchangeDto> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
|
// 获取文章数据
|
|
IPage<UserCollectExchangeDto> resultPage = userCollectExchangeDao.getUserCollectExchangeSearchPage(
|
|
page,
|
|
request.getKeyword(),
|
|
request.getHospitalId(),
|
|
request.getDoctorId(),
|
|
userId
|
|
);
|
|
|
|
for (UserCollectExchangeDto dto : resultPage.getRecords()) {
|
|
UserCollectExchangeDto.DataDto data = dto.getData();
|
|
List<UserCollectExchangeDto.DataAuthorDto> dataAuthors = new ArrayList<>();
|
|
|
|
UserModel user = userDao.selectById(Long.valueOf(userId));
|
|
if (user == null) {
|
|
return Response.error();
|
|
}
|
|
|
|
// 获取当前用户所属医院
|
|
BasicHospitalModel basicHospital = basicHospitalDao.selectById(user.getHospitalId());
|
|
if (basicHospital == null) {
|
|
return Response.error();
|
|
}
|
|
|
|
UserCollectExchangeDto.DataAuthorDto dataAuthor = new UserCollectExchangeDto.DataAuthorDto();
|
|
dataAuthor.setDoctorName(user.getUserName());
|
|
dataAuthor.setHospitalName(basicHospital.getHospitalName());
|
|
dataAuthors.add(dataAuthor);
|
|
|
|
data.setAuthor(dataAuthors);
|
|
}
|
|
|
|
resultMap.put("page", resultPage.getCurrent());
|
|
resultMap.put("pageSize", resultPage.getSize());
|
|
resultMap.put("total", resultPage.getTotal());
|
|
resultMap.put("data", resultPage.getRecords());
|
|
}else{
|
|
return Response.error();
|
|
}
|
|
|
|
return Response.success(resultMap);
|
|
}
|
|
}
|