1
This commit is contained in:
parent
8841975427
commit
fa8278939e
@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.example.caseData.common.Response;
|
import com.example.caseData.common.Response;
|
||||||
import com.example.caseData.dao.*;
|
import com.example.caseData.dao.*;
|
||||||
|
import com.example.caseData.dto.T;
|
||||||
import com.example.caseData.dto.basicHospital.BasicHospitalDto;
|
import com.example.caseData.dto.basicHospital.BasicHospitalDto;
|
||||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||||
import com.example.caseData.exception.BusinessException;
|
import com.example.caseData.exception.BusinessException;
|
||||||
import com.example.caseData.model.*;
|
import com.example.caseData.model.*;
|
||||||
|
import com.example.caseData.request.UserRequest;
|
||||||
|
import com.example.caseData.request.clinicalRequest.addClinicalArticleComment;
|
||||||
import com.example.caseData.request.clinicalRequest.getClinicalHospitalSearchPage;
|
import com.example.caseData.request.clinicalRequest.getClinicalHospitalSearchPage;
|
||||||
import com.example.caseData.service.CaseClinicalArticleService;
|
import com.example.caseData.service.CaseClinicalArticleService;
|
||||||
import com.example.caseData.service.UserService;
|
import com.example.caseData.service.UserService;
|
||||||
@ -44,7 +47,7 @@ public class CaseClinicalArticleController {
|
|||||||
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HttpServletRequest request;
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CaseClinicalArticleService caseClinicalArticleService;
|
private CaseClinicalArticleService caseClinicalArticleService;
|
||||||
@ -77,10 +80,21 @@ public class CaseClinicalArticleController {
|
|||||||
|
|
||||||
author.setCaseClinicalDoctor(caseClinicalDoctor);
|
author.setCaseClinicalDoctor(caseClinicalDoctor);
|
||||||
}
|
}
|
||||||
|
|
||||||
article.setAuthor(caseClinicalArticleAuthors);
|
article.setAuthor(caseClinicalArticleAuthors);
|
||||||
|
|
||||||
|
// 处理返回值
|
||||||
CaseClinicalArticleDto g = CaseClinicalArticleDto.GetDto(article);
|
CaseClinicalArticleDto g = CaseClinicalArticleDto.GetDto(article);
|
||||||
|
|
||||||
|
// 是否已收藏
|
||||||
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||||
|
if (userId != null) {
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalArticleModel userCollectClinicalArticle = caseClinicalArticleService.getUserCollectClinicalArticleStatus(articleId,userId);
|
||||||
|
if (userCollectClinicalArticle != null) {
|
||||||
|
g.setCollect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Response.success(g);
|
return Response.success(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,11 +102,11 @@ public class CaseClinicalArticleController {
|
|||||||
* 临床病例库-文章-收藏
|
* 临床病例库-文章-收藏
|
||||||
*/
|
*/
|
||||||
@PostMapping("/clinical/article/collect/{article_id}")
|
@PostMapping("/clinical/article/collect/{article_id}")
|
||||||
public Response<CaseClinicalArticleDto> AddClinicalArticleCollect(
|
public Response<T> AddClinicalArticleCollect(
|
||||||
@PathVariable("article_id") String articleId
|
@PathVariable("article_id") String articleId
|
||||||
) {
|
) {
|
||||||
|
|
||||||
String userId = (String) request.getAttribute("userId");
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
if (userId == null) {
|
if (userId == null) {
|
||||||
return Response.error("操作失败");
|
return Response.error("操作失败");
|
||||||
@ -105,4 +119,49 @@ public class CaseClinicalArticleController {
|
|||||||
|
|
||||||
return Response.success();
|
return Response.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 临床病例库-文章-取消收藏
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/clinical/article/collect/{article_id}")
|
||||||
|
public Response<T> DeleteClinicalArticleCollect(
|
||||||
|
@PathVariable("article_id") String articleId
|
||||||
|
) {
|
||||||
|
|
||||||
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
|
if (userId == null) {
|
||||||
|
return Response.error("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean res = caseClinicalArticleService.DeleteClinicalArticleCollect(articleId,userId);
|
||||||
|
if (!res){
|
||||||
|
return Response.error("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 临床病例库-文章-评论
|
||||||
|
*/
|
||||||
|
@PostMapping("/clinical/article/comment/{article_id}")
|
||||||
|
public Response<T> AddClinicalArticleComment(
|
||||||
|
@PathVariable("article_id") String articleId,
|
||||||
|
@Validated() addClinicalArticleComment request
|
||||||
|
) {
|
||||||
|
|
||||||
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
|
if (userId == null) {
|
||||||
|
return Response.error("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean res = caseClinicalArticleService.AddClinicalArticleComment(articleId,userId,request.getComment());
|
||||||
|
if (!res){
|
||||||
|
return Response.error("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,16 +3,14 @@ package com.example.caseData.controller;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.example.caseData.common.Response;
|
import com.example.caseData.common.Response;
|
||||||
import com.example.caseData.dao.*;
|
import com.example.caseData.dao.*;
|
||||||
|
import com.example.caseData.dto.T;
|
||||||
import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
||||||
import com.example.caseData.model.BasicHospitalModel;
|
import com.example.caseData.model.*;
|
||||||
import com.example.caseData.model.CaseClinicalVideoAuthorModel;
|
import com.example.caseData.service.CaseClinicalArticleService;
|
||||||
import com.example.caseData.model.CaseClinicalVideoModel;
|
import com.example.caseData.service.CaseClinicalVideoService;
|
||||||
import com.example.caseData.model.CaseClinicalDoctorModel;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -34,6 +32,12 @@ public class CaseClinicalVideoController {
|
|||||||
@Resource
|
@Resource
|
||||||
private BasicHospitalDao basicHospitalDao;
|
private BasicHospitalDao basicHospitalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalVideoService caseClinicalVideoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 临床病例库-视频-详情
|
* 临床病例库-视频-详情
|
||||||
*/
|
*/
|
||||||
@ -65,6 +69,61 @@ public class CaseClinicalVideoController {
|
|||||||
article.setAuthor(caseClinicalVideoAuthors);
|
article.setAuthor(caseClinicalVideoAuthors);
|
||||||
|
|
||||||
CaseClinicalVideoDto g = CaseClinicalVideoDto.GetDto(article);
|
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);
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,14 +13,14 @@ import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
|||||||
import com.example.caseData.dto.caseClinicalVideoAuthor.CaseClinicalVideoAuthorDto;
|
import com.example.caseData.dto.caseClinicalVideoAuthor.CaseClinicalVideoAuthorDto;
|
||||||
import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorDto;
|
import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorDto;
|
||||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||||
import com.example.caseData.model.BasicHospitalModel;
|
import com.example.caseData.model.*;
|
||||||
import com.example.caseData.model.CaseClinicalArticleAuthorModel;
|
|
||||||
import com.example.caseData.model.CaseClinicalDoctorModel;
|
|
||||||
import com.example.caseData.model.CaseClinicalVideoAuthorModel;
|
|
||||||
import com.example.caseData.request.clinicalRequest.getClinicalDoctorSearchPage;
|
import com.example.caseData.request.clinicalRequest.getClinicalDoctorSearchPage;
|
||||||
import com.example.caseData.request.clinicalRequest.getClinicalHospitalSearchPage;
|
import com.example.caseData.request.clinicalRequest.getClinicalHospitalSearchPage;
|
||||||
import com.example.caseData.request.clinicalRequest.getClinicalSearchPage;
|
import com.example.caseData.request.clinicalRequest.getClinicalSearchPage;
|
||||||
|
import com.example.caseData.service.CaseClinicalArticleService;
|
||||||
|
import com.example.caseData.service.CaseClinicalVideoService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@ -61,14 +61,25 @@ public class ClinicalController extends BaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private BasicHospitalDao basicHospitalDao;
|
private BasicHospitalDao basicHospitalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalArticleService caseClinicalArticleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalVideoService caseClinicalVideoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 临床病例库-搜索
|
* 临床病例库-搜索
|
||||||
*/
|
*/
|
||||||
@PostMapping("/clinical/search")
|
@PostMapping("/clinical/search")
|
||||||
public Response<Map<String, Object>> getClinicalSearchPage(
|
public Response<Map<String, Object>> getClinicalSearchPage(
|
||||||
@Validated({getClinicalSearchPage.class})
|
@Validated()
|
||||||
@RequestBody getClinicalSearchPage request
|
@RequestBody getClinicalSearchPage request
|
||||||
) {
|
) {
|
||||||
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
request.validateForPage();
|
request.validateForPage();
|
||||||
|
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
@ -100,6 +111,15 @@ public class ClinicalController extends BaseController {
|
|||||||
|
|
||||||
List<CaseClinicalArticleAuthorDto> caseClinicalArticleAuthorListDto = CaseClinicalArticleAuthorDto.GetListDto(caseClinicalArticleAuthors);
|
List<CaseClinicalArticleAuthorDto> caseClinicalArticleAuthorListDto = CaseClinicalArticleAuthorDto.GetListDto(caseClinicalArticleAuthors);
|
||||||
dto.setAuthor(caseClinicalArticleAuthorListDto);
|
dto.setAuthor(caseClinicalArticleAuthorListDto);
|
||||||
|
|
||||||
|
// 获取用户收藏状态
|
||||||
|
if (userId != null) {
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalArticleModel userCollectClinicalArticle = caseClinicalArticleService.getUserCollectClinicalArticleStatus(dto.getArticleId(),userId);
|
||||||
|
if (userCollectClinicalArticle != null) {
|
||||||
|
dto.setCollect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resultMap.put("page", resultPage.getCurrent());
|
resultMap.put("page", resultPage.getCurrent());
|
||||||
@ -131,6 +151,15 @@ public class ClinicalController extends BaseController {
|
|||||||
|
|
||||||
List<CaseClinicalVideoAuthorDto> caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(caseClinicalVideoAuthors);
|
List<CaseClinicalVideoAuthorDto> caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(caseClinicalVideoAuthors);
|
||||||
dto.setAuthor(caseClinicalVideoAuthorListDto);
|
dto.setAuthor(caseClinicalVideoAuthorListDto);
|
||||||
|
|
||||||
|
// 获取用户收藏状态
|
||||||
|
if (userId != null) {
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalVideoModel userCollectClinicalVideo = caseClinicalVideoService.getUserCollectClinicalVideoStatus(dto.getVideoId(),userId);
|
||||||
|
if (userCollectClinicalVideo != null) {
|
||||||
|
dto.setCollect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resultMap.put("page", resultPage.getCurrent());
|
resultMap.put("page", resultPage.getCurrent());
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package com.example.caseData.dao;
|
package com.example.caseData.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||||
import com.example.caseData.model.CaseClinicalArticleModel;
|
import com.example.caseData.model.CaseClinicalArticleModel;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -28,4 +30,25 @@ public interface CaseClinicalArticleDao extends BaseMapper<CaseClinicalArticleMo
|
|||||||
@Param("doctor_id") String doctorId,
|
@Param("doctor_id") String doctorId,
|
||||||
@Param("order") Map<String, String> order
|
@Param("order") Map<String, String> order
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inc 自增
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 增加的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE case_clinical_article SET ${field} = ${field} + #{numeral} WHERE article_id = #{articleId}")
|
||||||
|
int inc(@Param("articleId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dec 自减
|
||||||
|
*
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 减少的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE case_clinical_article SET ${field} = ${field} - #{numeral} WHERE article_id = #{articleId}")
|
||||||
|
int dec(@Param("articleId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
}
|
}
|
||||||
@ -8,6 +8,7 @@ import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
|||||||
import com.example.caseData.model.CaseClinicalVideoModel;
|
import com.example.caseData.model.CaseClinicalVideoModel;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -28,4 +29,25 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoModel>
|
|||||||
@Param("labelName") String labelName,
|
@Param("labelName") String labelName,
|
||||||
@Param("order") Map<String, String> order
|
@Param("order") Map<String, String> order
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inc 自增
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 增加的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE case_clinical_video SET ${field} = ${field} + #{numeral} WHERE video_id = #{videoId}")
|
||||||
|
int inc(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dec 自减
|
||||||
|
*
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 减少的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE case_clinical_video SET ${field} = ${field} - #{numeral} WHERE video_id = #{videoId}")
|
||||||
|
int dec(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
}
|
}
|
||||||
@ -2,6 +2,28 @@ package com.example.caseData.dao;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.example.caseData.model.StatsCaseClinicalModel;
|
import com.example.caseData.model.StatsCaseClinicalModel;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
public interface StatsCaseClinicalDao extends BaseMapper<StatsCaseClinicalModel> {
|
public interface StatsCaseClinicalDao extends BaseMapper<StatsCaseClinicalModel> {
|
||||||
|
/**
|
||||||
|
* Inc 自增
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 增加的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical SET ${field} = ${field} + #{numeral} WHERE stats_id = #{statsId}")
|
||||||
|
int inc(@Param("statsId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dec 自减
|
||||||
|
*
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 减少的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical SET ${field} = ${field} - #{numeral} WHERE stats_id = #{statsId}")
|
||||||
|
int dec(@Param("statsId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
}
|
}
|
||||||
@ -7,6 +7,7 @@ import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorD
|
|||||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||||
import com.example.caseData.model.StatsCaseClinicalDoctorModel;
|
import com.example.caseData.model.StatsCaseClinicalDoctorModel;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -22,4 +23,25 @@ public interface StatsCaseClinicalDoctorDao extends BaseMapper<StatsCaseClinical
|
|||||||
@Param("doctor_name") String doctorName,
|
@Param("doctor_name") String doctorName,
|
||||||
@Param("order") Map<String, String> order
|
@Param("order") Map<String, String> order
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inc 自增
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 增加的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical_doctor SET ${field} = ${field} + #{numeral} WHERE doctor_id = #{doctorId}")
|
||||||
|
int inc(@Param("doctorId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dec 自减
|
||||||
|
*
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 减少的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical_doctor SET ${field} = ${field} - #{numeral} WHERE doctor_id = #{doctorId}")
|
||||||
|
int dec(@Param("doctorId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
}
|
}
|
||||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||||
import com.example.caseData.model.StatsCaseClinicalHospitalModel;
|
import com.example.caseData.model.StatsCaseClinicalHospitalModel;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
import org.checkerframework.checker.units.qual.N;
|
import org.checkerframework.checker.units.qual.N;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -22,4 +23,25 @@ public interface StatsCaseClinicalHospitalDao extends BaseMapper<StatsCaseClinic
|
|||||||
@Param("hospital_name") String hospitalName,
|
@Param("hospital_name") String hospitalName,
|
||||||
@Param("order") Map<String, String> order
|
@Param("order") Map<String, String> order
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inc 自增
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 增加的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical_hospital SET ${field} = ${field} + #{numeral} WHERE hospital_id = #{hospitalId}")
|
||||||
|
int inc(@Param("hospitalId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dec 自减
|
||||||
|
*
|
||||||
|
* @param articleId 文章 ID
|
||||||
|
* @param field 字段名称
|
||||||
|
* @param numeral 减少的数值
|
||||||
|
* @return 更新的行数
|
||||||
|
*/
|
||||||
|
@Update("UPDATE stats_case_clinical_hospital SET ${field} = ${field} - #{numeral} WHERE hospital_id = #{hospitalId}")
|
||||||
|
int dec(@Param("hospitalId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
|
||||||
}
|
}
|
||||||
@ -47,7 +47,6 @@ public class CaseClinicalArticleDto {
|
|||||||
* 发表时间
|
* 发表时间
|
||||||
*/
|
*/
|
||||||
@JsonProperty("push_date")
|
@JsonProperty("push_date")
|
||||||
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private LocalDateTime pushDate;
|
private LocalDateTime pushDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -74,6 +73,12 @@ public class CaseClinicalArticleDto {
|
|||||||
@JsonProperty("author")
|
@JsonProperty("author")
|
||||||
private List<CaseClinicalArticleAuthorDto> author;
|
private List<CaseClinicalArticleAuthorDto> author;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏状态
|
||||||
|
*/
|
||||||
|
@JsonProperty("is_collect")
|
||||||
|
private boolean isCollect;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表
|
* 列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -78,6 +78,12 @@ public class CaseClinicalVideoDto {
|
|||||||
@JsonProperty("author")
|
@JsonProperty("author")
|
||||||
private List<CaseClinicalVideoAuthorDto> author;
|
private List<CaseClinicalVideoAuthorDto> author;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏状态
|
||||||
|
*/
|
||||||
|
@JsonProperty("is_collect")
|
||||||
|
private boolean isCollect;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表
|
* 列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.example.caseData.request.clinicalRequest;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class addClinicalArticleComment {
|
||||||
|
// 评论内容
|
||||||
|
@JsonProperty("comment")
|
||||||
|
private String comment;
|
||||||
|
}
|
||||||
@ -1,19 +1,49 @@
|
|||||||
package com.example.caseData.service;
|
package com.example.caseData.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.example.caseData.dao.UserCollectClinicalArticleDao;
|
import com.example.caseData.dao.*;
|
||||||
|
import com.example.caseData.model.CaseClinicalArticleAuthorModel;
|
||||||
|
import com.example.caseData.model.CaseClinicalDoctorModel;
|
||||||
import com.example.caseData.model.UserCollectClinicalArticleModel;
|
import com.example.caseData.model.UserCollectClinicalArticleModel;
|
||||||
|
import com.example.caseData.model.UserModel;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
|
||||||
import static com.baomidou.mybatisplus.extension.toolkit.Db.save;
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//import static com.baomidou.mybatisplus.extension.toolkit.Db.removeById;
|
||||||
|
//import static com.baomidou.mybatisplus.extension.toolkit.Db.save;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class CaseClinicalArticleService {
|
public class CaseClinicalArticleService {
|
||||||
@Resource
|
@Resource
|
||||||
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalArticleDao caseClinicalArticleDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalDao statsCaseClinicalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserDao userDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalHospitalDao statsCaseClinicalHospitalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalDoctorDao statsCaseClinicalDoctorDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalArticleAuthorDao caseClinicalArticleAuthorDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增收藏-临床病例库-文章
|
* 新增收藏-临床病例库-文章
|
||||||
* @param articleId 文章id
|
* @param articleId 文章id
|
||||||
@ -23,10 +53,7 @@ public class CaseClinicalArticleService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public boolean AddClinicalArticleCollect(String articleId,String userId){
|
public boolean AddClinicalArticleCollect(String articleId,String userId){
|
||||||
// 检测用户是否已收藏过
|
// 检测用户是否已收藏过
|
||||||
LambdaQueryWrapper<UserCollectClinicalArticleModel> mapQueryWrapper = new LambdaQueryWrapper<>();
|
UserCollectClinicalArticleModel userCollectClinicalArticle = getUserCollectClinicalArticleStatus(articleId,userId);
|
||||||
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getUserId, userId);
|
|
||||||
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getArticleId, articleId);
|
|
||||||
UserCollectClinicalArticleModel userCollectClinicalArticle = userCollectClinicalArticleDao.selectOne(mapQueryWrapper);
|
|
||||||
if (userCollectClinicalArticle != null) {
|
if (userCollectClinicalArticle != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -35,6 +62,103 @@ public class CaseClinicalArticleService {
|
|||||||
UserCollectClinicalArticleModel userCollectClinicalArticleData = new UserCollectClinicalArticleModel();
|
UserCollectClinicalArticleModel userCollectClinicalArticleData = new UserCollectClinicalArticleModel();
|
||||||
userCollectClinicalArticleData.setUserId(Long.valueOf(userId));
|
userCollectClinicalArticleData.setUserId(Long.valueOf(userId));
|
||||||
userCollectClinicalArticleData.setArticleId(Long.valueOf(articleId));
|
userCollectClinicalArticleData.setArticleId(Long.valueOf(articleId));
|
||||||
return save(userCollectClinicalArticleData);
|
int res = userCollectClinicalArticleDao.insert(userCollectClinicalArticleData);
|
||||||
|
if (res <= 0){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 增加文章收藏数
|
||||||
|
caseClinicalArticleDao.inc(Long.valueOf(articleId),"collect_num",1);
|
||||||
|
|
||||||
|
// 增加文章总收藏数
|
||||||
|
statsCaseClinicalDao.inc(1L,"article_collect_num",1);
|
||||||
|
|
||||||
|
// 获取文章作者
|
||||||
|
LambdaQueryWrapper<CaseClinicalArticleAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId);
|
||||||
|
List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper);
|
||||||
|
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
|
||||||
|
// 查询医生
|
||||||
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
||||||
|
|
||||||
|
// 增加医院文章收藏数
|
||||||
|
statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1);
|
||||||
|
|
||||||
|
// 增加医生文章收藏数
|
||||||
|
statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏-临床病例库-文章
|
||||||
|
* @param articleId 文章id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public boolean DeleteClinicalArticleCollect(String articleId,String userId){
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalArticleModel userCollectClinicalArticle = getUserCollectClinicalArticleStatus(articleId,userId);
|
||||||
|
if (userCollectClinicalArticle == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除收藏
|
||||||
|
int res = userCollectClinicalArticleDao.deleteById(userCollectClinicalArticle.getCollectId());
|
||||||
|
if (res <= 0){
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 减少文章收藏数
|
||||||
|
caseClinicalArticleDao.dec(Long.valueOf(articleId),"collect_num",1);
|
||||||
|
|
||||||
|
// 减少文章总收藏数
|
||||||
|
statsCaseClinicalDao.dec(1L,"article_collect_num",1);
|
||||||
|
|
||||||
|
// 获取文章作者
|
||||||
|
LambdaQueryWrapper<CaseClinicalArticleAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId);
|
||||||
|
List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper);
|
||||||
|
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
|
||||||
|
// 查询医生
|
||||||
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
||||||
|
|
||||||
|
// 减少医院文章收藏数
|
||||||
|
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_collect_num",1);
|
||||||
|
|
||||||
|
// 减少医生文章收藏数
|
||||||
|
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"article_collect_num",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增评论-临床病例库-文章
|
||||||
|
* @param articleId 文章id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public boolean AddClinicalArticleComment(String articleId,String userId,String comment){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户收藏数据
|
||||||
|
* @param articleId 文章id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool false:未收藏 true:已收藏
|
||||||
|
*/
|
||||||
|
public UserCollectClinicalArticleModel getUserCollectClinicalArticleStatus(String articleId,String userId){
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
LambdaQueryWrapper<UserCollectClinicalArticleModel> mapQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getUserId, userId);
|
||||||
|
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getArticleId, articleId);
|
||||||
|
|
||||||
|
return userCollectClinicalArticleDao.selectOne(mapQueryWrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,150 @@
|
|||||||
|
package com.example.caseData.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.example.caseData.dao.*;
|
||||||
|
import com.example.caseData.model.*;
|
||||||
|
import com.example.caseData.model.UserCollectClinicalVideoModel;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//import static com.baomidou.mybatisplus.extension.toolkit.Db.removeById;
|
||||||
|
//import static com.baomidou.mybatisplus.extension.toolkit.Db.save;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CaseClinicalVideoService {
|
||||||
|
@Resource
|
||||||
|
private UserCollectClinicalVideoDao userCollectClinicalVideoDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalVideoDao caseClinicalVideoDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalDao statsCaseClinicalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserDao userDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalHospitalDao statsCaseClinicalHospitalDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StatsCaseClinicalDoctorDao statsCaseClinicalDoctorDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalVideoAuthorDao caseClinicalVideoAuthorDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增收藏-临床病例库-视频
|
||||||
|
* @param videoId 视频id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public boolean AddClinicalVideoCollect(String videoId,String userId){
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalVideoModel userCollectClinicalVideo = getUserCollectClinicalVideoStatus(videoId,userId);
|
||||||
|
if (userCollectClinicalVideo != null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增收藏
|
||||||
|
UserCollectClinicalVideoModel userCollectClinicalVideoData = new UserCollectClinicalVideoModel();
|
||||||
|
userCollectClinicalVideoData.setUserId(Long.valueOf(userId));
|
||||||
|
userCollectClinicalVideoData.setVideoId(Long.valueOf(videoId));
|
||||||
|
int res = userCollectClinicalVideoDao.insert(userCollectClinicalVideoData);
|
||||||
|
if (res <= 0){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 增加视频收藏数
|
||||||
|
caseClinicalVideoDao.inc(Long.valueOf(videoId),"collect_num",1);
|
||||||
|
|
||||||
|
// 增加视频总收藏数
|
||||||
|
statsCaseClinicalDao.inc(1L,"article_collect_num",1);
|
||||||
|
|
||||||
|
// 获取视频作者
|
||||||
|
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId);
|
||||||
|
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
|
||||||
|
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
|
||||||
|
// 查询医生
|
||||||
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
||||||
|
|
||||||
|
// 增加医院视频收藏数
|
||||||
|
statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1);
|
||||||
|
|
||||||
|
// 增加医生视频收藏数
|
||||||
|
statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏-临床病例库-视频
|
||||||
|
* @param videoId 视频id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public boolean DeleteClinicalVideoCollect(String videoId,String userId){
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
UserCollectClinicalVideoModel userCollectClinicalVideo = getUserCollectClinicalVideoStatus(videoId,userId);
|
||||||
|
if (userCollectClinicalVideo == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除收藏
|
||||||
|
int res = userCollectClinicalVideoDao.deleteById(userCollectClinicalVideo.getCollectId());
|
||||||
|
if (res <= 0){
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 减少视频收藏数
|
||||||
|
caseClinicalVideoDao.dec(Long.valueOf(videoId),"collect_num",1);
|
||||||
|
|
||||||
|
// 减少视频总收藏数
|
||||||
|
statsCaseClinicalDao.dec(1L,"article_collect_num",1);
|
||||||
|
|
||||||
|
// 获取视频作者
|
||||||
|
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId);
|
||||||
|
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
|
||||||
|
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
|
||||||
|
// 查询医生
|
||||||
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
|
||||||
|
|
||||||
|
// 减少医院视频收藏数
|
||||||
|
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_collect_num",1);
|
||||||
|
|
||||||
|
// 减少医生视频收藏数
|
||||||
|
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"article_collect_num",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户收藏数据
|
||||||
|
* @param videoId 视频id
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return bool false:未收藏 true:已收藏
|
||||||
|
*/
|
||||||
|
public UserCollectClinicalVideoModel getUserCollectClinicalVideoStatus(String videoId, String userId){
|
||||||
|
// 检测用户是否已收藏过
|
||||||
|
LambdaQueryWrapper<UserCollectClinicalVideoModel> mapQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
mapQueryWrapper.eq(UserCollectClinicalVideoModel::getUserId, userId);
|
||||||
|
mapQueryWrapper.eq(UserCollectClinicalVideoModel::getVideoId, videoId);
|
||||||
|
|
||||||
|
return userCollectClinicalVideoDao.selectOne(mapQueryWrapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user