修改了返回值11111

This commit is contained in:
wucongxing8150 2025-08-12 18:08:18 +08:00
parent 5509480265
commit 6814bd7b6e
8 changed files with 161 additions and 79 deletions

View File

@ -42,6 +42,9 @@ public class GetHospitalByUuidResponse
/** 城市 */
private String city_name;
/** 区县 */
private String county_name;
/** 医生数量 */
private Integer expert_num;
}

View File

@ -65,4 +65,50 @@ public class Hospital extends Base {
return result;
}
}
// 根据医院名称获取医院数据
public GetHospitalByUuidResponse getHospitalByName(String hospitalIden) throws BusinessException {
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
// 处理参数
Map<String, Object> requestData = new HashMap<>();
requestData.put("hospital_uuid", hospitalIden);
requestData.put("platform", appConfig.getPlatform());
requestData.put("timestamp", timestamp);
// 生成签名
String sign = genSignature(requestData,appConfig.getSecretKey());
String url = appConfig.getApiUrl() + "/expert-api/getHospitalByUuid";
String jsonBody = JSONUtil.toJsonStr(requestData);
log.info("获取app数据参数:{}",jsonBody);
try(HttpResponse response = HttpRequest.post(url)
.header("Content-Type", "application/json")
.header("sign", sign)
.body(jsonBody)
.execute()){
if (response.getStatus() != 200) {
throw new BusinessException("失败");
}
// 反序列化 JSON
GetHospitalByUuidResponse result = JSONUtil.toBean(response.body(), GetHospitalByUuidResponse.class);
log.info("获取app数据返回:{}",result);
if (result.getCode() != 200){
if (!Objects.equals(result.getMsg(), "")){
throw new BusinessException(result.getMsg());
}else{
throw new BusinessException("失败");
}
}
if (result.getData() == null){
throw new BusinessException("失败");
}
return result;
}
}
}

View File

@ -1,11 +1,16 @@
package net.lab1024.sa.admin.module.business.basicHospital.service;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.lab1024.sa.admin.extend.app.Hospital.GetHospitalByUuidResponse;
import net.lab1024.sa.admin.extend.app.Hospital.Hospital;
import net.lab1024.sa.admin.module.business.basicHospital.dao.BasicHospitalDao;
import net.lab1024.sa.admin.module.business.basicHospital.domain.entity.BasicHospitalEntity;
import net.lab1024.sa.admin.module.business.basicHospital.domain.form.BasicHospitalQueryForm;
import net.lab1024.sa.admin.module.business.basicHospital.domain.form.BasicHospitalQueryListForm;
import net.lab1024.sa.admin.module.business.basicHospital.domain.vo.BasicHospitalVO;
import net.lab1024.sa.base.common.exception.BusinessException;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
@ -16,6 +21,8 @@ import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import static com.baomidou.mybatisplus.extension.toolkit.Db.save;
/**
* 基础数据-医院 Service
*
@ -30,6 +37,9 @@ public class BasicHospitalService {
@Resource
private BasicHospitalDao basicHospitalDao;
@Resource
private Hospital hospital;
/**
* 分页查询
*/
@ -43,6 +53,75 @@ public class BasicHospitalService {
* 列表查询
*/
public List<BasicHospitalVO> queryList(BasicHospitalQueryListForm queryForm) {
// 获取app医院名称
try {
GetAppHospitalByName(queryForm.getKeywords());
} catch (Exception e) {
// 不处理
}
return basicHospitalDao.queryList(queryForm);
}
/**
* 获取app医院数据
* @param hospitalIden app医院唯一标识
* @return BasicHospitalEntity
*/
public BasicHospitalEntity GetAppHospital(String hospitalIden) throws BusinessException {
// 查询数据库医院信息
LambdaQueryWrapper<BasicHospitalEntity> basicHospitalWrapper = new LambdaQueryWrapper<>();
basicHospitalWrapper.eq(BasicHospitalEntity::getHospitalIden, hospitalIden);
BasicHospitalEntity basicHospital = basicHospitalDao.selectOne(basicHospitalWrapper);
if (basicHospital == null){
// 请求接口获取数据
GetHospitalByUuidResponse result = hospital.getHospitalByUuid(hospitalIden);
GetHospitalByUuidResponse.GetHospitalByUuidData data = result.getData();
// 构造 UserEntity 对象
basicHospital = new BasicHospitalEntity();
basicHospital.setHospitalIden(hospitalIden);
basicHospital.setHospitalName(data.getName());
basicHospital.setSource(2);
basicHospital.setHospitalLevel(data.getLevel());
basicHospital.setDoctorNumber(data.getExpert_num());
basicHospital.setProvince(data.getProv_name());
basicHospital.setCity(data.getCity_name());
basicHospital.setCounty(data.getCounty_name());
save(basicHospital);
}
return basicHospital;
}
/**
* 获取app医院数据 -名称搜索
* @param hospitalName app医院名称
* @return BasicHospitalEntity
*/
public BasicHospitalEntity GetAppHospitalByName(String hospitalName) throws BusinessException {
// 查询数据库医院信息
LambdaQueryWrapper<BasicHospitalEntity> basicHospitalWrapper = new LambdaQueryWrapper<>();
basicHospitalWrapper.eq(BasicHospitalEntity::getHospitalName, hospitalName);
BasicHospitalEntity basicHospital = basicHospitalDao.selectOne(basicHospitalWrapper);
if (basicHospital == null){
// 请求接口获取数据
GetHospitalByUuidResponse result = hospital.getHospitalByName(hospitalName);
GetHospitalByUuidResponse.GetHospitalByUuidData data = result.getData();
// 构造 UserEntity 对象
basicHospital = new BasicHospitalEntity();
basicHospital.setHospitalIden(data.getUuid());
basicHospital.setHospitalName(data.getName());
basicHospital.setSource(2);
basicHospital.setHospitalLevel(data.getLevel());
basicHospital.setDoctorNumber(data.getExpert_num());
basicHospital.setProvince(data.getProv_name());
basicHospital.setCity(data.getCity_name());
basicHospital.setCounty(data.getCounty_name());
save(basicHospital);
}
return basicHospital;
}
}

