| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.moral.api.entity.CityAqi; |
| | |
| | | import com.moral.api.mapper.ForecastMapper; |
| | | import com.moral.api.service.CityAqiService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.constant.RedisConstants; |
| | | import com.moral.util.DateUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private ForecastMapper forecastMapper; |
| | | |
| | | @Autowired |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> measuredCompareForecastOfO3(Map<String, Object> params) { |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> queryCityAqiByRegionCode(Integer regionCode) { |
| | | Map<String,Object> value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI,String.valueOf(regionCode)); |
| | | if(value==null) |
| | | value = queryCityAqiByRegionCodeFromDB(regionCode); |
| | | return value; |
| | | } |
| | | |
| | | /** |
| | | * @Description: 从数据库查询数据 |
| | | * @Param: [regionCode] |
| | | * @return: java.util.Map<java.lang.String,java.lang.Object> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/28 |
| | | */ |
| | | private Map<String, Object> queryCityAqiByRegionCodeFromDB(Integer regionCode) { |
| | | QueryWrapper<CityAqi> wrapper = new QueryWrapper(); |
| | | wrapper.eq("city_code",regionCode); |
| | | wrapper.orderByDesc("time"); |
| | | wrapper.last(true,"limit 1"); |
| | | CityAqi cityAqi = cityAqiMapper.selectOne(wrapper); |
| | | String value = cityAqi.getValue(); |
| | | redisTemplate.opsForHash().put(RedisConstants.CITY_AQI,regionCode,value); |
| | | return JSON.parseObject(value,Map.class); |
| | | } |
| | | } |