Преглед изворни кода

Merge remote-tracking branch 'origin/V1.0.11' into V1.0.11

jingyuanchao пре 10 месеци
родитељ
комит
6bf35f8dfa

+ 14 - 0
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/dto/templateAndPlan/DvsTemplateAndPlanDto.java

@@ -0,0 +1,14 @@
+package com.xunmei.host.video.dto.templateAndPlan;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DvsTemplateAndPlanDto {
+    //无模板的数据
+    private List<DvsPlanTypeDto> failChannelPlanTypeList;
+
+    //有模板的数据
+    private List<DvsTemplateDto> templateList;
+}

+ 19 - 12
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/IotDvsTemplateAndPlanServiceImpl.java

@@ -1,17 +1,14 @@
 package com.xunmei.host.video.service.impl;
 
-import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.domain.iot.domain.*;
 import com.xunmei.common.core.utils.JacksonUtils;
 import com.xunmei.common.core.utils.bean.BeanUtils;
-import com.xunmei.host.video.dto.templateAndPlan.DvsPlanTimeDto;
-import com.xunmei.host.video.dto.templateAndPlan.DvsPlanTypeDto;
-import com.xunmei.host.video.dto.templateAndPlan.DvsTemplateChannelDto;
-import com.xunmei.host.video.dto.templateAndPlan.DvsTemplateDto;
+import com.xunmei.host.video.dto.templateAndPlan.*;
 import com.xunmei.host.video.service.*;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
@@ -45,11 +42,13 @@ public class IotDvsTemplateAndPlanServiceImpl implements IotDvsTemplateAndPlanSe
     private IotDvsPlanTimeService dvsPlanTimeService;
 
     @Transactional
-    public void handDvsTemplateAndPlan(List<DvsTemplateDto> dataList, IotServerInfo serverInfo) {
+    public void handDvsTemplateAndPlan(DvsTemplateAndPlanDto templateAndPlanDto, IotServerInfo serverInfo) {
         //先删除数据
         deleteDvsTemplateAndPlanByIotCode(serverInfo.getIotCode());
+
+        List<DvsTemplateDto> templateList = templateAndPlanDto.getTemplateList();
         //处理录像模板和录像计划数据
-        for (DvsTemplateDto dvsTemplateDto : dataList) {
+        for (DvsTemplateDto dvsTemplateDto : templateList) {
             IotDvsTemplate dvsTemplate = new IotDvsTemplate();
             BeanUtils.copyProperties(dvsTemplateDto, dvsTemplate);
             dvsTemplate.setIotToken(serverInfo.getIotCode());
@@ -70,6 +69,14 @@ public class IotDvsTemplateAndPlanServiceImpl implements IotDvsTemplateAndPlanSe
                 dvsPlanTimeService.saveBatch(iotDvsPlanTimes);
             }
         }
+        //处理无录像计划的通道
+        List<DvsPlanTypeDto> failChannelPlanTypeList = templateAndPlanDto.getFailChannelPlanTypeList();
+        if (failChannelPlanTypeList.size() > 0) {
+            List<IotDvsPlantype> failPlanTypes = handlePlanTypeList(failChannelPlanTypeList, serverInfo.getIotCode());
+            if (failPlanTypes.size() > 0) {
+                dvsPlanTypeService.saveBatch(failPlanTypes);
+            }
+        }
     }
 
 
@@ -156,15 +163,15 @@ public class IotDvsTemplateAndPlanServiceImpl implements IotDvsTemplateAndPlanSe
         try {
             LogUtils.SOCKET_DVS_TEMPLATE_INFO.info("收到消息:{}", JacksonUtils.toJSONString(req));
             Object data = req.getData();
-            JSONArray dataArray = (JSONArray) data;
-            if (ObjectUtil.isEmpty(dataArray)) {
+            final JSONObject param = JSON.parseObject(req.getData().toString(), JSONObject.class);
+            if (param.isEmpty()) {
                 return WebsocketResult.replySuccess(req);
             }
             IotServerInfo serverInfo = req.getServerInfo();
             String event = req.getEvent();
             if (event.equals(WebSocketConstants.DVS_TEMPLATE_AND_PLAN)) {
-                List<DvsTemplateDto> dataList = dataArray.toJavaList(DvsTemplateDto.class);
-                handDvsTemplateAndPlan(dataList, serverInfo);
+                DvsTemplateAndPlanDto templateAndPlanDto = param.toJavaObject(DvsTemplateAndPlanDto.class);
+                handDvsTemplateAndPlan(templateAndPlanDto, serverInfo);
             }else {
                 return WebsocketResult.replyError(req, ErrorMsgConstants.ERROR_ROUTE);
             }

+ 1 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvsTemplateChannelMapper.xml

@@ -40,6 +40,7 @@
             <if test="req.dvsName != null and req.dvsName != ''">
                 and i.device_name like concat('%',#{req.dvsName},'%')
             </if>
+        order by p.plan_type desc
     </select>
 
     <select id="getChannelPlanTimeList" resultType="com.xunmei.iot.vo.videoTemplateAndPlan.VideoChannelPlanTimeVo">