View File

@ -39,8 +39,8 @@ public interface CaseClinicalArticleDao extends BaseMapper<CaseClinicalArticleEn
* @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);
@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 自减
@ -50,10 +50,10 @@ public interface CaseClinicalArticleDao extends BaseMapper<CaseClinicalArticleEn
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE stats_case_clinical " +
@Update("UPDATE case_clinical_article " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE stats_id = #{statsId}")
int dec(@Param("statsId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
"WHERE article_id = #{articleId}")
int dec(@Param("articleId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
/**
* 根据医院ID查询该医院最后一篇文章的发表时间

View File

@ -26,6 +26,12 @@ public class AppDoctorVO {
@Schema(description = "省份")
private String province;
@Schema(description = "")
private String city;
@Schema(description = "")
private String county;
@Schema(description = "医院UUID")
private String hospitalUuid;

View File

@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.Objects;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.sa.admin.extend.app.UserInfo.GetUserInfoListResponse;
import net.lab1024.sa.admin.module.business.basicHospital.service.BasicHospitalService;
import net.lab1024.sa.admin.module.business.caseClinical.service.CaseClinicalService;
import net.lab1024.sa.admin.module.business.caseClinicalArticle.dao.CaseClinicalArticleDao;
import net.lab1024.sa.admin.module.business.caseClinicalDoctor.dao.CaseClinicalDoctorDao;
@ -78,6 +79,9 @@ public class CaseClinicalDoctorService {
@Autowired
private CaseClinicalArticleDao caseClinicalArticleDao;
@Autowired
private BasicHospitalService basicHospitalService;
/**
* 分页查询
*/
@ -337,42 +341,15 @@ public class CaseClinicalDoctorService {
// 如果存在hospitalUuid获取医院信息不存储到数据库
if (userData.getHospitalUuid() != null && !userData.getHospitalUuid().trim().isEmpty()) {
// 先查询数据库中是否已存在该医院
LambdaQueryWrapper<BasicHospitalEntity> hospitalQueryWrapper = new LambdaQueryWrapper<>();
hospitalQueryWrapper.eq(BasicHospitalEntity::getHospitalIden, userData.getHospitalUuid());
BasicHospitalEntity existingHospital = basicHospitalDao.selectOne(hospitalQueryWrapper);
if (existingHospital != null) {
// 医院已存在设置hospitalId和hospitalName
appDoctor.setHospitalId(existingHospital.getHospitalId());
appDoctor.setHospitalName(existingHospital.getHospitalName());
} else {
// 医院不存在调用API获取医院信息并存储
GetHospitalByUuidResponse hospitalResponse = hospital.getHospitalByUuid(userData.getHospitalUuid());
if (hospitalResponse == null || hospitalResponse.getData() == null) {
throw new BusinessException("获取医院信息失败:医院数据为空");
}
GetHospitalByUuidResponse.GetHospitalByUuidData hospitalData = hospitalResponse.getData();
// 创建新的医院实体
BasicHospitalEntity newHospital = new BasicHospitalEntity();
newHospital.setHospitalIden(hospitalData.getUuid());
newHospital.setHospitalName(hospitalData.getName());
newHospital.setHospitalLevel(hospitalData.getLevel());
newHospital.setProvince(hospitalData.getProv_name());
newHospital.setCity(hospitalData.getCity_name());
newHospital.setDoctorNumber(hospitalData.getExpert_num());
newHospital.setSource(2); // 默认来源为肝胆相照
// 插入医院数据
basicHospitalDao.insert(newHospital);
// 设置返回的hospitalId和hospitalName
appDoctor.setHospitalId(newHospital.getHospitalId());
appDoctor.setHospitalName(newHospital.getHospitalName());
BasicHospitalEntity existingHospital = basicHospitalService.GetAppHospital(userData.getHospitalUuid());
if (existingHospital == null){
throw new BusinessException("获取医院信息失败:医院数据为空");
}
appDoctor.setHospitalId(existingHospital.getHospitalId());
appDoctor.setHospitalName(existingHospital.getHospitalName());
appDoctor.setCity(existingHospital.getCity());
appDoctor.setCounty(existingHospital.getCounty());
}
appDoctorList.add(appDoctor);
@ -473,34 +450,4 @@ public class CaseClinicalDoctorService {
//
// return caseClinicalDoctor;
// }
/**
* 获取app医院数据
* @param hospitalIden app医院唯一标识
* @return BasicHospitalEntity
*/
public BasicHospitalEntity GetAppHospital(String hospitalIden) throws BusinessException {
// 查询数据库医院信息
LambdaQueryWrapper<BasicHospitalEntity> basicHospitalWrapper = new LambdaQueryWrapper<>();
basicHospitalWrapper.eq(BasicHospitalEntity::getHospitalIden, hospitalIden);
BasicHospitalEntity basicHospital = basicHospitalDao.selectOne(basicHospitalWrapper);
if (basicHospital == null){
// 请求接口获取数据
GetHospitalByUuidResponse result = hospital.getHospitalByUuid(hospitalIden);
GetHospitalByUuidResponse.GetHospitalByUuidData data = result.getData();
// 构造 UserEntity 对象
basicHospital = new BasicHospitalEntity();
basicHospital.setHospitalIden(hospitalIden);
basicHospital.setHospitalName(data.getName());
basicHospital.setSource(2);
basicHospital.setHospitalLevel(data.getLevel());
basicHospital.setDoctorNumber(data.getExpert_num());
basicHospital.setProvince(data.getProv_name());
basicHospital.setCity(data.getCity_name());
save(basicHospital);
}
return basicHospital;
}
}

View File

@ -34,26 +34,27 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoEntity
/**
* Inc 自增
* @param videoId 视频 ID
* @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 videoId, @Param("field") String field, @Param("numeral") int numeral);
@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 videoId 视频 ID
* @param articleId 文章 ID
* @param field 字段名称
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE stats_case_clinical " +
@Update("UPDATE case_clinical_video " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE stats_id = #{statsId}")
int dec(@Param("statsId") Long videoId, @Param("field") String field, @Param("numeral") int numeral);
"WHERE video_id = #{videoId}")
int dec(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
/**
* 根据医院ID查询该医院最后一个视频的发表时间

View File

@ -197,7 +197,7 @@ public class UserCommentClinicalVideoService {
UserCommentClinicalVideoEntity userCommentClinicalVideo = userCommentClinicalVideoDao.selectById(commentId);
if (null == userCommentClinicalVideo) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResponseDTO.userErrorParam("操作失败");
return ResponseDTO.userErrorParam("操作失败1");
}
// 减少文章的统计字段
@ -208,7 +208,7 @@ public class UserCommentClinicalVideoService {
);
if (!r){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResponseDTO.userErrorParam("操作失败");
return ResponseDTO.userErrorParam("操作失败2");
}
userCommentClinicalVideoDao.deleteById(commentId);