新增了标签

This commit is contained in:
wucongxing8150 2025-06-11 17:52:28 +08:00
parent b05be13e5c
commit 872e6dc49c
5 changed files with 200 additions and 0 deletions

View File

@ -0,0 +1,47 @@
package com.example.caseData.controller;
import com.example.caseData.common.Response;
import com.example.caseData.dto.caseLabel.GetCaseLabelDto;
import com.example.caseData.dto.user.UserDto;
import com.example.caseData.extend.app.Hospital.GetHospitalByUuidResponse;
import com.example.caseData.extend.app.Hospital.Hospital;
import com.example.caseData.extend.app.label.GetLabelsResponse;
import com.example.caseData.extend.app.label.Label;
import com.example.caseData.request.UserRequest.UserRequest;
import com.example.caseData.request.caseLabelRequest.getCaseLabel;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api")
public class CaseLabelController {
@Resource
private Label label;
/**
* 获取疾病标签数据
*/
@GetMapping("/case/label")
public Response<List<GetCaseLabelDto>> getCaseLabel(@Validated() @ModelAttribute getCaseLabel request) {
GetLabelsResponse result = label.getLabels(request.getPId());
List<GetLabelsResponse.GetLabelsData> datas = result.getData();
List<GetCaseLabelDto> labelDtoList = new ArrayList<>();
for (GetLabelsResponse.GetLabelsData d : datas) {
GetCaseLabelDto dto = new GetCaseLabelDto();
dto.setAppIden(d.getId());
dto.setLabelName(d.getName());
labelDtoList.add(dto);
}
return Response.success(labelDtoList);
}
}

View File

@ -0,0 +1,19 @@
package com.example.caseData.dto.caseLabel;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class GetCaseLabelDto {
/**
* app唯一标识
*/
@JsonProperty("app_iden")
private String appIden;
/**
* 标签名称
*/
@JsonProperty("label_name")
private String labelName;
}

View File

@ -0,0 +1,55 @@
package com.example.caseData.extend.app.label;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class GetLabelsResponse
{
/** 接口调用状态。200正常其它值调用出错 */
private int code;
/** 结果说明。如果接口调用出错,那么返回错误描述。成功则返回 ok */
private String msg;
/** 接口返回的用户信息数据 */
private List<GetLabelsData> data;
/** 接口是否调用成功 */
private boolean success;
/** 错误信息或提示信息 */
private String message;
/**
* 根据统一标签列表 - 详细数据
*/
@Data
public static class GetLabelsData {
/**
* 标签名称
*/
private String name;
/**
* id
*/
private String id;
/**
* 子标签数量
*/
@JsonProperty("children_size")
private String childrenSize;
/**
* p_id
*/
@JsonProperty("p_id")
private String pId;
}
}

View File

@ -0,0 +1,69 @@
package com.example.caseData.extend.app.label;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.example.caseData.config.AppConfig;
import com.example.caseData.exception.BusinessException;
import com.example.caseData.extend.app.Base;
import com.example.caseData.extend.app.Hospital.GetHospitalByUuidResponse;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Component
public class Label extends Base {
@Resource
private AppConfig appConfig;
// 根据医院唯一标识获取医院数据
public GetLabelsResponse getLabels(String p_id) throws BusinessException {
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
// 处理参数
Map<String, Object> requestData = new HashMap<>();
requestData.put("p_id", p_id);
requestData.put("platform", appConfig.getPlatform());
requestData.put("timestamp", timestamp);
// 生成签名
String sign = genSignature(requestData,appConfig.getSecretKey());
String url = appConfig.getApiUrl() + "/expert-api/getLabels";
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
GetLabelsResponse result = JSONUtil.toBean(response.body(), GetLabelsResponse.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

@ -0,0 +1,10 @@
package com.example.caseData.request.caseLabelRequest;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
@Data
public class getCaseLabel {
@NotEmpty(message = "参数错误")
private String pId = "0";
}