From a85e74c5e6a45fca577fe8373347fd29bbfbfbc0 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Sat, 25 Oct 2025 08:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=8A=B6=E6=80=81=E4=BB=BB?= =?UTF-8?q?=E5=8A=A13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/queue/OnlineStatusTask.java | 20 +++++++--------- .../equipment/domain/vo/OnlineStatusVo.java | 23 +++++++++++++++++++ .../equipment/mapper/DeviceMapper.java | 2 ++ .../mapper/equipment/DeviceMapper.xml | 4 ++++ 4 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/OnlineStatusVo.java diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java index 96930c5ad..7035e14d8 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; import com.fuyuanshen.equipment.domain.Device; +import com.fuyuanshen.equipment.domain.vo.OnlineStatusVo; import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; import org.springframework.beans.factory.annotation.Autowired; @@ -24,20 +25,15 @@ public class OnlineStatusTask { // 使用cron表达式,每分钟的第0秒执行 @Scheduled(cron = "0 */3 * * * ?") public void cronTask() { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("online_status", 1); - List devices = deviceMapper.selectList(queryWrapper); - devices.forEach(item -> { + List onlineStatusVos = deviceMapper.queryOnlineStatusList(); + onlineStatusVos.forEach(item -> { String onlineStatusKey = GLOBAL_REDIS_KEY + DEVICE_KEY_PREFIX + item.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX; String status = RedisUtils.getCacheObject(onlineStatusKey); - String onlineStatus = item.getOnlineStatus()==null?"0" : item.getOnlineStatus().toString(); - if("1".equals(onlineStatus) || "2".equals(onlineStatus)){ - if(StringUtils.isBlank(status) || "0".equals(status)){ - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", item.getId()); - updateWrapper.set("online_status", 0); - deviceMapper.update(updateWrapper); - } + if(StringUtils.isBlank(status) || "0".equals(status)){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", item.getId()); + updateWrapper.set("online_status", 0); + deviceMapper.update(updateWrapper); } }); } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/OnlineStatusVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/OnlineStatusVo.java new file mode 100644 index 000000000..7b27158e5 --- /dev/null +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/OnlineStatusVo.java @@ -0,0 +1,23 @@ +package com.fuyuanshen.equipment.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class OnlineStatusVo implements Serializable { + + private Long id; + + + /** + * 在线状态(0离线,1在线) + */ + private Integer onlineStatus; + + /** + * 设备imei + */ + private String deviceImei; +} diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceMapper.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceMapper.java index 0c4115445..ad28481b7 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceMapper.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceMapper.java @@ -135,4 +135,6 @@ public interface DeviceMapper extends BaseMapper { * @return 设备使用频次统计列表 */ List getDeviceUsageFrequency(@Param("days") int days); + + List queryOnlineStatusList(); } \ No newline at end of file diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml index d97ad266f..eb66b4848 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml @@ -490,5 +490,9 @@ FROM device WHERE device_imei = #{deviceImei} + \ No newline at end of file