|
@@ -12,28 +12,17 @@
|
|
|
*/
|
|
|
package vip.xiaonuo.coldchain.modular.monitornotice.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
-import cn.hutool.core.collection.CollStreamUtil;
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.enums.MonitorNoticeEnum;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.enums.PushEnum;
|
|
|
-import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
|
-import vip.xiaonuo.common.exception.CommonException;
|
|
|
-import vip.xiaonuo.common.page.CommonPageRequest;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.CountWithTime;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.NoticeByDate;
|
|
|
import vip.xiaonuo.coldchain.modular.monitornotice.entity.MonitorNotice;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitornotice.enums.DateEnum;
|
|
|
import vip.xiaonuo.coldchain.modular.monitornotice.mapper.MonitorNoticeMapper;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeAddParam;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeEditParam;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeIdParam;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticePageParam;
|
|
|
import vip.xiaonuo.coldchain.modular.monitornotice.service.MonitorNoticeService;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -45,58 +34,88 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, MonitorNotice> implements MonitorNoticeService {
|
|
|
|
|
|
- @Override
|
|
|
- public Page<MonitorNotice> page(MonitorNoticePageParam monitorNoticePageParam) {
|
|
|
- QueryWrapper<MonitorNotice> queryWrapper = new QueryWrapper<MonitorNotice>().checkSqlInjection();
|
|
|
- if(ObjectUtil.isNotEmpty(monitorNoticePageParam.getType())) {
|
|
|
- queryWrapper.lambda().eq(MonitorNotice::getType, monitorNoticePageParam.getType());
|
|
|
- }
|
|
|
- if(ObjectUtil.isAllNotEmpty(monitorNoticePageParam.getSortField(), monitorNoticePageParam.getSortOrder())) {
|
|
|
- CommonSortOrderEnum.validate(monitorNoticePageParam.getSortOrder());
|
|
|
- queryWrapper.orderBy(true, monitorNoticePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
|
|
|
- StrUtil.toUnderlineCase(monitorNoticePageParam.getSortField()));
|
|
|
- } else {
|
|
|
- queryWrapper.lambda().orderByAsc(MonitorNotice::getId);
|
|
|
- }
|
|
|
- return this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
- }
|
|
|
+ @Resource
|
|
|
+ private MonitorNoticeMapper monitorNoticeMapper;
|
|
|
+
|
|
|
+ private static int STP = 3;
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void add(MonitorNoticeAddParam monitorNoticeAddParam) {
|
|
|
- MonitorNotice monitorNotice = BeanUtil.toBean(monitorNoticeAddParam, MonitorNotice.class);
|
|
|
- if (ObjectUtil.isNull(monitorNotice.getPushFlag())) {
|
|
|
- monitorNotice.setPushFlag(PushEnum.NOT_PUSH.getValue());
|
|
|
+ public CountWithTime today() {
|
|
|
+ List<String> timePeriodList = new ArrayList<>();
|
|
|
+ List<Integer> countList = new ArrayList<>();
|
|
|
+ int timeFlag = 0;
|
|
|
+ while (timeFlag != 24) {
|
|
|
+ String startTimeStr = getTimeStr(timeFlag);
|
|
|
+ timeFlag += STP;
|
|
|
+ String endTimeStr = getTimeStr(timeFlag);
|
|
|
+ timePeriodList.add(startTimeStr + "-" + endTimeStr);
|
|
|
+ Integer toDay = monitorNoticeMapper.getToDay(startTimeStr, endTimeStr);
|
|
|
+ countList.add(toDay);
|
|
|
}
|
|
|
- this.save(monitorNotice);
|
|
|
+ CountWithTime countWithTime = new CountWithTime();
|
|
|
+ countWithTime.setDateName(DateEnum.TODAY.getValue());
|
|
|
+ countWithTime.setCountList(countList);
|
|
|
+ countWithTime.setTimePeriodList(timePeriodList);
|
|
|
+ return countWithTime;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void edit(MonitorNoticeEditParam monitorNoticeEditParam) {
|
|
|
- MonitorNotice monitorNotice = this.queryEntity(monitorNoticeEditParam.getId());
|
|
|
- BeanUtil.copyProperties(monitorNoticeEditParam, monitorNotice);
|
|
|
- this.updateById(monitorNotice);
|
|
|
+ public CountWithTime yesterday() {
|
|
|
+ List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
|
|
|
+ List<String> timePeriodList = new ArrayList<>();
|
|
|
+ List<Integer> countList = new ArrayList<>();
|
|
|
+ int timeFlag = 0;
|
|
|
+ while (timeFlag != 24) {
|
|
|
+ String startTimeStr = getTimeStr(timeFlag);
|
|
|
+ timeFlag += STP;
|
|
|
+ String endTimeStr = getTimeStr(timeFlag);
|
|
|
+ timePeriodList.add(startTimeStr + "-" + endTimeStr);
|
|
|
+ Integer yesterday = monitorNoticeMapper.getYesterday(startTimeStr, endTimeStr);
|
|
|
+ countList.add(yesterday);
|
|
|
+ }
|
|
|
+ CountWithTime countWithTime = new CountWithTime();
|
|
|
+ countWithTime.setDateName(DateEnum.YESTERDAY.getValue());
|
|
|
+ countWithTime.setCountList(countList);
|
|
|
+ countWithTime.setTimePeriodList(timePeriodList);
|
|
|
+ return countWithTime;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void delete(List<MonitorNoticeIdParam> monitorNoticeIdParamList) {
|
|
|
- // 执行删除
|
|
|
- this.removeByIds(CollStreamUtil.toList(monitorNoticeIdParamList, MonitorNoticeIdParam::getId));
|
|
|
+ public CountWithTime dayBeforeYesterday() {
|
|
|
+ List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
|
|
|
+ List<String> timePeriodList = new ArrayList<>();
|
|
|
+ List<Integer> countList = new ArrayList<>();
|
|
|
+ int timeFlag = 0;
|
|
|
+ while (timeFlag != 24) {
|
|
|
+ String startTimeStr = getTimeStr(timeFlag);
|
|
|
+ timeFlag += STP;
|
|
|
+ String endTimeStr = getTimeStr(timeFlag);
|
|
|
+ timePeriodList.add(startTimeStr + "-" + endTimeStr);
|
|
|
+ Integer dayBeforeYesterday = monitorNoticeMapper.getDayBeforeYesterday(startTimeStr, endTimeStr);
|
|
|
+ countList.add(dayBeforeYesterday);
|
|
|
+ }
|
|
|
+ CountWithTime countWithTime = new CountWithTime();
|
|
|
+ countWithTime.setDateName(DateEnum.DAY_BEFORE_YESTERDAY.getValue());
|
|
|
+ countWithTime.setCountList(countList);
|
|
|
+ countWithTime.setTimePeriodList(timePeriodList);
|
|
|
+ return countWithTime;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MonitorNotice detail(MonitorNoticeIdParam monitorNoticeIdParam) {
|
|
|
- return this.queryEntity(monitorNoticeIdParam.getId());
|
|
|
+ public List<CountWithTime> getNoticeByDate() {
|
|
|
+ NoticeByDate noticeByDate = new NoticeByDate();
|
|
|
+ List<CountWithTime> countWithTimeList = new ArrayList<>();
|
|
|
+ countWithTimeList.add(today());
|
|
|
+ countWithTimeList.add(yesterday());
|
|
|
+ countWithTimeList.add(dayBeforeYesterday());
|
|
|
+ return countWithTimeList;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public MonitorNotice queryEntity(String id) {
|
|
|
- MonitorNotice monitorNotice = this.getById(id);
|
|
|
- if(ObjectUtil.isEmpty(monitorNotice)) {
|
|
|
- throw new CommonException("监控通知不存在,id值为:{}", id);
|
|
|
+ private String getTimeStr(int timeFlag) {
|
|
|
+ String timeStr = timeFlag + ":00:00";
|
|
|
+ if (timeStr.length() < 8) {
|
|
|
+ timeStr = "0" + timeStr;
|
|
|
}
|
|
|
- return monitorNotice;
|
|
|
+ return timeStr;
|
|
|
}
|
|
|
}
|