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 getClinicalHospitalSearchPage( @PathVariable("video_id") String videoId ) { // 获取视频数据 CaseClinicalVideoModel article = caseClinicalVideoDao.selectById(videoId); if (article == null) { return Response.error("非法视频"); } // 查找作者 LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, article.getVideoId()); List 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 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 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(); } }