From eb51b2364e9a3fbe806fde61fa255660a098fc8b Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 24 Jun 2021 14:06:41 +0800 Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into dev --- screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 deletions(-) diff --git a/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..8850e00 --- /dev/null +++ b/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -0,0 +1,69 @@ +package com.moral.api.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.moral.api.entity.Device; +import com.moral.api.mapper.DeviceMapper; +import com.moral.api.service.DeviceService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +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 java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * <p> + * ��������� ��������������� + * </p> + * + * @author moral + * @since 2021-06-22 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService { + + @Autowired + private DeviceMapper deviceMapper; + + @Autowired + private RedisTemplate redisTemplate; + + @Override + public void judgeOffLineDevice() { + QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); + queryWrapper.ne("state", Constants.DEVICE_STATE_OFFLINE); + //������������������������ + List<Device> devices = deviceMapper.selectList(queryWrapper); + for (Device device : devices) { + Map<String, Object> data = getDataFromRedis(device.getMac()); + device.setState(Constants.DEVICE_STATE_OFFLINE); + if (data != null && data.containsKey("DataTime")) { + long time = Long.parseLong(data.get("DataTime").toString()); + //��������������������������������� + if (DateUtils.getDateOfMin(new Date(time), 2).getTime() < new Date().getTime()) { + updateDeviceState(device); + } + } else { + updateDeviceState(device); + } + } + } + + @Override + public void updateDeviceState(Device device) { + UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", device.getId()).set("state", device.getState()); + deviceMapper.update(null, updateWrapper); + } + + private Map<String, Object> getDataFromRedis(String mac) { + return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE_DATA + mac); + } +} -- Gitblit v1.8.0