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.example.caseData.common.Response;
|
||||
import com.example.caseData.dao.*;
|
||||
import com.example.caseData.dto.T;
|
||||
import com.example.caseData.dto.basicHospital.BasicHospitalDto;
|
||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||
import com.example.caseData.exception.BusinessException;
|
||||
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.service.CaseClinicalArticleService;
|
||||
import com.example.caseData.service.UserService;
|
||||
@ -44,7 +47,7 @@ public class CaseClinicalArticleController {
|
||||
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
||||
|
||||
@Resource
|
||||
private HttpServletRequest request;
|
||||
private HttpServletRequest httpServletRequest;
|
||||
|
||||
@Resource
|
||||
private CaseClinicalArticleService caseClinicalArticleService;
|
||||
@ -77,10 +80,21 @@ public class CaseClinicalArticleController {
|
||||
|
||||
author.setCaseClinicalDoctor(caseClinicalDoctor);
|
||||
}
|
||||
|
||||
article.setAuthor(caseClinicalArticleAuthors);
|
||||
|
||||
// 处理返回值
|
||||
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);
|
||||
}
|
||||
|
||||
@ -88,11 +102,11 @@ public class CaseClinicalArticleController {
|
||||
* 临床病例库-文章-收藏
|
||||
*/
|
||||
@PostMapping("/clinical/article/collect/{article_id}")
|
||||
public Response<CaseClinicalArticleDto> AddClinicalArticleCollect(
|
||||
public Response<T> AddClinicalArticleCollect(
|
||||
@PathVariable("article_id") String articleId
|
||||
) {
|
||||
|
||||
String userId = (String) request.getAttribute("userId");
|
||||
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||
|
||||
if (userId == null) {
|
||||
return Response.error("操作失败");
|
||||
@ -105,4 +119,49 @@ public class CaseClinicalArticleController {
|
||||
|
||||
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.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.BasicHospitalModel;
|
||||
import com.example.caseData.model.CaseClinicalVideoAuthorModel;
|
||||
import com.example.caseData.model.CaseClinicalVideoModel;
|
||||
import com.example.caseData.model.CaseClinicalDoctorModel;
|
||||
import com.example.caseData.model.*;
|
||||
import com.example.caseData.service.CaseClinicalArticleService;
|
||||
import com.example.caseData.service.CaseClinicalVideoService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -34,6 +32,12 @@ public class CaseClinicalVideoController {
|
||||
@Resource
|
||||
private BasicHospitalDao basicHospitalDao;
|
||||
|
||||
@Resource
|
||||
private HttpServletRequest httpServletRequest;
|
||||
|
||||
@Resource
|
||||
private CaseClinicalVideoService caseClinicalVideoService;
|
||||
|
||||
/**
|
||||
* 临床病例库-视频-详情
|
||||
*/
|
||||
@ -65,6 +69,61 @@ public class CaseClinicalVideoController {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,14 +13,14 @@ import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
|
||||
import com.example.caseData.dto.caseClinicalVideoAuthor.CaseClinicalVideoAuthorDto;
|
||||
import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorDto;
|
||||
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
|
||||
import com.example.caseData.model.BasicHospitalModel;
|
||||
import com.example.caseData.model.CaseClinicalArticleAuthorModel;
|
||||
import com.example.caseData.model.CaseClinicalDoctorModel;
|
||||
import com.example.caseData.model.CaseClinicalVideoAuthorModel;
|
||||
import com.example.caseData.model.*;
|
||||
import com.example.caseData.request.clinicalRequest.getClinicalDoctorSearchPage;
|
||||
import com.example.caseData.request.clinicalRequest.getClinicalHospitalSearchPage;
|
||||
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.servlet.http.HttpServletRequest;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -61,14 +61,25 @@ public class ClinicalController extends BaseController {
|
||||
@Resource
|
||||
private BasicHospitalDao basicHospitalDao;
|
||||
|
||||
@Resource
|
||||
private HttpServletRequest httpServletRequest;
|
||||
|
||||
@Resource
|
||||
private CaseClinicalArticleService caseClinicalArticleService;
|
||||
|
||||
@Resource
|
||||
private CaseClinicalVideoService caseClinicalVideoService;
|
||||
|
||||
/**
|
||||
* 临床病例库-搜索
|
||||
*/
|
||||
@PostMapping("/clinical/search")
|
||||
public Response<Map<String, Object>> getClinicalSearchPage(
|
||||
@Validated({getClinicalSearchPage.class})
|
||||
@Validated()
|
||||
@RequestBody getClinicalSearchPage request
|
||||
) {
|
||||
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||
|
||||
request.validateForPage();
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
@ -100,6 +111,15 @@ public class ClinicalController extends BaseController {
|
||||
|
||||
List<CaseClinicalArticleAuthorDto> caseClinicalArticleAuthorListDto = CaseClinicalArticleAuthorDto.GetListDto(caseClinicalArticleAuthors);
|
||||
dto.setAuthor(caseClinicalArticleAuthorListDto);
|
||||
|
||||
// 获取用户收藏状态
|
||||
if (userId != null) {
|
||||
// 检测用户是否已收藏过
|
||||
UserCollectClinicalArticleModel userCollectClinicalArticle = caseClinicalArticleService.getUserCollectClinicalArticleStatus(dto.getArticleId(),userId);
|
||||
if (userCollectClinicalArticle != null) {
|
||||
dto.setCollect(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resultMap.put("page", resultPage.getCurrent());
|
||||
@ -131,6 +151,15 @@ public class ClinicalController extends BaseController {
|
||||
|
||||
List<CaseClinicalVideoAuthorDto> caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(caseClinicalVideoAuthors);
|
||||
dto.setAuthor(caseClinicalVideoAuthorListDto);
|
||||
|
||||
// 获取用户收藏状态
|
||||
if (userId != null) {
|
||||
// 检测用户是否已收藏过
|
||||
UserCollectClinicalVideoModel userCollectClinicalVideo = caseClinicalVideoService.getUserCollectClinicalVideoStatus(dto.getVideoId(),userId);
|
||||
if (userCollectClinicalVideo != null) {
|
||||
dto.setCollect(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resultMap.put("page", resultPage.getCurrent());
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
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.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||
import com.example.caseData.model.CaseClinicalArticleModel;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@ -28,4 +30,25 @@ public interface CaseClinicalArticleDao extends BaseMapper<CaseClinicalArticleMo
|
||||
@Param("doctor_id") String doctorId,
|
||||
@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 org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@ -28,4 +29,25 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoModel>
|
||||
@Param("labelName") String labelName,
|
||||
@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.example.caseData.model.StatsCaseClinicalModel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
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.model.StatsCaseClinicalDoctorModel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@ -22,4 +23,25 @@ public interface StatsCaseClinicalDoctorDao extends BaseMapper<StatsCaseClinical
|
||||
@Param("doctor_name") String doctorName,
|
||||
@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.model.StatsCaseClinicalHospitalModel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.checkerframework.checker.units.qual.N;
|
||||
|
||||
import java.util.Map;
|
||||
@ -22,4 +23,25 @@ public interface StatsCaseClinicalHospitalDao extends BaseMapper<StatsCaseClinic
|
||||
@Param("hospital_name") String hospitalName,
|
||||
@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")
|
||||
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private LocalDateTime pushDate;
|
||||
|
||||
/**
|
||||
@ -74,6 +73,12 @@ public class CaseClinicalArticleDto {
|
||||
@JsonProperty("author")
|
||||
private List<CaseClinicalArticleAuthorDto> author;
|
||||
|
||||
/**
|
||||
* 收藏状态
|
||||
*/
|
||||
@JsonProperty("is_collect")
|
||||
private boolean isCollect;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
|
||||
@ -78,6 +78,12 @@ public class CaseClinicalVideoDto {
|
||||
@JsonProperty("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;
|
||||
|
||||
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.UserModel;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
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
|
||||
public class CaseClinicalArticleService {
|
||||
@Resource
|
||||
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
|
||||
@ -23,10 +53,7 @@ public class CaseClinicalArticleService {
|
||||
@Transactional
|
||||
public boolean AddClinicalArticleCollect(String articleId,String userId){
|
||||
// 检测用户是否已收藏过
|
||||
LambdaQueryWrapper<UserCollectClinicalArticleModel> mapQueryWrapper = new LambdaQueryWrapper<>();
|
||||
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getUserId, userId);
|
||||
mapQueryWrapper.eq(UserCollectClinicalArticleModel::getArticleId, articleId);
|
||||
UserCollectClinicalArticleModel userCollectClinicalArticle = userCollectClinicalArticleDao.selectOne(mapQueryWrapper);
|
||||
UserCollectClinicalArticleModel userCollectClinicalArticle = getUserCollectClinicalArticleStatus(articleId,userId);
|
||||
if (userCollectClinicalArticle != null) {
|
||||
return true;
|
||||
}
|
||||
@ -35,6 +62,103 @@ public class CaseClinicalArticleService {
|
||||
UserCollectClinicalArticleModel userCollectClinicalArticleData = new UserCollectClinicalArticleModel();
|
||||
userCollectClinicalArticleData.setUserId(Long.valueOf(userId));
|
||||
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