130 lines
4.2 KiB
Java
130 lines
4.2 KiB
Java
package com.example.caseData.controller;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.example.caseData.common.Response;
|
|
import com.example.caseData.dao.*;
|
|
import com.example.caseData.dto.T;
|
|
import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
|
import com.example.caseData.model.*;
|
|
import com.example.caseData.service.CaseClinicalArticleService;
|
|
import com.example.caseData.service.CaseClinicalVideoService;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("")
|
|
public class CaseClinicalVideoController {
|
|
@Resource
|
|
private CaseClinicalVideoDao caseClinicalVideoDao;
|
|
|
|
@Resource
|
|
private CaseClinicalVideoAuthorDao caseClinicalVideoAuthorDao;
|
|
|
|
@Resource
|
|
private StatsCaseClinicalDoctorDao statsCaseClinicalDoctorDao;
|
|
|
|
@Resource
|
|
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
|
|
|
@Resource
|
|
private BasicHospitalDao basicHospitalDao;
|
|
|
|
@Resource
|
|
private HttpServletRequest httpServletRequest;
|
|
|
|
@Resource
|
|
private CaseClinicalVideoService caseClinicalVideoService;
|
|
|
|
/**
|
|
* 临床病例库-视频-详情
|
|
*/
|
|
@GetMapping("/clinical/video/{video_id}")
|
|
public Response<CaseClinicalVideoDto> getClinicalHospitalSearchPage(
|
|
@PathVariable("video_id") String videoId
|
|
) {
|
|
// 获取视频数据
|
|
CaseClinicalVideoModel article = caseClinicalVideoDao.selectById(videoId);
|
|
if (article == null) {
|
|
return Response.error("非法视频");
|
|
}
|
|
|
|
// 查找作者
|
|
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
|
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, article.getVideoId());
|
|
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
|
|
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
|
|
// 查询医生
|
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
|
|
|
// 查询医生所属医院
|
|
BasicHospitalModel basicHospital = basicHospitalDao.selectById(caseClinicalDoctor.getHospitalId());
|
|
caseClinicalDoctor.setBasicHospital(basicHospital);
|
|
|
|
author.setCaseClinicalDoctor(caseClinicalDoctor);
|
|
}
|
|
|
|
article.setAuthor(caseClinicalVideoAuthors);
|
|
|
|
CaseClinicalVideoDto g = CaseClinicalVideoDto.GetDto(article);
|
|
|
|
// 是否已收藏
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
if (userId != null) {
|
|
// 检测用户是否已收藏过
|
|
UserCollectClinicalVideoModel userCollectClinicalVideo = caseClinicalVideoService.getUserCollectClinicalVideoStatus(videoId,userId);
|
|
if (userCollectClinicalVideo != null) {
|
|
g.setCollect(true);
|
|
}
|
|
}
|
|
|
|
return Response.success(g);
|
|
}
|
|
|
|
/**
|
|
* 临床病例库-文章-收藏
|
|
*/
|
|
@PostMapping("/clinical/video/collect/{video_id}")
|
|
public Response<T> AddClinicalVideoCollect(
|
|
@PathVariable("video_id") String articleId
|
|
) {
|
|
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
if (userId == null) {
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
boolean res = caseClinicalVideoService.AddClinicalVideoCollect(articleId,userId);
|
|
if (!res){
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
return Response.success();
|
|
}
|
|
|
|
/**
|
|
* 临床病例库-文章-取消收藏
|
|
*/
|
|
@DeleteMapping("/clinical/video/collect/{video_id}")
|
|
public Response<T> DeleteClinicalVideoCollect(
|
|
@PathVariable("video_id") String videoId
|
|
) {
|
|
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
if (userId == null) {
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
boolean res = caseClinicalVideoService.DeleteClinicalVideoCollect(videoId,userId);
|
|
if (!res){
|
|
return Response.error("操作失败");
|
|
}
|
|
|
|
return Response.success();
|
|
}
|
|
}
|