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;
}
}