Java 获取疫情数据

展示效果上图 

1、小程序传appid

@ApiOperation(value = "获取疫情数据")
@GetMapping("/getCoivd")
public BaseResponse<CovidDataVO> getCoivd(@RequestHeader(name = "appId") String appId) {

    return success(orgService.getCoivd(appId));
}

2、封装实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CovidDataVO {
    //市新增
    private String cityAdd = "0";
    //省新增
    private String provinceAdd = "0";
    //国内新增无症状
    private String domesticNoAdd = "0";
    //国内新增确诊
    private String domesticAdd = "0";
    //数据更新时间
    private String updateTime = "0";
    //城市
    private String city;
    //省
    private String province;
}

3、去新浪微博疫情接口拿疫情数据

public CovidDataVO getCoivd(String appId){
    CovidDataVO covidDataVO=new CovidDataVO();

    String url="https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5";
    String content=HttpUtil.get(url);
    JSONObject parseObj= JSON.parseObject(content);
    String data = parseObj.getString("data");
    JSONObject parseObj1= JSON.parseObject(data);
    //lastUpdateTime和chinaAdd和areaTree为同一级
    //数据更新时间
    String lastUpdateTime = parseObj1.getString("lastUpdateTime");
    //国家数据
    String chinaAdd = parseObj1.getString("chinaAdd");
    JSONObject parseObj11= JSON.parseObject(chinaAdd);
    //国内新增确诊
    String nowConfirm = parseObj11.getString("confirm");
    //国内新增无症状
    String noInfect = parseObj11.getString("noInfect");
    covidDataVO.setUpdateTime(lastUpdateTime);
    covidDataVO.setDomesticAdd(nowConfirm);
    covidDataVO.setDomesticNoAdd(noInfect);
    //查询组织
    OrgWxMini orgWxMini=orgWxMiniMapper.selectOne(new QueryWrapper<OrgWxMini>().eq(OrgWxMini.APP_ID,appId));
    if(null!=orgWxMini&&null!=orgWxMini.getProvince()&&null!=orgWxMini.getCity()){
        covidDataVO.setCity(orgWxMini.getCity());
        covidDataVO.setProvince(orgWxMini.getProvince());
        //城市数据
        String areaTree1 = parseObj1.getString("areaTree");
        JSONArray areeTree=JSON.parseArray(areaTree1);
        for (int i = 0; i < areeTree.size(); i++) {
            JSONObject OBJ=  areeTree.getJSONObject(i);
            JSONArray children=OBJ.getJSONArray("children");
            for (int j=0;j<children.size();j++){
                JSONObject sheng=children.getJSONObject(j);
                if(JSON.toJSONString(sheng).contains(orgWxMini.getProvince())){
                    System.out.println("省====:"+JSON.toJSONString(sheng));
                    JSONArray shiArr=sheng.getJSONArray("children");
                    JSONObject today=sheng.getJSONObject("today");
                    String confirm=today.getString("confirm");
                    //省新增
                    covidDataVO.setProvinceAdd(confirm);
                    for (int k=0;k<shiArr.size();k++){
                        JSONObject shi=shiArr.getJSONObject(k);
                        if(JSON.toJSONString(shi).contains(orgWxMini.getCity())){
                            System.out.println("市====:"+JSON.toJSONString(shi));
                            JSONObject today1=shi.getJSONObject("today");
                            String confirm1=today1.getString("confirm");
                            //市新增
                            covidDataVO.setCityAdd(confirm1);
                            break;
                        }
                    }
                }

            }
        }
    }
    return covidDataVO;
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值