关于Feign调用 远程调用接口 (实例)

关于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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值