|
|
@@ -9,13 +9,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.hash.Hashing;
|
|
|
import com.inspur.device.domain.SmsbDevice;
|
|
|
import com.inspur.device.domain.SmsbDeviceRunInfo;
|
|
|
+import com.inspur.device.domain.bo.HttpHeartbeatReq;
|
|
|
import com.inspur.device.domain.bo.SmsbDeviceBo;
|
|
|
import com.inspur.device.domain.constants.DeviceConstants;
|
|
|
import com.inspur.device.domain.constants.ResultCodeEnum;
|
|
|
-import com.inspur.device.domain.vo.DeviceStatisticsVo;
|
|
|
-import com.inspur.device.domain.vo.SmsbDeviceManufacturerVo;
|
|
|
-import com.inspur.device.domain.vo.SmsbDeviceRunInfoVo;
|
|
|
-import com.inspur.device.domain.vo.SmsbDeviceVo;
|
|
|
+import com.inspur.device.domain.vo.*;
|
|
|
import com.inspur.device.mapper.SmsbDeviceMapper;
|
|
|
import com.inspur.device.mapper.SmsbDeviceRunInfoMapper;
|
|
|
import com.inspur.device.service.ISmsbDeviceManufacturerService;
|
|
|
@@ -24,6 +22,7 @@ import com.inspur.device.service.ISmsbProductService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
+import org.dromara.common.core.utils.DateUtils;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
@@ -117,6 +116,7 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
|
|
|
|
|
|
/**
|
|
|
* 根据租户ID查询设备列表
|
|
|
+ *
|
|
|
* @param bo
|
|
|
* @param pageQuery
|
|
|
* @return
|
|
|
@@ -124,7 +124,7 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
|
|
|
@Override
|
|
|
public TableDataInfo<SmsbDeviceVo> queryPageListByTenantId(SmsbDeviceBo bo, PageQuery pageQuery) {
|
|
|
LambdaQueryWrapper<SmsbDevice> lqw = buildQueryWrapper(bo);
|
|
|
- Page<SmsbDeviceVo> result = baseMapper.queryPageListByTenantId(pageQuery.build(),lqw,bo.getTenantId());
|
|
|
+ Page<SmsbDeviceVo> result = baseMapper.queryPageListByTenantId(pageQuery.build(), lqw, bo.getTenantId());
|
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
|
|
|
|
@@ -209,7 +209,7 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
|
|
|
/**
|
|
|
* 保存前的数据校验
|
|
|
*/
|
|
|
- private void validEntityBeforeSave(SmsbDevice entity){
|
|
|
+ private void validEntityBeforeSave(SmsbDevice entity) {
|
|
|
// 做一些数据校验,如唯一约束
|
|
|
boolean flag = this.checkExist(entity.getSerialNumber(), entity.getMac());
|
|
|
if (flag) {
|
|
|
@@ -248,7 +248,7 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
|
|
|
@Cacheable(cacheNames = "global:msr:device:identifier", key = "#identifier")
|
|
|
public SmsbDeviceVo getDeviceByIdentifier(String identifier) {
|
|
|
return baseMapper.selectVoOne(new LambdaQueryWrapper<SmsbDevice>()
|
|
|
- .eq(SmsbDevice::getIdentifier, identifier));
|
|
|
+ .eq(SmsbDevice::getIdentifier, identifier));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -330,4 +330,22 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
|
|
|
messageDto.setUserIds(List.of(userId));
|
|
|
SseMessageUtils.publishMessage(messageDto);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<HttpHeartbeatRspVo> heartbeat(HttpHeartbeatReq requestParam) {
|
|
|
+ SmsbDeviceVo smsbDeviceVo = getDeviceByIdentifier(requestParam.getIdentifier());
|
|
|
+ if (smsbDeviceVo == null) {
|
|
|
+ return R.fail("设备不存在");
|
|
|
+ }
|
|
|
+ Long currentTime = System.currentTimeMillis();
|
|
|
+ // 1 缓存设备最后一次http 心跳时间
|
|
|
+ RedisUtils.setCacheObject(DeviceConstants.REDIS_DEVICE_HEARTBEAT_HTTP_KEY + requestParam.getIdentifier(), currentTime);
|
|
|
+ // 2 更新设备状态 若设备未在线 更新为在线
|
|
|
+ if (smsbDeviceVo.getOnlineStatus().equals(DeviceConstants.DEVICE_STATUS_ONLINE.longValue())) {
|
|
|
+ smsbDeviceVo.setOnlineStatus(DeviceConstants.DEVICE_STATUS_ONLINE.longValue());
|
|
|
+ smsbDeviceVo.setLastOnline(DateUtils.getNowDate());
|
|
|
+ updateDeviceStatus(smsbDeviceVo);
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
}
|