This commit is contained in:
wucongxing8150 2025-07-30 11:53:00 +08:00
parent 2f92f54cb6
commit 667ffdb9ea
2 changed files with 62 additions and 121 deletions

View File

@ -60,6 +60,9 @@ public class addClinicalVideoApp {
@JsonProperty("doctorIden")
private String doctorIden; // 医生app唯一标识
@JsonProperty("doctorName")
private String doctorName; // 医生app名称
@JsonProperty("hospitalIden")
private String hospitalIden; // 医院app唯一标识
}

View File

@ -8,6 +8,7 @@ import com.example.caseData.extend.app.UserInfo.GetUserInfoResponse;
import com.example.caseData.extend.app.UserInfo.UserInfo;
import com.example.caseData.extend.app.UserPoint.UserPoint;
import com.example.caseData.extend.app.Video.Video;
import com.example.caseData.extend.app.label.Label;
import com.example.caseData.model.*;
import com.example.caseData.model.UserCollectClinicalVideoModel;
import com.example.caseData.request.CaseClinicalVideoRequest.addClinicalVideoApp;
@ -50,6 +51,9 @@ public class CaseClinicalVideoService {
@Resource
private UserDao userDao;
@Resource
private BasicHospitalDao basicHospitalDao;
@Resource
private StatsCaseClinicalHospitalDao statsCaseClinicalHospitalDao;
@ -587,7 +591,7 @@ public class CaseClinicalVideoService {
caseClinicalVideoAuthorDao.insert(caseClinicalVideoAuthor);
// 新增作者统计
caseClinicalService.IncStatsCaseClinicalDoctor(String.valueOf(caseClinicalDoctor.getDoctorId()),2,LocalDateTime.parse(r.getPushDate()));
caseClinicalService.IncStatsCaseClinicalDoctor(String.valueOf(caseClinicalDoctor.getDoctorId()),2,pushDate);
// 新增医院统计
caseClinicalService.IncStatsCaseClinicalHospital(String.valueOf(caseClinicalDoctor.getHospitalId()),2,pushDate);
@ -650,10 +654,6 @@ public class CaseClinicalVideoService {
*/
@Transactional
public void AddClinicalVideoAppAuthor(CaseClinicalVideoModel caseClinicalVideo,addClinicalVideoApp r){
// 处理作者
List<String> aAuthorList = new ArrayList<>();
List<String> bAuthorList = new ArrayList<>();
// 获取全部作者
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, caseClinicalVideo.getVideoId());
@ -667,60 +667,42 @@ public class CaseClinicalVideoService {
throw new BusinessException("-1", "无法完成此操作");
}
aAuthorList.add(caseClinicalDoctor.getDoctorIden());
}
for (addClinicalVideoApp.Author author : r.getAuthor()){
bAuthorList.add(author.getDoctorIden());
}
// 1. 删除的a 中有b 中没有
List<String> deleted = new ArrayList<>();
for (String s : aAuthorList) {
if (!bAuthorList.contains(s)) {
deleted.add(s);
}
}
// 2. 新增的b 中有a 中没有
List<String> added = new ArrayList<>();
for (String s : bAuthorList) {
if (!aAuthorList.contains(s)) {
added.add(s);
}
}
// 删除
if (!deleted.isEmpty()) {
for (String s : deleted) {
// 获取医生数据
LambdaQueryWrapper<CaseClinicalDoctorModel> doctorQueryWrapper = new LambdaQueryWrapper<>();
doctorQueryWrapper.eq(CaseClinicalDoctorModel::getDoctorIden,s);
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectOne(doctorQueryWrapper);
if (caseClinicalDoctor == null) {
// 获取医院数据
BasicHospitalModel basicHospital = basicHospitalDao.selectById(caseClinicalDoctor.getHospitalId());
if (basicHospital == null) {
throw new BusinessException("-1", "无法完成此操作");
}
// 删除视频作者
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> videoAuthorQueryWrapper = new LambdaQueryWrapper<>();
videoAuthorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, caseClinicalVideo.getVideoId());
videoAuthorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getDoctorId, caseClinicalDoctor.getDoctorId());
caseClinicalVideoAuthorDao.delete(videoAuthorQueryWrapper);
// 减少作者统计
caseClinicalService.DecStatsCaseClinicalDoctor(String.valueOf(caseClinicalDoctor.getDoctorId()),2);
// 减少医院统计
caseClinicalService.DecStatsCaseClinicalHospital(String.valueOf(caseClinicalDoctor.getHospitalId()),2);
}
// 删除该作者
caseClinicalVideoAuthorDao.deleteById(author.getAuthorId());
}
// 新增
if (!added.isEmpty()) {
for (String appIden : added){
// 新增新的作者
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime pushDate = LocalDateTime.parse(r.getPushDate(), formatter);
// 获取app用户数据
GetUserInfoResponse result = userInfo.getUserInfoByUuid(appIden);
CaseClinicalDoctorModel caseClinicalDoctor = userService.GetCaseClinicalDoctor(result);
for (addClinicalVideoApp.Author author : r.getAuthor()){
CaseClinicalDoctorModel caseClinicalDoctor = new CaseClinicalDoctorModel();
if (author.getDoctorIden() != null && !author.getDoctorIden().isEmpty()) {
GetUserInfoResponse result = userInfo.getUserInfoByUuid(author.getDoctorIden());
caseClinicalDoctor = userService.GetCaseClinicalDoctor(result);
}else{
GetUserInfoResponse result = new GetUserInfoResponse();
GetUserInfoResponse.ResponsData resultData = new GetUserInfoResponse.ResponsData();
resultData.setOfficeName(author.getDoctorName());
resultData.setRealname(author.getDoctorName());
resultData.setHospitalUuid(author.getHospitalIden());
result.setData(resultData);
caseClinicalDoctor = userService.GetCaseClinicalDoctor(result);
}
CaseClinicalVideoAuthorModel caseClinicalVideoAuthor = new CaseClinicalVideoAuthorModel();
caseClinicalVideoAuthor.setVideoId(caseClinicalVideo.getVideoId());
@ -728,11 +710,10 @@ public class CaseClinicalVideoService {
caseClinicalVideoAuthorDao.insert(caseClinicalVideoAuthor);
// 新增作者统计
caseClinicalService.IncStatsCaseClinicalDoctor(String.valueOf(caseClinicalDoctor.getDoctorId()),2,LocalDateTime.parse(r.getPushDate()));
caseClinicalService.IncStatsCaseClinicalDoctor(String.valueOf(caseClinicalDoctor.getDoctorId()),2,pushDate);
// 新增医院统计
caseClinicalService.IncStatsCaseClinicalHospital(String.valueOf(caseClinicalDoctor.getHospitalId()),2,LocalDateTime.parse(r.getPushDate()));
}
caseClinicalService.IncStatsCaseClinicalHospital(String.valueOf(caseClinicalDoctor.getHospitalId()),2,pushDate);
}
}
@ -743,73 +724,30 @@ public class CaseClinicalVideoService {
*/
@Transactional
public void AddClinicalVideoAppLabel(CaseClinicalVideoModel caseClinicalVideo,addClinicalVideoApp r){
List<String> aList = new ArrayList<>();
List<String> bList = new ArrayList<>();
// 获取全部b标签
LambdaQueryWrapper<CaseClinicalVideoLabelModel> labelQueryWrapper = new LambdaQueryWrapper<>();
labelQueryWrapper.eq(CaseClinicalVideoLabelModel::getVideoId, caseClinicalVideo.getVideoId());
List<CaseClinicalVideoLabelModel> caseClinicalVideoLabels = caseClinicalVideoLabelDao.selectList(labelQueryWrapper);
for (CaseClinicalVideoLabelModel label : caseClinicalVideoLabels){
aList.add(label.getAppIden());
// 减少标签统计
caseClinicalService.DecStatsCaseClinicalLabel(label.getAppIden(),2);
// 删除视频标签
caseClinicalVideoLabelDao.deleteById(label.getVideoLabelId());
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime pushDate = LocalDateTime.parse(r.getPushDate(), formatter);
for (addClinicalVideoApp.Label label : r.getLabel()){
bList.add(label.getAppIden());
}
// 1. 删除的a 中有b 中没有
List<String> deleted = new ArrayList<>();
for (String s : aList) {
if (!bList.contains(s)) {
deleted.add(s);
}
}
// 2. 新增的b 中有a 中没有
List<String> added = new ArrayList<>();
for (String s : bList) {
if (!aList.contains(s)) {
added.add(s);
}
}
// 删除
if (!deleted.isEmpty()) {
for (String s : deleted) {
// 删除视频标签
LambdaQueryWrapper<CaseClinicalVideoLabelModel> videoLabelQueryWrapper = new LambdaQueryWrapper<>();
videoLabelQueryWrapper.eq(CaseClinicalVideoLabelModel::getVideoId, caseClinicalVideo.getVideoId());
videoLabelQueryWrapper.eq(CaseClinicalVideoLabelModel::getAppIden, s);
caseClinicalVideoLabelDao.delete(videoLabelQueryWrapper);
// 减少标签统计
caseClinicalService.DecStatsCaseClinicalLabel(s,2);
}
}
// 新增
if (!added.isEmpty()) {
for (String appIden : added){
CaseClinicalVideoLabelModel caseClinicalVideoLabel = new CaseClinicalVideoLabelModel();
caseClinicalVideoLabel.setVideoId(caseClinicalVideo.getVideoId());
caseClinicalVideoLabel.setAppIden(appIden);
String labelName = "";
LocalDateTime pushDate = LocalDateTime.parse("");
for (addClinicalVideoApp.Label label : r.getLabel()){
if (Objects.equals(appIden, label.getAppIden())){
caseClinicalVideoLabel.setAppIden(label.getAppIden());
caseClinicalVideoLabel.setLabelName(label.getLabelName());
}
}
caseClinicalVideoLabel.setLabelName(labelName);
caseClinicalVideoLabelDao.insert(caseClinicalVideoLabel);
// 新增标签统计
caseClinicalService.IncStatsCaseClinicalLabel(appIden,caseClinicalVideoLabel.getLabelName(),2,pushDate);
}
caseClinicalService.IncStatsCaseClinicalLabel(label.getAppIden(),caseClinicalVideoLabel.getLabelName(),2,pushDate);
}
}