|
|
@@ -1,5 +1,6 @@
|
|
|
package com.xunmei.mediator.api.video.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
@@ -14,8 +15,6 @@ import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheck;
|
|
|
import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheckLog;
|
|
|
import com.xunmei.common.core.enums.iot.VideoIntegrityStatus;
|
|
|
import com.xunmei.common.core.utils.JacksonUtils;
|
|
|
-import com.xunmei.mediator.api.host.service.IIotDeviceService;
|
|
|
-import com.xunmei.mediator.api.host.service.IIotDvrChannelService;
|
|
|
import com.xunmei.mediator.api.north.service.NorthErrorService;
|
|
|
import com.xunmei.mediator.api.server.service.IotServerInfoService;
|
|
|
import com.xunmei.mediator.api.video.mapper.VideoIntegrityCheckMapper;
|
|
|
@@ -25,7 +24,6 @@ import com.xunmei.mediator.api.video.service.MediatorVideoIntegrityCheckLogServi
|
|
|
import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckDto;
|
|
|
import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckReq;
|
|
|
import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
|
|
|
-import com.xunmei.mediator.util.RedisUtil;
|
|
|
import com.xunmei.mediator.websocket.constant.WebSocketConstants;
|
|
|
import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
|
|
|
import com.xunmei.mediator.websocket.dto.WebsocketResult;
|
|
|
@@ -34,7 +32,6 @@ import com.xunmei.mediator.websocket.enums.ProductEnums;
|
|
|
import com.xunmei.mediator.websocket.enums.TopicTypeEnums;
|
|
|
import com.xunmei.mediator.websocket.holder.WebSocketSessionHolder;
|
|
|
import com.xunmei.mediator.websocket.service.RouterService;
|
|
|
-import com.xunmei.mediator.websocket.utils.WebSocketUtils;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceInfo;
|
|
|
@@ -42,6 +39,7 @@ import com.xunmei.system.api.domain.north.NorthError;
|
|
|
import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
|
|
|
import com.xunmei.system.api.util.LogUtils;
|
|
|
import io.netty.util.internal.StringUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -62,13 +60,11 @@ import java.util.*;
|
|
|
* @author oygj
|
|
|
* @since 2024-01-23
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCheckMapper, MediatorVideoIntegrityCheck> implements IVideoIntegrityCheckService, RouterService {
|
|
|
|
|
|
@Resource
|
|
|
- RedisUtil redisUtil;
|
|
|
-
|
|
|
- @Resource
|
|
|
RemoteOrgService orgService;
|
|
|
@Resource
|
|
|
NorthErrorService northErrorService;
|
|
|
@@ -77,11 +73,6 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
@Resource
|
|
|
MediatorVideoIntegrityCheckLogService integrityCheckLogService;
|
|
|
@Resource
|
|
|
- IIotDeviceService iIotDeviceService;
|
|
|
- @Resource
|
|
|
- IIotDvrChannelService dvrChannelService;
|
|
|
-
|
|
|
- @Resource
|
|
|
IotServerInfoService iotServerInfoService;
|
|
|
@Resource
|
|
|
IIotDeviceInfoService iotDeviceInfoService;
|
|
|
@@ -114,15 +105,43 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
|
|
|
@Override
|
|
|
public void invokeRecordInfosForSchedule() {
|
|
|
- WebsocketResult websocketResult = new WebsocketResult();
|
|
|
- websocketResult.setId(UUID.randomUUID().toString());
|
|
|
- websocketResult.setTimestamp(new Date());
|
|
|
- //websocketResult.setTopic(String.format(TopicTypeEnums.PRODUCT_EVENT_NOTICE_REPLY.getUrl(),));
|
|
|
- HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
- hashMap.put(WebSocketConstants.SERVICE, WebSocketConstants.GET_RECORD_INFOS_SERVICES);
|
|
|
- hashMap.put(WebSocketConstants.ARGS, new JSONObject());
|
|
|
- websocketResult.setPayload(hashMap);
|
|
|
- WebSocketSessionHolder.sendAll(JacksonUtils.toJSONString(websocketResult));
|
|
|
+ List<IotDeviceInfo> deviceInfoList = iotDeviceInfoService.selectAllDeviceByDeviceType(Arrays.asList(DeviceTypeEnum.MONITOR_CAMERA, DeviceTypeEnum.NUMBER_CAMERA));
|
|
|
+ if (ObjectUtil.isEmpty(deviceInfoList)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (IotDeviceInfo iotDeviceInfo : deviceInfoList) {
|
|
|
+ WebsocketResult iotWebsocketResult = new WebsocketResult();
|
|
|
+ iotWebsocketResult.setTopic(TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE, WebSocketConstants.IOT_SERVER,WebSocketConstants.IOT_SERVER_DEVICE));
|
|
|
+ iotWebsocketResult.setId(UUID.randomUUID().toString());
|
|
|
+ iotWebsocketResult.setTimestamp(new Date());
|
|
|
+ JSONObject iotHeaderObj = new JSONObject();
|
|
|
+ iotHeaderObj.put(WebSocketConstants.PRODUCT_NAME,WebSocketConstants.IOT_SERVER);
|
|
|
+ iotHeaderObj.put(WebSocketConstants.DEVICE_NAME, WebSocketConstants.IOT_SERVER_DEVICE);
|
|
|
+ iotWebsocketResult.setHeaders(iotHeaderObj);
|
|
|
+ JSONObject iotPayloadObj = new JSONObject();
|
|
|
+ iotWebsocketResult.setPayload(iotPayloadObj);
|
|
|
+ iotPayloadObj.put(WebSocketConstants.SERVICE, WebSocketConstants.DOWN_LINK_SERVICE_PASS_THROUGH);
|
|
|
+
|
|
|
+ WebsocketResult hostData = new WebsocketResult();
|
|
|
+ iotPayloadObj.put(WebSocketConstants.ARGS,hostData );
|
|
|
+ hostData.setId(UUID.randomUUID().toString());
|
|
|
+ hostData.setTopic(TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE, iotDeviceInfo.getDeviceProduct(),iotDeviceInfo.getDeviceCode()));
|
|
|
+ JSONObject hostHeaderObj = new JSONObject();
|
|
|
+ hostHeaderObj.put(WebSocketConstants.PRODUCT_NAME,iotDeviceInfo.getDeviceProduct());
|
|
|
+ hostHeaderObj.put(WebSocketConstants.DEVICE_NAME, iotDeviceInfo.getDeviceCode());
|
|
|
+ hostData.setHeaders(hostHeaderObj);
|
|
|
+
|
|
|
+ JSONObject hostPayloadObj = new JSONObject();
|
|
|
+ hostPayloadObj.put(WebSocketConstants.SERVICE, WebSocketConstants.GET_RECORD_INFOS_SERVICES);
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ hostPayloadObj.put(WebSocketConstants.ARGS, object);
|
|
|
+ object.put("dvsCode", iotDeviceInfo.getHostCode());
|
|
|
+ object.put("index", iotDeviceInfo.getDeviceCode());
|
|
|
+ object.put("recordDate", Arrays.asList(DateUtil.format(DateUtil.offsetDay(new Date(),-1),Constants.DAILY_FORMAT)));
|
|
|
+ hostData.setPayload(hostPayloadObj);
|
|
|
+ log.info("发送录像机录像信息请求:{}", JacksonUtils.toJSONString(iotWebsocketResult));
|
|
|
+ WebSocketSessionHolder.sendAll(JacksonUtils.toJSONString(iotWebsocketResult));
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|