From c14fd6f05f96c36693db8b3058be2ceb8e7c87d1 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期五, 10 七月 2026 09:34:02 +0800
Subject: [PATCH] 访客机侧代码

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorMachineServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorMachineServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorMachineServiceImpl.java
index c8133db..13b95f5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorMachineServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorMachineServiceImpl.java
@@ -3,6 +3,7 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.SysDoorDevice;
 import com.ruoyi.system.domain.SysVisitArea;
 import com.ruoyi.system.domain.SysVisitorMachine;
 import com.ruoyi.system.dto.SysVisitorMachineAddRequest;
@@ -18,8 +19,10 @@
 import com.ruoyi.system.vo.SysVisitorMachineVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -148,6 +151,57 @@
         return machine;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int activateDevice(Long deviceId) {
+        // 1. 根据deviceId查询设备
+        SysVisitorMachine device = visitorMachineMapper.selectById(deviceId);
+        if (device == null || device.getDelFlag().equals("1")) {
+            throw new ServiceException("设备不存在,请先添加设备");
+        }
+
+        // 2. 检查是否已激活
+        if ("ONLINE".equals(device.getOnlineStatus()) || "ACTIVATED".equals(device.getOnlineStatus())) {
+            throw new ServiceException("设备已激活,无需重复操作");
+        }
+
+        // 3. 检查设备是否启用
+        if (device.getEnabled() == null || !device.getEnabled()) {
+            throw new ServiceException("设备未启用,请先在后台启用设备");
+        }
+
+        // 4. 更新状态为激活/在线
+        SysVisitorMachine update = new SysVisitorMachine();
+        update.setMachineId(device.getMachineId());
+        update.setOnlineStatus("ONLINE");  // 或 "ACTIVATED",根据你的枚举定义
+        update.setUpdateTime(new Date());
+
+        return visitorMachineMapper.updateMachine(update);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int deactivateDevice(Long deviceId) {
+        // 1. 根据deviceId查询设备
+        SysVisitorMachine device = visitorMachineMapper.selectById(deviceId);
+        if (device == null || device.getDelFlag().equals("1")) {
+            throw new ServiceException("设备不存在");
+        }
+
+        // 2. 检查是否已注销
+        if ("OFFLINE".equals(device.getOnlineStatus()) || "UNACTIVATED".equals(device.getOnlineStatus())) {
+            throw new ServiceException("设备已注销,无需重复操作");
+        }
+
+        // 3. 更新状态为离线/未激活
+        SysVisitorMachine update = new SysVisitorMachine();
+        update.setMachineId(deviceId);
+        update.setOnlineStatus("OFFLINE");  // 或 "UNACTIVATED"
+        update.setUpdateTime(new Date());
+
+        return visitorMachineMapper.updateMachine(update);
+    }
+
     private Long getRequiredAreaId(Long areaId)
     {
         if (areaId == null || areaId <= 0)

--
Gitblit v1.7.1