case-data-api/src/main/java/com/example/caseData/controller/StatsCaseClinicalController.java
2025-07-29 15:34:31 +08:00

209 lines
7.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.caseClinicalArticle.CaseClinicalArticleDto;
import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto;
import com.example.caseData.dto.caseExchange.CaseExchangeDto;
import com.example.caseData.dto.statsCaseClinical.StatsCaseClinicalDto;
import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorDto;
import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto;
import com.example.caseData.dto.statsCaseClinicalLabel.StatsCaseClinicalLabelDto;
import com.example.caseData.model.*;
import com.example.caseData.request.StatsCaseClinicalRequest.getClinicalStatsLabel;
import com.example.caseData.request.caseLabelRequest.getCaseLabel;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api")
public class StatsCaseClinicalController extends BaseController {
@Resource
private StatsCaseClinicalDao statsCaseClinicalDao;
@Resource
private StatsCaseClinicalHospitalDao statsCaseClinicalHospitalDao;
@Resource
private StatsCaseClinicalDoctorDao statsCaseClinicalDoctorDao;
@Resource
private StatsCaseClinicalLabelDao statsCaseClinicalLabelDao;
@Resource
private CaseClinicalArticleDao caseClinicalArticleDao;
@Resource
private CaseClinicalVideoDao caseClinicalVideoDao;
/**
* 临床病例库-统计
*/
@GetMapping("/clinical/stats")
public Response<StatsCaseClinicalDto> getClinicalStats(){
// 统计表-病例库-临床
LambdaQueryWrapper<StatsCaseClinicalModel> statsCaseClinicalQueryWrapper = new LambdaQueryWrapper<>();
StatsCaseClinicalModel statsCaseClinical = statsCaseClinicalDao.selectOne(statsCaseClinicalQueryWrapper);
StatsCaseClinicalDto g = StatsCaseClinicalDto.GetDto(statsCaseClinical);
if (g == null){
return Response.success(new StatsCaseClinicalDto());
}
return Response.success(g);
}
/**
* 临床病例库-统计-医院
*/
@GetMapping("/clinical/stats/hospital/{hospital_id}")
public Response<StatsCaseClinicalHospitalDto> getClinicalStatsHospital(
@PathVariable("hospital_id") String hospitalId
){
Integer articleReadNum = 0;
Integer videoReadNum = 0;
// 获取该标签下文章数据
List<CaseClinicalArticleDto> caseClinicalArticles = caseClinicalArticleDao.getCaseClinicalArticleSearchList(
"",
hospitalId,
"",
"",
null
);
for (CaseClinicalArticleDto article : caseClinicalArticles){
articleReadNum += article.getReadNum();
}
// 获取该标签下视频数据
List<CaseClinicalVideoDto> caseClinicalVideos = caseClinicalVideoDao.getCaseClinicalVideoSearchList(
"",
hospitalId,
"",
"",
null
);
for (CaseClinicalVideoDto video : caseClinicalVideos){
videoReadNum += video.getReadNum();
}
StatsCaseClinicalHospitalDto g = new StatsCaseClinicalHospitalDto();
g.setStatsId("1");
g.setArticleNum(caseClinicalArticles.size());
g.setArticleReadNum(articleReadNum);
g.setVideoNum(caseClinicalVideos.size());
g.setVideoReadNum(videoReadNum);
//
// // 统计表-病例库-临床
// LambdaQueryWrapper<StatsCaseClinicalHospitalModel> statsCaseClinicalHospitalQueryWrapper = new LambdaQueryWrapper<>();
// statsCaseClinicalHospitalQueryWrapper.eq(StatsCaseClinicalHospitalModel::getHospitalId, hospitalId);
// StatsCaseClinicalHospitalModel statsCaseClinicalHospital = statsCaseClinicalHospitalDao.selectOne(statsCaseClinicalHospitalQueryWrapper);
//
// StatsCaseClinicalHospitalDto g = StatsCaseClinicalHospitalDto.GetDto(statsCaseClinicalHospital);
//
// if (g == null){
// return Response.success(new StatsCaseClinicalHospitalDto());
// }
return Response.success(g);
}
/**
* 临床病例库-统计-医生
*/
@GetMapping("/clinical/stats/doctor/{doctor_id}")
public Response<StatsCaseClinicalDoctorDto> getClinicalStatsDoctor(
@PathVariable("doctor_id") String doctorId
){
Integer articleReadNum = 0;
Integer videoReadNum = 0;
// 获取该标签下文章数据
List<CaseClinicalArticleDto> caseClinicalArticles = caseClinicalArticleDao.getCaseClinicalArticleSearchList(
"",
"",
doctorId,
"",
null
);
for (CaseClinicalArticleDto article : caseClinicalArticles){
articleReadNum += article.getReadNum();
}
// 获取该标签下视频数据
List<CaseClinicalVideoDto> caseClinicalVideos = caseClinicalVideoDao.getCaseClinicalVideoSearchList(
"",
"",
doctorId,
"",
null
);
for (CaseClinicalVideoDto video : caseClinicalVideos){
videoReadNum += video.getReadNum();
}
StatsCaseClinicalDoctorDto g = new StatsCaseClinicalDoctorDto();
g.setStatsId("1");
g.setArticleNum(caseClinicalArticles.size());
g.setArticleReadNum(articleReadNum);
g.setVideoNum(caseClinicalVideos.size());
g.setVideoReadNum(videoReadNum);
return Response.success(g);
}
/**
* 临床病例库-统计-疾病标签
*/
@GetMapping("/clinical/stats/label")
public Response<StatsCaseClinicalLabelDto> getClinicalStatsLabel(
@Validated() @ModelAttribute getClinicalStatsLabel request
){
Integer articleReadNum = 0;
Integer videoReadNum = 0;
// 获取该标签下文章数据
List<CaseClinicalArticleDto> caseClinicalArticles = caseClinicalArticleDao.getCaseClinicalArticleSearchList(
"",
"",
"",
request.getLabel_iden(),
null
);
for (CaseClinicalArticleDto article : caseClinicalArticles){
articleReadNum += article.getReadNum();
}
// 获取该标签下视频数据
List<CaseClinicalVideoDto> caseClinicalVideos = caseClinicalVideoDao.getCaseClinicalVideoSearchList(
"",
"",
"",
request.getLabel_iden(),
null
);
for (CaseClinicalVideoDto video : caseClinicalVideos){
videoReadNum += video.getReadNum();
}
StatsCaseClinicalLabelDto g = new StatsCaseClinicalLabelDto();
g.setStatsId("1");
g.setArticleNum(caseClinicalArticles.size());
g.setArticleReadNum(articleReadNum);
g.setVideoNum(caseClinicalVideos.size());
g.setVideoReadNum(videoReadNum);
return Response.success(g);
}
}