package com.moral.api.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.moral.api.service.CityAqiService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import com.moral.util.WebUtils; @RestController @RequestMapping("/aqi") @CrossOrigin(origins = "*", maxAge = 3600) @Api(tags = {"aqi"}) public class AqiController { @Autowired private CityAqiService cityAqiService; @GetMapping("compareO3") @ApiOperation(value = "预测和实测臭氧对比", notes = "预测和实测臭氧对比") @ApiImplicitParams(value = { @ApiImplicitParam(name = "regionCode", value = "区号", required = true, paramType = "query", dataType = "String") }) public ResultMessage measuredCompareForecast(HttpServletRequest request) { Map params = WebUtils.getParametersStartingWith(request, null); if (!params.containsKey("regionCode") || !params.containsKey("time")) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } List> response = cityAqiService.measuredCompareForecastOfO3(params); return ResultMessage.ok(response); } /** * @Description: 查询最新的6参和aqi数据 * @Param: [regionCode] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/1 */ @GetMapping("queryByRegionCode") public ResultMessage queryByRegionCode(Integer regionCode) { Map value = cityAqiService.queryCityAqiByRegionCode(regionCode); return ResultMessage.ok(value); } /** * @Description: 查询最近24小时的aqi数据 * @Param: [regionCode] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/1 */ @GetMapping("query24HoursAQI") public ResultMessage query24HoursAQIByRegionCode(Integer regionCode) { Map datas = cityAqiService.query24HoursAqiByRegionCode(regionCode); return ResultMessage.ok(datas); } /** * @Description: 查询当天的累计aqi以及主要污染物 * @Param: [RegionCode] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/2 */ @GetMapping("queryTodayAqiAndPollutant") public ResultMessage queryTodayAqiAndPollutant(Integer regionCode){ Map datas = cityAqiService.queryTodayAqiAndPollutant(regionCode); return ResultMessage.ok(datas); } @GetMapping("provincialRanking") @ApiOperation(value = "省内排名", notes = "省内排名") @ApiImplicitParams(value = { @ApiImplicitParam(name = "organizationId", value = "组织id", required = true, paramType = "query", dataType = "Integer") }) public ResultMessage provincialRanking(Integer organizationId) { if (ObjectUtils.isEmpty(organizationId)) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } Map response = cityAqiService.provincialRanking(organizationId); return ResultMessage.ok(response); } @GetMapping("rankingDetails") @ApiOperation(value = "排名详情", notes = "排名详情") @ApiImplicitParams(value = { }) public ResultMessage rankingDetails() { List> response = new ArrayList<>(); Map map1 = new HashMap<>(); map1.put("rank", 1); map1.put("cityName", "邯郸"); map1.put("aqi", 75); map1.put("compositeIndex", 4.23); map1.put("pm2_5", 55); map1.put("pm10", 74); map1.put("so2", 12); map1.put("no2", 46); map1.put("co", 0.6); map1.put("o3", 19); map1.put("o3_8h", 18); map1.put("primary", "o3"); Map map2 = new HashMap<>(); map2.put("rank", 2); map2.put("cityName", "沧州"); map2.put("aqi", 72); map2.put("compositeIndex", 3.20); map2.put("pm2_5", 65); map2.put("pm10", 89); map2.put("so2", 23); map2.put("no2", 65); map2.put("co", 0.3); map2.put("o3", 23); map2.put("o3_8h", 24); map2.put("primary", "pm10"); Map map3 = new HashMap<>(); map3.put("rank", 3); map3.put("cityName", "保定"); map3.put("aqi", 68); map3.put("compositeIndex", 3.56); map3.put("pm2_5", 56); map3.put("pm10", 62); map3.put("so2", 65); map3.put("no2", 54); map3.put("co", 0.6); map3.put("o3", 36); map3.put("o3_8h", 30); map3.put("primary", "so2"); response.add(map1); response.add(map2); response.add(map3); return ResultMessage.ok(response); } }