package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.HistoryDaily; import com.moral.api.mapper.HistoryDailyMapper; import com.moral.api.service.HistoryDailyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 日数据 服务实现类 *

* * @author moral * @since 2021-07-14 */ @Service public class HistoryDailyServiceImpl extends ServiceImpl implements HistoryDailyService { @Autowired private HistoryDailyMapper historyDailyMapper; @Override public Map getMonthAvg(Map params) { params.put("start", DateUtils.getFirstDayOfCurrMonth()); params.put("end", DateUtils.getLastDayOfCurrMonth()); Map data = historyDailyMapper.getAvgByMac(params); Map result = new HashMap<>(); if (ObjectUtils.isEmpty(data)) { result.put("avg", Constants.NULL_VALUE); return result; } result.put("avg", data.get(params.get("sensorCode"))); return result; } @Override public HistoryDaily getHistoryDailyByMacAndDate(String mac, Date date) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("mac",mac); wrapper.eq("time",date); List historyDailies = historyDailyMapper.selectList(wrapper); if(ObjectUtils.isEmpty(historyDailies)) return null; return historyDailies.get(0); } @Override public Map getHistoryDailyByMacsAndDate(List mac, Date date) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.in("mac",mac); wrapper.eq("time",date); List historyDailies = historyDailyMapper.selectList(wrapper); Map map = new HashMap<>(); for (HistoryDaily historyDaily : historyDailies) { map.put(historyDaily.getMac(),historyDaily); } return map; } @Override public List getHistoryDailyByMacAndTimeSlot(String mac, Date startDate, Date endDate) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.in("mac",mac); wrapper.between("time",startDate,endDate); List historyDailies = historyDailyMapper.selectList(wrapper); return historyDailies; } }