zhanghua
2023-10-02 b146d1a002c4e3b323810f95bea28a1e47e0d680
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.ycl.service.smoke.impl;
 
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 com.ycl.dto.smoker.InTimeCountDto;
import com.ycl.entity.smoke.OdsCustomer;
import com.ycl.entity.smoke.OdsInTime;
import com.ycl.mapper.smoke.OdsInTimeMapper;
import com.ycl.service.smoke.IOdsInTimeService;
import org.springframework.stereotype.Service;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * <p>
 * 返回实时的设备数据 服务实现类
 * </p>
 *
 * @author lyq
 * @since 2023-02-28
 */
@Service
public class OdsInTimeServiceImpl extends ServiceImpl<OdsInTimeMapper, OdsInTime> implements IOdsInTimeService {
 
    @Override
    public Page<OdsInTime> findList(String owner, String onlineStatus, String startTime, String endTime, String type, String status, Integer pageSize, Integer pageNum) {
        Page<OdsInTime> page = new Page<>(pageNum, pageSize);
        QueryWrapper<OdsInTime> wrapper = new QueryWrapper<>();
        LambdaQueryWrapper<OdsInTime> lambda = wrapper.lambda();
        if (StrUtil.isNotEmpty(owner)) {
            lambda.eq(OdsInTime::getOwner, owner);
        }
        if (StrUtil.isNotEmpty(onlineStatus)) {
            lambda.eq(OdsInTime::getOnlineStatus, onlineStatus);
        }
        if (StrUtil.isNotEmpty(startTime)) {
            try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date startdate = format.parse(startTime);
                Long startTimestamp = startdate.getTime();
 
                Date enddate = format.parse(endTime);
                Long endTimestamp = enddate.getTime();
 
                lambda.between(OdsInTime::getLastAt, startTimestamp, endTimestamp);
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
        }
        if (StrUtil.isNotEmpty(type)) {
            lambda.eq(OdsInTime::getTyp, type);
        }
        if (StrUtil.isNotEmpty(status)) {
            lambda.eq(OdsInTime::getStatus, status);
        }
 
        return this.page(page, wrapper);
 
    }
 
    @Override
    public InTimeCountDto getInTimeCount() {
        return baseMapper.getInTimeCount();
    }
}