From f84adc8ebeb579aab6e20154be37d15ec54db630 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 7 Jul 2025 10:17:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=AF=E5=8C=BA=E7=AB=AF=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/impl/AppScenicServiceImpl.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java index 8e6716b..5e4b310 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java @@ -11,10 +11,12 @@ import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO; +import com.ycwl.basic.model.pc.device.entity.DeviceEntity; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; +import com.ycwl.basic.repository.DeviceRepository; import com.ycwl.basic.service.mobile.AppScenicService; import com.ycwl.basic.service.pc.ScenicAccountService; import com.ycwl.basic.utils.ApiResponse; @@ -24,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.Date; import java.util.List; import static com.ycwl.basic.constant.JwtRoleConstant.MERCHANT; @@ -46,6 +49,8 @@ public class AppScenicServiceImpl implements AppScenicService { private JwtTokenUtil jwtTokenUtil; @Autowired private ScenicAccountService scenicAccountService; + @Autowired + private DeviceRepository deviceRepository; @Override public ApiResponse> pageQuery(ScenicReqQuery scenicReqQuery) { @@ -105,6 +110,22 @@ public class AppScenicServiceImpl implements AppScenicService { @Override public ApiResponse> getDevices(Long scenicId) { List deviceRespVOList = deviceMapper.listByScenicIdWithWVP(scenicId); + for (DeviceRespVO deviceRespVO : deviceRespVOList) { + DeviceEntity onlineStatus = deviceRepository.getOnlineStatus(deviceRespVO.getId()); + if (onlineStatus != null) { + deviceRespVO.setUpdateAt(onlineStatus.getKeepaliveAt()); + deviceRespVO.setKeepaliveAt(onlineStatus.getKeepaliveAt()); + if (new Date().getTime() - onlineStatus.getKeepaliveAt().getTime() > 300000) { + deviceRespVO.setOnline(0); + } else { + deviceRespVO.setOnline(onlineStatus.getOnline()); + } + } else { + deviceRespVO.setOnline(0); + deviceRespVO.setKeepaliveAt(null); + deviceRespVO.setUpdateAt(null); + } + } return ApiResponse.success(deviceRespVOList); } }