case-data-api/src/main/java/com/example/caseData/controller/CaseClinicalVideoController.java
2025-05-19 13:33:07 +08:00

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();
}
}