展示效果上图
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; }