From 81aeffc830a9c9b551c1acdf1126257d8c3c2c53 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Fri, 07 Jan 2022 12:01:29 +0800 Subject: [PATCH] screen-api 增加获取省内城市优良天气接口 --- screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java | 10 +++ screen-api/src/main/java/com/moral/api/controller/AqiController.java | 76 ++++++++++++++++--------- screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java | 65 +++++++++++++++++++++ screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 19 ++++++ 4 files changed, 142 insertions(+), 28 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AqiController.java b/screen-api/src/main/java/com/moral/api/controller/AqiController.java index a9c210c..29ef335 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AqiController.java +++ b/screen-api/src/main/java/com/moral/api/controller/AqiController.java @@ -3,6 +3,7 @@ import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; +import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.BarChartOfPollutionLevelVO; import com.moral.api.pojo.vo.cityAQI.BarChartTableOfPollutionLevelVO; @@ -113,14 +114,14 @@ } /** - * @Description: ������������������������������������������������ - * @Param: [form] - * @return: com.moral.constant.ResultMessage - * @Author: ��������� - * @Date: 2021/11/22 - */ + * @Description: ������������������������������������������������ + * @Param: [form] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/11/22 + */ @GetMapping("queryBarChartOfPollutionLevel") - public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form){ + public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -134,14 +135,14 @@ } /** - * @Description: ������������������������������������������������������������ - * @Param: [form] - * @return: com.moral.constant.ResultMessage - * @Author: ��������� - * @Date: 2021/11/22 - */ + * @Description: ������������������������������������������������������������ + * @Param: [form] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/11/22 + */ @GetMapping("queryBarChatTableOfPollutionLevel") - public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form){ + public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -200,14 +201,14 @@ } /** - * @Description: ������������������������������������������������ - * @Param: [regionCode] - * @return: com.moral.constant.ResultMessage - * @Author: ��������� - * @Date: 2021/12/30 - */ + * @Description: ������������������������������������������������ + * @Param: [regionCode] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/12/30 + */ @GetMapping("queryAreaPollutionLevel") - public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form){ + public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -219,14 +220,14 @@ } /** - * @Description: ������26+2������������������������ - * @Param: [form] - * @return: com.moral.constant.ResultMessage - * @Author: ��������� - * @Date: 2021/12/31 - */ + * @Description: ������26+2������������������������ + * @Param: [form] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/12/31 + */ @GetMapping("qeury28CitiesPollutionLevel") - public ResultMessage qeury28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form){ + public ResultMessage query28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -237,4 +238,23 @@ return ResultMessage.ok(datas); } + /** + * @Description: ��������������������������������������������� + * @Param: [form] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2022/1/7 + */ + @GetMapping("queryProvinceCitiesPollutionLevel") + public ResultMessage queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) { + //������������������������ + if (!form.valid()) + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + //������������������ + List<CityPollutionLevel> datas = cityAqiDailyService.queryProvinceCitiesPollutionLevel(form); + //������������ + return ResultMessage.ok(datas); + } + } diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java new file mode 100644 index 0000000..1f30e6b --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java @@ -0,0 +1,65 @@ +package com.moral.api.pojo.form.aqi; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.moral.util.DateUtils; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @ClassName ProvinceCitiesPollutionLevelForm + * @Description TODO + * @Author ��������� + * @Date 2022/1/7 11:20 + * @Version TODO + **/ +@Data +public class ProvinceCitiesPollutionLevelForm { + /* + * ��������� + * */ + private Integer regionCode; + + /* + * ��������������������������������������������� + * */ + @DateTimeFormat(pattern = "yyyy") + @JsonFormat(pattern = "yyyy", timezone = "GMT+8") + private Date year; + + /* + * ��������������������������������������������� + * */ + @DateTimeFormat(pattern = "yyyy-MM") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date month; + + /* + * ���������������������������������������form������������ + * */ + private Date startDate; + + /* + * ���������������������������������������form������������ + * */ + private Date endDate; + + public boolean valid() { + if (regionCode == null || (year == null && month == null)||(year != null && month != null)) + return false; + //������regionCode������ + String regionCodeStr = regionCode.toString(); + if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000")) + return false; + //������������ + if (year != null) { + startDate = DateUtils.getFirstDayOfYear(year); + endDate = DateUtils.getLastDayOfYear(year); + return true; + } + startDate = DateUtils.getFirstDayOfMonth(month); + endDate = DateUtils.getLastDayOfMonth(month); + return true; + } +} diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java index 54138d4..30e4af4 100644 --- a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java +++ b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java @@ -5,6 +5,7 @@ import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; +import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; @@ -66,4 +67,13 @@ * @Date: 2021/12/31 */ List<CityPollutionLevel> querySpecialCitiesPollutionLevel(SpecialCitiesPollutionLevelForm form); + + /** + * @Description: ������������������������������������������ + * @Param: [from] + * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> + * @Author: ��������� + * @Date: 2022/1/7 + */ + List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form); } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java index 2fa600e..a2cf89e 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java @@ -11,6 +11,7 @@ import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.dto.cityAQI.PollutionDaysAndProportion; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; +import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; @@ -322,6 +323,24 @@ return datas; } + @Override + public List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) { + //������ + Date startDate = form.getStartDate(); + Date endDate = form.getEndDate(); + Integer regionCode = form.getRegionCode(); + //������������������������ + List<SysArea> allCities = sysAreaService.getChildren(regionCode); + //������������������������ + List<CityPollutionLevel> datas = new ArrayList<>(); + //��������������������� ������������ + for (SysArea city : allCities) { + CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(city,startDate,endDate); + datas.add(cityPollutionLevel); + } + return datas; + } + /** * @Description: ��������������������������������������������������������� * @Param: [area, startDate, endDate] -- Gitblit v1.8.0