关于Feign调用
@Log("数字影像医生服务量")
@PostMapping("/digitalImageDoctorServiceVolume")
public ResponseResult digitalImageDoctorServiceVolume(@RequestBody MonitorHu monitorHu) {
if (ObjectUtil.isNull(monitorHu)) {
return ResponseFormat.retParam(CommonCode.IRREGULAR_PARTICIPATION);
}
log.info("数字影像医生服务量入参monitorHu:{}",monitorHu);
JSONObject jsonObject = digitalStatisticsFeign.queryDoctorServiceVolume(monitorHu).getJSONObject("datas");
if (ObjectUtil.isNull(jsonObject)) {
return ResponseFormat.retParam(CommonCode.FAIL);
}
log.info("调用数字影像医生服务量接口返回:{}", jsonObject);
return ResponseFormat.retParam(CommonCode.SUCCESS, jsonObject);
}
远程调用的接口
package com.imagingunion.risserver.feign;
import com.alibaba.fastjson.JSONObject;
import com.imagingunion.risserver.feign.impl.MsgServiceFeignImpl;
import com.imagingunion.risserver.homepage.model.MonitorHu;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@FeignClient(name = "DigitalStatistics", path = "digitalStatistics", fallbackFactory = MsgServiceFeignImpl.class)
public interface DigitalStatisticsFeign {
/**
* 获取数字影像服务医生服务量及当日服务量
*
* @param monitorHu
* @return
*/
@RequestMapping(value = "/monitoringPlatform/queryDoctorServiceVolume", method = RequestMethod.POST)
JSONObject queryDoctorServiceVolume(@RequestBody MonitorHu monitorHu);
/**
* 获取数字影像服务医生服务量(按时间维度)
*
* @param monitorHu
* @return
*/
@RequestMapping(value = "/monitoringPlatform/queryDoctorServiceChart", method = RequestMethod.POST)
JSONObject queryDoctorServiceVolumeByTime(@RequestBody MonitorHu monitorHu);
}
返回信息的实体类
package com.imagingunion.risserver.feign.impl;
import com.imagingunion.risserver.feign.MsgServiceFeign;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;
@Component
public class MsgServiceFeignImpl implements FallbackFactory<MsgServiceFeign> {
@Override
public MsgServiceFeign create(Throwable cause) {
return new MsgServiceFeign() {
@Override
public String sendSms(String phoneNumber, String templateCode, String templateParam) {
// TODO Auto-generated method stub
return null;
}
@Override
public String sendBatchSms(String phoneNumber, String templateCode, String templateParam) {
// TODO Auto-generated method stub
return null;
}
@Override
public String querySendDetails(String phoneNumber, String sendDate, String currentPage, String pageSize) {
// TODO Auto-generated method stub
return null;
}
};
}
}
公司中的实践()
接口所返回的值和类型
{
"code": 10000,
"datas": {
"content": [
{
"address": "安徽省滁州市全椒县",
"archiveFlag": "1",
"autoUploadType": "2",
"chargeStatus": "0",
"commercialStatus": "1",
"connectStatus": "1",
"dayDataStatus": "2",
"gatewayCount": "0",
"gatewayMonitor": "1",
"gatewayStatus": "1",
"hospitalId": "48614511034112411A1001",
"hospitalName": "全椒县人民医院",
"hospitalType": 7,
"id": "3114",
"installStatus": "1",
"iuWorkStationMonitor": "-",
"level": 3,
"lookPicMonitor": "1",
"lookPicStatus": "1",
"monitorStatus": "1",
"qualityDataMonitor": "1",
"qualityDataStatus": "2",
"runningState": "0",
"scenceId": "1555",
"urlKey": "189"
},
{
"address": "安徽省安庆市大观区",
"archiveFlag": "3",
"autoUploadType": "2",
"chargeStatus": "1",
"commercialStatus": "1",
"connectStatus": "1",
"dayDataStatus": "-",
"gatewayCount": "0",
"gatewayMonitor": "1",
"gatewayStatus": "1",
"hospitalId": "IU_HOSPITAL_00010",
"hospitalName": "安庆市第二人民医院",
"hospitalType": 2,
"id": "4571",
"installStatus": "1",
"iuWorkStationMonitor": "1",
"level": 2,
"lookPicMonitor": "1",
"lookPicStatus": "1",
"monitorStatus": "1",
"qualityDataMonitor": "1",
"qualityDataStatus": "2",
"runningState": "0",
"scenceId": "10253",
"urlKey": "-"
},
{
"address": "安徽省安庆市迎江区",
"archiveFlag": "1",
"autoUploadType": "2",
"chargeStatus": "1",
"commercialStatus": "1",
"connectStatus": "1",
"dayDataStatus": "-",
"gatewayCount": "0",
"gatewayMonitor": "1",
"gatewayStatus": "1",
"hospitalId": "AQSDLRMYY",
"hospitalName": "安庆市精神病医院",
"hospitalType": 2,
"id": "5329",
"installStatus": "1",
"iuWorkStationMonitor": "1",
"level": 3,
"lookPicMonitor": "1",
"lookPicStatus": "1",
"monitorStatus": "1",
"qualityDataMonitor": "1",
"qualityDataStatus": "2",
"runningState": "0",
"scenceId": "10536",
"urlKey": "146"
}
],
"totalElements": 63
},
"message": "操作成功!",
"success": true
}
//只查 商用的医院
IuConnectedHospitalModel iuConnectedHospitalModel = new IuConnectedHospitalModel();
iuConnectedHospitalModel.setCommercialStatus("1");//商用
iuConnectedHospitalModel.setProvince("1114");
iuConnectedHospitalModel.setPage(0);
iuConnectedHospitalModel.setSize(1000);
//先取到datas
JSONObject jsonObject = hospitalFeign.hospitalPage(iuConnectedHospitalModel).getJSONObject("datas");
//在取到content
JSONArray content = jsonObject.getJSONArray("content");
List<IuConnectedHospitalModel> iuConnectedHospitalModels = content.toJavaList(IuConnectedHospitalModel.class);//将JSONArray 类型转换成实体类取医院的id
if (ObjectUtil.isNotEmpty(iuConnectedHospitalModels)) {
for (IuConnectedHospitalModel connectedHospitalModel : iuConnectedHospitalModels) {
String scenceId = connectedHospitalModel.getScenceId();
log.info("id{}", scenceId);
hosIds.add(scenceId);
}
}
log.info("hosIds{}", hosIds);