linfutong лет назад: 2
Родитель
Сommit
d4dcc24f5d
63 измененных файлов с 298 добавлено и 661 удалено
  1. 7 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/rfid/domain/entity/HardwareRfid.java
  2. 80 3
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/ParamVo.java
  3. 9 29
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/PlayBatchVo.java
  4. 2 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/PlayVo.java
  5. 7 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java
  6. 6 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java
  7. 9 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/face/controller/FaceApi.java
  8. 4 10
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/FireImageService.java
  9. 10 5
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/SendSginAccessLogService.java
  10. 2 0
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/common/VideoManagerConstants.java
  11. 0 91
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/RedisConfig.java
  12. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/SipPlatformRunner.java
  13. 0 117
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/Swagger3Config.java
  14. 0 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/SipLayer.java
  15. 0 64
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java
  16. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/bean/WvpSipDate.java
  17. 1 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/alarm/AlarmEvent.java
  18. 0 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/offline/KeepaliveTimeoutListenerForPlatform.java
  19. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/offline/OfflineEvent.java
  20. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/online/OnlineEvent.java
  21. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEvent.java
  22. 2 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/session/VideoStreamSessionManager.java
  23. 0 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/SIPProcessorFactory.java
  24. 3 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
  25. 0 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
  26. 0 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/ISIPRequestProcessor.java
  27. 0 12
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
  28. 0 5
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
  29. 0 34
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
  30. 0 7
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java
  31. 0 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java
  32. 0 29
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMMediaListManager.java
  33. 0 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMRTPServerFactory.java
  34. 0 46
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMRunner.java
  35. 0 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/MediaServerServiceImpl.java
  36. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/MediaServiceImpl.java
  37. 1 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/PlayServiceImpl.java
  38. 0 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/StreamProxyServiceImpl.java
  39. 0 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/UserServiceImpl.java
  40. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/storager/impl/RedisCatchStorageImpl.java
  41. 0 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/utils/JarFileUtils.java
  42. 1 5
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/alarm/AlarmInfoController.java
  43. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
  44. 1 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/media/MediaController.java
  45. 1 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/play/PlayController.java
  46. 0 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/playback/DownloadController.java
  47. 0 6
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
  48. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/log/LogController.java
  49. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/onvif/ONVIFController.java
  50. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/server/ServerController.java
  51. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/streamProxy/StreamProxyController.java
  52. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiCompatibleController.java
  53. 0 22
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiController.java
  54. 0 9
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiDeviceController.java
  55. 0 5
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiStreamController.java
  56. 2 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/monitor/HardwareDeviceMonitor.java
  57. 5 6
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/mqtt/MqttConfig.java
  58. 9 44
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidClientImpl.java
  59. 42 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/service/impl/HardwareRfidServiceImpl.java
  60. 31 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/controller/SpeakerController.java
  61. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/ISpeakerService.java
  62. 52 28
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/impl/SpeakerServiceImpl.java
  63. 3 4
      zd-modules/zd-algorithm/src/main/resources/mapper/fire/FireDeviceMapper.xml

+ 7 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/rfid/domain/entity/HardwareRfid.java

@@ -1,5 +1,6 @@
 package com.zd.algorithm.api.rfid.domain.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -151,6 +152,10 @@ public class HardwareRfid implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "位置")
+    @TableField(exist = false)
+    private String position;
+
     private static final long serialVersionUID = 1L;
 
     public static final String COL_ID = "id";
@@ -194,4 +199,6 @@ public class HardwareRfid implements Serializable {
     public static final String COL_UPDATE_TIME = "update_time";
 
     public static final String COL_REMARK = "remark";
+
+    public static final String COL_POSITION= "position";
 }

+ 80 - 3
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/ParamVo.java

@@ -5,18 +5,32 @@ import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 /**
  * 参数类
  */
 public class ParamVo {
+    @ApiModelProperty(required = true, notes = "播放次数,如果指定播放时长,则默认0")
+    private Integer count;
+    @ApiModelProperty(required = true, notes = "播放时长,如果指定播放此时,则默认0")
+    private Integer length;
+    @ApiModelProperty(required = true, notes = "任务优先级")
+    private Integer level;
+    @ApiModelProperty(required = true, notes = "任务名称")
+    private String name;
     @ApiModelProperty(required = false, notes = "任务id, 建议使用UUIDv4生成")
     private String tid;
     @ApiModelProperty(required = true, notes = "number (0~100)设备环境音量、通道音量、任务音量")
     private Integer vol;
-    @ApiModelProperty(required = true, notes = "播放路径")
+    @ApiModelProperty(required = true, notes = "任务类型")
+    private Integer type;
+    @ApiModelProperty(required = true, notes = "任务类型")
+    private String uid;
+    @ApiModelProperty(required = true, notes = "用户id")
     private List<UrlVo> urls;
 
+
     public String getTid() {
         return tid;
     }
@@ -26,11 +40,11 @@ public class ParamVo {
     }
 
     public Integer getVol() {
-        return vol;
+        return Optional.ofNullable(vol).orElse(50);
     }
 
     public void setVol(Integer vol) {
-        this.vol = Optional.ofNullable(vol).orElse(30);
+        this.vol = vol;
     }
 
     public List<UrlVo> getUrls() {
@@ -40,4 +54,67 @@ public class ParamVo {
     public void setUrls(List<UrlVo> urls) {
         this.urls = urls;
     }
+
+    public Integer getLevel() {
+        return Optional.ofNullable(level).orElse(0);
+    }
+
+    public void setLevel(Integer level) {
+        this.level =level;
+    }
+
+    public Integer getCount() {
+        return Optional.ofNullable(count).orElse(0);
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Integer getLength() {
+        return Optional.ofNullable(length).orElse(0);
+    }
+
+    public void setLength(Integer length) {
+        this.length = length;
+    }
+
+    public String getName() {
+        return Optional.ofNullable(name).orElse("实时播放");
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getType() {
+        return Optional.ofNullable(type).orElse(5);
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getUid() {
+        return Optional.ofNullable(uid).orElse(UUID.randomUUID().toString());
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    @Override
+    public String toString() {
+        return "ParamVo{" +
+                "count=" + count +
+                ", length=" + length +
+                ", level=" + level +
+                ", name='" + name + '\'' +
+                ", tid='" + tid + '\'' +
+                ", vol=" + vol +
+                ", type=" + type +
+                ", uid='" + uid + '\'' +
+                ", urls=" + urls +
+                '}';
+    }
 }

+ 9 - 29
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/PlayBatchVo.java

@@ -10,16 +10,13 @@ import org.slf4j.LoggerFactory;
  * @descript 播放vo
  */
 public class PlayBatchVo {
-
-    private static Logger logger = LoggerFactory.getLogger(PlayBatchVo.class);
-
     @ApiModelProperty(required = true, notes = "设备编号")
     private String[] sns;
-    @ApiModelProperty(required = false, notes = "方便对接时传递任务类型")
-    private String type;
-    @ApiModelProperty(required = false, notes = "任务名称")
+    @ApiModelProperty(required = true, notes = "方便对接时传递任务类型")
+    private String[] type;
+    @ApiModelProperty(required = true, notes = "任务名称")
     private String name;
-    @ApiModelProperty(required = false, notes = "播放参数")
+    @ApiModelProperty(required = true, notes = "播放参数")
     private ParamVo params;
 
     public String[] getSns() {
@@ -29,16 +26,13 @@ public class PlayBatchVo {
     public void setSns(String[] sns) {
         this.sns = sns;
     }
-    public String getType() {
+
+    public String[] getType() {
         return type;
     }
 
-    public void setType(String type) {
-        if(StringUtils.isBlank(name)){
-            this.type="req";
-        }else{
-            this.type = type;
-        }
+    public void setType(String[] type) {
+        this.type = type;
     }
 
     public String getName() {
@@ -46,11 +40,7 @@ public class PlayBatchVo {
     }
 
     public void setName(String name) {
-        if(StringUtils.isBlank(name)){
-            this.name="songs_queue_append";
-        }else{
-            this.name = name;
-        }
+        this.name = name;
     }
 
     public ParamVo getParams() {
@@ -60,14 +50,4 @@ public class PlayBatchVo {
     public void setParams(ParamVo params) {
         this.params = params;
     }
-
-    @Override
-    public String toString() {
-        return "PlayVo{" +
-                "sns='" + sns + '\'' +
-                ", type='" + type + '\'' +
-                ", name='" + name + '\'' +
-                ", params=" + params +
-                '}';
-    }
 }

+ 2 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/PlayVo.java

@@ -56,7 +56,8 @@ public class PlayVo {
 
     public void setName(String name) {
         if(StringUtils.isBlank(name)){
-            this.name="songs_queue_append";
+            //this.name="songs_queue_append";
+            this.name="priority_task_play";
         }else{
             this.name = name;
         }

+ 7 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java

@@ -56,6 +56,13 @@ public interface RemoteSpeakService {
       R textParseUrlAppIps(@RequestParam("text") String text, @RequestBody List<PlayVo> playVo);
 
       /***
+       * 语音播放
+       * @return
+       */
+      @RequestMapping("/speaker/textMoreParseUrlAppIps")
+      R textMoreParseUrlAppIps(@RequestParam("text") String text, @RequestBody List<PlayVo> playVo,@RequestParam("playNum")Integer playNum);
+
+      /***
        * 关闭喇叭
        * @return
        */

+ 6 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java

@@ -52,6 +52,12 @@ public class RemoteSpeakFallbackFactory implements FallbackFactory<RemoteSpeakSe
             }
 
             @Override
+            public R textMoreParseUrlAppIps(String text, List<PlayVo> playVo, Integer playNum) {
+                log.info("语音播放失败:" + cause.getMessage());
+                return R.fail("textParseUrlIps:语音播放失败"+ cause.getMessage());
+            }
+
+            @Override
             public R stopPlayMusic(String text, String ip) {
                 log.info("关闭喇叭失败:" + cause.getMessage());
                 return R.fail("textParseUrlIps:关闭喇叭失败"+ cause.getMessage());

+ 9 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/face/controller/FaceApi.java

@@ -4,6 +4,7 @@ import com.arcsoft.face.FaceFeature;
 import com.arcsoft.face.FaceInfo;
 import com.arcsoft.face.toolkit.ImageInfo;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import com.zd.alg.face.handle.FaceEngineFactory;
 import com.zd.alg.face.service.FaceService;
 import com.zd.alg.face.utils.FileUtil;
 import com.zd.algorithm.api.face.feign.FaceCompare;
@@ -14,6 +15,9 @@ import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.flogger.Flogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -33,6 +37,8 @@ import java.util.List;
 @RequestMapping("/faceApi")
 public class FaceApi {
 
+    Logger logger = LoggerFactory.getLogger(FaceApi.class);
+
     @Autowired
     FaceService faceService;
 
@@ -66,14 +72,15 @@ public class FaceApi {
     @PostMapping("/compare")
     public ResultData faceDetection(@RequestBody FaceCompare faceCompare)
     {
-
+        logger.info("====人脸比较====");
         R<LabStudentsInfo> info = remoteStudentsService.getInfo(faceCompare.getUserId());
         if(info.getCode()==200&&info.getData()!=null)
         {
+            logger.info("====人脸data组装====");
             FaceFeature target = new FaceFeature(info.getData().getFaceFeature());
             FaceFeature source = new FaceFeature(faceCompare.getData());
             Boolean compore = faceService.compore(target, source);
-
+            logger.info("====compore===="+compore);
             return ResultData.result(compore,()->"人脸对比不符!");
         }else
         {

+ 4 - 10
zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/FireImageService.java

@@ -63,23 +63,17 @@ public class FireImageService {
     public void camera(){
         try {
             String streamUrl = fireProperties.getStreamUrl();
-            if (streamUrl == null) {
-                log.error("=========调用产生异常:未配置流媒体地址============");
-                return;
+            if (streamUrl != null && !"".equals(streamUrl)) {
+                catchImage(streamUrl);
             }
-            catchImage();
+            //log.error("=========调用产生异常:未配置流媒体地址============");
         } catch (ServiceException | IOException e) {
             //异常回调,防止系统因异常问题被杀死
             log.error("=========调用产生异常:{}============", e.getMessage());
         }
     }
 
-    public void catchImage() throws IOException {
-        String streamUrl = fireProperties.getStreamUrl();
-        if (streamUrl == null) {
-            throw new ServiceException("未配置流媒体地址");
-        }
-
+    public void catchImage(String streamUrl) throws IOException {
         try (FFmpegFrameGrabber grabber = VideoUtils.createGrabber(streamUrl)) {
             grabber.start();
             String fileName = "test";

+ 10 - 5
zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/SendSginAccessLogService.java

@@ -9,6 +9,7 @@ import com.zd.algorithm.api.speaker.entity.PlayVo;
 import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
 import com.zd.common.core.exception.PreAuthorizeException;
 import com.zd.common.core.utils.StringUtils;
+import com.zd.laboratory.api.feign.RemoteLaboratoryService;
 import com.zd.model.constant.CacheDevice;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
@@ -26,10 +27,7 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 
@@ -47,6 +45,8 @@ public class SendSginAccessLogService {
     private final AlgorithmYml algorithmYml;
 
     private final RemoteSpeakService remoteSpeakService;
+    @Autowired
+    private RemoteLaboratoryService remoteLaboratoryService;
 
     /**
      * 报警次数记录
@@ -148,7 +148,12 @@ public class SendSginAccessLogService {
         }
         String loudspeakerIp1 = algorithmYml.getLoudspeakerIp1();
         String loudspeakerIp2 = algorithmYml.getLoudspeakerIp2();
-        R deviceList = remoteSpeakService.getDeviceList(1, 100, 5L);
+        R<Object> objectR = remoteLaboratoryService.selectSpeakerCount();
+        Integer count = 0;
+        if (!Objects.isNull(objectR) && objectR.getCode() == (HttpStatus.SUCCESS)){
+            count = Integer.parseInt(String.valueOf(objectR.getData()));
+        }
+        R deviceList = remoteSpeakService.getDeviceList(1, count + 10, 5L);
         if (deviceList.getCode() == HttpStatus.SUCCESS) {
             List<Map<String, Object>> mapList = (List<Map<String, Object>>) deviceList.getData();
             for (Map<String, Object> map : mapList) {

+ 2 - 0
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/common/VideoManagerConstants.java

@@ -51,4 +51,6 @@ public class VideoManagerConstants {
 	public static final String MEDIA_SSRC_USED_PREFIX = "VMP_media_used_ssrc_";
 
 	public static final String MEDIA_TRANSACTION_USED_PREFIX = "VMP_media_transaction_";
+
+	public static final long REDIS_ERPIRE = 12*60*60;
 }

+ 0 - 91
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/RedisConfig.java

@@ -1,91 +0,0 @@
-//package com.zd.alg.iot.vmp.conf;
-//
-//import org.apache.commons.lang3.StringUtils;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.cache.annotation.CachingConfigurerSupport;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.data.redis.connection.RedisConnectionFactory;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.data.redis.listener.RedisMessageListenerContainer;
-//import org.springframework.data.redis.serializer.StringRedisSerializer;
-//
-//import com.alibaba.fastjson.parser.ParserConfig;
-//import com.zd.alg.iot.vmp.utils.redis.FastJsonRedisSerializer;
-//import redis.clients.jedis.JedisPool;
-//import redis.clients.jedis.JedisPoolConfig;
-//
-///**
-// * @Description:Redis中间件配置类,使用spring-data-redis集成,自动从application.yml中加载redis配置
-// * @author: dgs
-// * @date: 2019年5月30日 上午10:58:25
-// *
-// */
-//@Configuration
-//public class RedisConfig extends CachingConfigurerSupport {
-//
-//	@Value("${spring.redis.host}")
-//	private String host;
-//	@Value("${spring.redis.port}")
-//	private int port;
-//	@Value("${spring.redis.database}")
-//	private int database;
-//	@Value("${spring.redis.password}")
-//	private String password;
-//	@Value("${spring.redis.timeout:2000}")
-//	private int timeout;
-//	@Value("${spring.redis.poolMaxTotal:1000}")
-//	private int poolMaxTotal;
-//	@Value("${spring.redis.poolMaxIdle:500}")
-//	private int poolMaxIdle;
-//	@Value("${spring.redis.poolMaxWait:5}")
-//	private int poolMaxWait;
-//
-//	@Bean
-//	public JedisPool jedisPool() {
-//		if (StringUtils.isBlank(password)) {
-//			password = null;
-//		}
-//		JedisPoolConfig poolConfig = new JedisPoolConfig();
-//		poolConfig.setMaxIdle(poolMaxIdle);
-//		poolConfig.setMaxTotal(poolMaxTotal);
-//		// 秒转毫秒
-//		poolConfig.setMaxWaitMillis(poolMaxWait * 1000L);
-//		JedisPool jp = new JedisPool(poolConfig, host, port, timeout * 1000, password, database);
-//		return jp;
-//	}
-//
-//	@Bean("redisTemplate")
-//	public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
-//		RedisTemplate<Object, Object> template = new RedisTemplate<>();
-//		template.setConnectionFactory(redisConnectionFactory);
-//		// 使用fastjson进行序列化处理,提高解析效率
-//		FastJsonRedisSerializer<Object> serializer = new FastJsonRedisSerializer<Object>(Object.class);
-//		// value值的序列化采用fastJsonRedisSerializer
-//		template.setValueSerializer(serializer);
-//		template.setHashValueSerializer(serializer);
-//		// key的序列化采用StringRedisSerializer
-//		template.setKeySerializer(new StringRedisSerializer());
-//		template.setHashKeySerializer(new StringRedisSerializer());
-//		template.setConnectionFactory(redisConnectionFactory);
-//		// 使用fastjson时需设置此项,否则会报异常not support type
-//		ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
-//		return template;
-//	}
-//
-//	/**
-//	 * redis消息监听器容器 可以添加多个监听不同话题的redis监听器,只需要把消息监听器和相应的消息订阅处理器绑定,该消息监听器
-//	 * 通过反射技术调用消息订阅处理器的相关方法进行一些业务处理
-//	 *
-//	 * @param connectionFactory
-//	 * @return
-//	 */
-//	@Bean
-//	RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
-//
-//        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
-//        container.setConnectionFactory(connectionFactory);
-//        return container;
-//    }
-//
-//}

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/SipPlatformRunner.java

@@ -41,9 +41,6 @@ public class SipPlatformRunner implements CommandLineRunner {
         // 清理所有平台注册缓存
         redisCatchStorage.cleanPlatformRegisterInfos();
 
-        // 停止所有推流
-//        zlmrtpServerFactory.closeAllSendRtpStream();
-
         List<ParentPlatform> parentPlatforms = storager.queryEnableParentPlatformList(true);
 
         for (ParentPlatform parentPlatform : parentPlatforms) {

+ 0 - 117
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/conf/Swagger3Config.java

@@ -1,117 +0,0 @@
-//package com.zd.alg.iot.vmp.conf;
-//
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import springfox.documentation.builders.ApiInfoBuilder;
-//import springfox.documentation.builders.PathSelectors;
-//import springfox.documentation.builders.RequestHandlerSelectors;
-//import springfox.documentation.service.ApiInfo;
-//import springfox.documentation.service.Contact;
-//import springfox.documentation.spi.DocumentationType;
-//import springfox.documentation.spring.web.plugins.Docket;
-//
-//@Configuration
-//public class Swagger3Config {
-//
-//    @Value("${swagger-ui.enabled}")
-//    private boolean enable;
-//
-//    @Bean
-//    public Docket createRestApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("1. 全部")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//    @Bean
-//    public Docket createRestGBApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("2. 国标28181")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.gb28181"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//
-//    @Bean
-//    public Docket createRestONVIFApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("3. ONVIF")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.onvif"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//
-//    @Bean
-//    public Docket createRestStreamProxyApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("4. 拉流转发")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.streamProxy"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//    @Bean
-//    public Docket createRestStreamPushApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("5. 推流管理")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.streamPush"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//
-//
-//    @Bean
-//    public Docket createServerApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("6. 服务管理")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.server"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//    @Bean
-//    public Docket createUserApi() {
-//        return new Docket(DocumentationType.OAS_30)
-//                .apiInfo(apiInfo())
-//                .groupName("7. 用户管理")
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.zd.iot.vmp.vmanager.user"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .pathMapping("/")
-//                .enable(enable);
-//    }
-//
-//    private ApiInfo apiInfo() {
-//        return new ApiInfoBuilder()
-//                .title("WVP-PRO 接口文档")
-//                .description("更多请咨询服务开发者(18010473990@@163.com)。")
-//                .contact(new Contact("panlinlin", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com"))
-//                .version("2.0")
-//                .build();
-//    }
-//}

+ 0 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/SipLayer.java

@@ -186,9 +186,6 @@ public class SipLayer implements SipListener {
 				}
 			}
 		}
-
-
-
 	}
 
 	/**
@@ -250,7 +247,6 @@ public class SipLayer implements SipListener {
 	@Override
 	public void processDialogTerminated(DialogTerminatedEvent dialogTerminatedEvent) {
 		// TODO Auto-generated method stub
-
 	}
 
 }

+ 0 - 64
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java

@@ -56,9 +56,6 @@ public class DigestServerAuthenticationHelper  {
     public static final String DEFAULT_ALGORITHM = "MD5";
     public static final String DEFAULT_SCHEME = "Digest";
 
-
-
-
     /** to hex converter */
     private static final char[] toHex = { '0', '1', '2', '3', '4', '5', '6',
             '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
@@ -134,19 +131,15 @@ public class DigestServerAuthenticationHelper  {
         if ( username == null || realm == null ) {
             return false;
         }
-
         String nonce = authHeader.getNonce();
         URI uri = authHeader.getURI();
         if (uri == null) {
             return false;
         }
 
-
-
         String A2 = request.getMethod().toUpperCase() + ":" + uri.toString();
         String HA1 = hashedPassword;
 
-
         byte[] mdbytes = messageDigest.digest(A2.getBytes());
         String HA2 = toHexString(mdbytes);
 
@@ -197,8 +190,6 @@ public class DigestServerAuthenticationHelper  {
         // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量
         int nc = authHeader.getNonceCount();
         String ncStr = String.format("%08x", nc).toUpperCase();
-        // String ncStr = new DecimalFormat("00000000").format(nc);
-        // String ncStr = new DecimalFormat("00000000").format(Integer.parseInt(nc + "", 16));
 
         String A1 = username + ":" + realm + ":" + pass;
         String A2 = request.getMethod().toUpperCase() + ":" + uri.toString();
@@ -237,59 +228,4 @@ public class DigestServerAuthenticationHelper  {
         return mdString.equals(response);
 
     }
-
-//     public static void main(String[] args) throws NoSuchAlgorithmException {
-//         String realm = "3402000000";
-//         String username = "44010000001180008012";
-
-
-//         String nonce = "07cab60999fbf643264ace27d3b7de8b";
-//         String uri = "sip:34020000002000000001@3402000000";
-//         // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略
-//         String qop = "auth";
-
-//         // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。
-//         // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护
-//         //String cNonce = authHeader.getCNonce();
-
-//         // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量
-//         int nc = 1;
-//         String ncStr = new DecimalFormat("00000000").format(nc);
-// //        String ncStr = new DecimalFormat("00000000").format(Integer.parseInt(nc + "", 16));
-//         MessageDigest messageDigest = MessageDigest.getInstance(DEFAULT_ALGORITHM);
-//         String A1 = username + ":" + realm + ":" + "12345678";
-//         String A2 = "REGISTER" + ":" + uri;
-//         byte mdbytes[] = messageDigest.digest(A1.getBytes());
-//         String HA1 = toHexString(mdbytes);
-//         System.out.println("A1: " + A1);
-//         System.out.println("A2: " + A2);
-
-//         mdbytes = messageDigest.digest(A2.getBytes());
-//         String HA2 = toHexString(mdbytes);
-//         System.out.println("HA1: " + HA1);
-//         System.out.println("HA2: " + HA2);
-//         String cnonce = "0a4f113b";
-//         System.out.println("nonce: " + nonce);
-//         System.out.println("nc: " + ncStr);
-//         System.out.println("cnonce: " + cnonce);
-//         System.out.println("qop: " + qop);
-//         String KD = HA1 + ":" + nonce;
-
-//         if (qop != null && qop.equals("auth") ) {
-//             if (nc != -1) {
-//                 KD += ":" + ncStr;
-//             }
-//             if (cnonce != null) {
-//                 KD += ":" + cnonce;
-//             }
-//             KD += ":" + qop;
-//         }
-//         KD += ":" + HA2;
-//         System.out.println("KD: " + KD);
-//         mdbytes = messageDigest.digest(KD.getBytes());
-//         String mdString = toHexString(mdbytes);
-//         System.out.println("mdString: " + mdString);
-//         String response = "4f0507d4b87cdecff04bdaf4c96348f0";
-//         System.out.println("response: " + response);
-//     }
 }

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/bean/WvpSipDate.java

@@ -10,9 +10,6 @@ import java.util.*;
  */
 public class WvpSipDate extends SIPDate {
 
-    /**
-     *
-     */
     private static final long serialVersionUID = 1L;
 
     private Calendar javaCal;

+ 1 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/alarm/AlarmEvent.java

@@ -10,9 +10,7 @@ import org.springframework.context.ApplicationEvent;
  */
 
 public class AlarmEvent extends ApplicationEvent {
-    /**
-     *
-     */
+
     private static final long serialVersionUID = 1L;
 
     public AlarmEvent(Object source) {

+ 0 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/offline/KeepaliveTimeoutListenerForPlatform.java

@@ -28,7 +28,6 @@ public class KeepaliveTimeoutListenerForPlatform extends KeyExpirationEventMessa
         super(listenerContainer);
     }
 
-
     /**
      * 监听失效的key
      * @param message
@@ -56,6 +55,5 @@ public class KeepaliveTimeoutListenerForPlatform extends KeyExpirationEventMessa
             String deviceId = expiredKey.substring(VideoManagerConstants.KEEPLIVEKEY_PREFIX.length(),expiredKey.length());
             publisher.outlineEventPublish(deviceId, VideoManagerConstants.EVENT_OUTLINE_TIMEOUT);
         }
-
     }
 }

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/offline/OfflineEvent.java

@@ -9,9 +9,6 @@ import org.springframework.context.ApplicationEvent;
  */
 public class OfflineEvent extends ApplicationEvent {
 
-	/**
-	 *
-	 */
 	private static final long serialVersionUID = 1L;
 
 	public OfflineEvent(Object source) {

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/online/OnlineEvent.java

@@ -10,9 +10,6 @@ import org.springframework.context.ApplicationEvent;
  */
 public class OnlineEvent extends ApplicationEvent {
 
-	/**
-	 *
-	 */
 	private static final long serialVersionUID = 1L;
 
 	public OnlineEvent(Object source) {

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEvent.java

@@ -4,9 +4,6 @@ import org.springframework.context.ApplicationEvent;
 
 public class PlatformNotRegisterEvent extends ApplicationEvent {
 
-    /**
-     * Add default serial version ID
-     */
     private static final long serialVersionUID = 1L;
 
     private String platformGbID;

+ 2 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/session/VideoStreamSessionManager.java

@@ -34,8 +34,7 @@ public class VideoStreamSessionManager {
 		ssrcTransaction.setTransaction(transactionByteArray);
 		ssrcTransaction.setSsrc(ssrc);
 		ssrcTransaction.setMediaServerId(mediaServerId);
-
-		redisUtil.set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX +  deviceId + "_" + channelId, ssrcTransaction);
+		redisUtil.set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX +  deviceId + "_" + channelId, ssrcTransaction, VideoManagerConstants.REDIS_ERPIRE);
 	}
 
 	public void put(String deviceId, String channelId , Dialog dialog){
@@ -44,7 +43,7 @@ public class VideoStreamSessionManager {
 			byte[] dialogByteArray = SerializeUtils.serialize(dialog);
 			ssrcTransaction.setDialog(dialogByteArray);
 		}
-		redisUtil.set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX +  deviceId + "_" + channelId, ssrcTransaction);
+		redisUtil.set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX +  deviceId + "_" + channelId, ssrcTransaction, VideoManagerConstants.REDIS_ERPIRE);
 	}
 
 

+ 0 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/SIPProcessorFactory.java

@@ -38,8 +38,6 @@ import javax.sip.message.Response;
 @Component
 public class SIPProcessorFactory {
 
-	// private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class);
-
 	@Autowired
 	private SipConfig sipConfig;
 

+ 3 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java

@@ -20,7 +20,6 @@ public interface ISIPCommander {
 	 * @param channelId  预览通道
 	 * @param leftRight  镜头左移右移 0:停止 1:左移 2:右移
      * @param upDown     镜头上移下移 0:停止 1:上移 2:下移
-     * @param moveSpeed  镜头移动速度
 	 */
 	boolean ptzdirectCmd(Device device, String channelId, int leftRight, int upDown);
 
@@ -50,7 +49,7 @@ public interface ISIPCommander {
 	 * @param device  控制设备
 	 * @param channelId  预览通道
      * @param inOut      镜头放大缩小 0:停止 1:缩小 2:放大
-     * @param zoomSpeed  镜头缩放速度
+     * @param moveSpeed  镜头缩放速度
 	 */
 	boolean ptzZoomCmd(Device device, String channelId, int inOut, int moveSpeed);
 
@@ -157,7 +156,7 @@ public interface ISIPCommander {
 	 * 报警布防/撤防命令
 	 *
 	 * @param device  	视频设备
-	 * @param setGuard	true: SetGuard, false: ResetGuard
+	 * @param guardCmdStr	true: SetGuard, false: ResetGuard
 	 */
 	boolean guardCmd(Device device, String guardCmdStr, SipSubscribe.Event errorEvent);
 
@@ -292,7 +291,7 @@ public interface ISIPCommander {
 	 * @param expires		订阅过期时间(0 = 取消订阅)
 	 * @param startPriority	报警起始级别(可选)
 	 * @param endPriority	报警终止级别(可选)
-	 * @param alarmMethods	报警方式条件(可选)
+	 * @param alarmMethod	报警方式条件(可选)
 	 * @param alarmType		报警类型
 	 * @param startTime		报警发生起始时间(可选)
 	 * @param endTime		报警发生终止时间(可选)

+ 0 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java

@@ -342,7 +342,6 @@ public class SIPCommander implements ISIPCommander {
 		try {
 			if (device == null) return;
 			String streamMode = device.getStreamMode().toUpperCase();
-			//logger.info("{} 分配的ZLM为: {} [{}:{}]", streamId, mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
 			// 添加订阅
 			JSONObject subscribeKey = new JSONObject();
 			subscribeKey.put("app", "rtp");

+ 0 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/ISIPRequestProcessor.java

@@ -8,5 +8,4 @@ package com.zd.alg.iot.vmp.gb28181.transmit.request;
 public interface ISIPRequestProcessor {
 
 	public void process();
-
 }

+ 0 - 12
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java

@@ -102,18 +102,6 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor {
 				}
 			}
 		}
-		// try {
-		// 	Request ackRequest = null;
-		// 	CSeq csReq = (CSeq) request.getHeader(CSeq.NAME);
-		// 	ackRequest = dialog.createAck(csReq.getSeqNumber());
-		// 	dialog.sendAck(ackRequest);
-		// 	logger.info("send ack to callee:" + ackRequest.toString());
-		// } catch (SipException e) {
-		// 	e.printStackTrace();
-		// } catch (InvalidArgumentException e) {
-		// 	e.printStackTrace();
-		// }
-
 	}
 
 	public IRedisCatchStorage getRedisCatchStorage() {

+ 0 - 5
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java

@@ -423,11 +423,6 @@ public class InviteRequestProcessor extends SIPRequestAbstractProcessor {
 		getServerTransaction(evt).sendResponse(response);
 	}
 
-
-
-
-
-
 	public SIPCommanderFroPlatform getCmderFroPlatform() {
 		return cmderFroPlatform;
 	}

+ 0 - 34
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java

@@ -898,41 +898,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
 						logger.debug("Thread " + cacheKey + " already started.");
 					}
 				}
-
-				// 存在录像且如果当前录像明细个数小于总条数,说明拆包返回,需要组装,暂不返回
-				// if (recordInfo.getSumNum() > 0 && recordList.size() > 0 && recordList.size() < recordInfo.getSumNum()) {
-				// 	// 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分
-				// 	String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn;
-
-				// 	redis.set(cacheKey + "_" + uuid, recordList, 90);
-				// 	List<Object> cacheKeys = redis.scan(cacheKey + "_*");
-				// 	List<RecordItem> totalRecordList = new ArrayList<RecordItem>();
-				// 	for (int i = 0; i < cacheKeys.size(); i++) {
-				// 		totalRecordList.addAll((List<RecordItem>) redis.get(cacheKeys.get(i).toString()));
-				// 	}
-				// 	if (totalRecordList.size() < recordInfo.getSumNum()) {
-				// 		logger.info("已获取" + totalRecordList.size() + "项录像数据,共" + recordInfo.getSumNum() + "项");
-				// 		return;
-				// 	}
-				// 	logger.info("录像数据已全部获取,共" + recordInfo.getSumNum() + "项");
-				// 	recordInfo.setRecordList(totalRecordList);
-				// 	for (int i = 0; i < cacheKeys.size(); i++) {
-				// 		redis.del(cacheKeys.get(i).toString());
-				// 	}
-				// }
-				// // 自然顺序排序, 元素进行升序排列
-				// recordInfo.getRecordList().sort(Comparator.naturalOrder());
 			}
-			// 走到这里,有以下可能:1、没有录像信息,第一次收到recordinfo的消息即返回响应数据,无redis操作
-			// 2、有录像数据,且第一次即收到完整数据,返回响应数据,无redis操作
-			// 3、有录像数据,在超时时间内收到多次包组装后数量足够,返回数据
-
-			// RequestMessage msg = new RequestMessage();
-			// msg.setDeviceId(deviceId);
-			// msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO);
-			// msg.setData(recordInfo);
-			// deferredResultHolder.invokeResult(msg);
-			// logger.info("处理完成,返回结果");
 		} catch (DocumentException | SipException | InvalidArgumentException | ParseException e) {
 			e.printStackTrace();
 		}

+ 0 - 7
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java

@@ -320,13 +320,6 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor {
 					deviceChannel.setHasAudio(true); // 默认含有音频,播放时再检查是否有音频及是否AAC
 					storager.updateChannel(device.getDeviceId(), deviceChannel);
 				}
-
-				// RequestMessage msg = new RequestMessage();
-				// msg.setDeviceId(deviceId);
-				// msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);
-				// msg.setData(device);
-				// deferredResultHolder.invokeResult(msg);
-				// 回复200 OK
 				response200Ok(evt);
 				if (offLineDetector.isOnline(deviceId)) {
 					publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_MESSAGE);

+ 0 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java

@@ -112,6 +112,4 @@ public class ZLMHttpHookSubscribe {
         }
         return result;
     }
-
-
 }

+ 0 - 29
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMMediaListManager.java

@@ -122,33 +122,4 @@ public class ZLMMediaListManager {
             storager.mediaOutline(app, streamId);
         }
     }
-
-//    public void clearAllSessions() {
-//        logger.info("清空所有国标相关的session");
-//        JSONObject allSessionJSON = zlmresTfulUtils.getAllSession();
-//        ZLMServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
-//        HashSet<String> allLocalPorts = new HashSet();
-//        if (allSessionJSON.getInteger("code") == 0) {
-//            JSONArray data = allSessionJSON.getJSONArray("data");
-//            if (data.size() > 0) {
-//                for (int i = 0; i < data.size(); i++) {
-//                    JSONObject sessionJOSN = data.getJSONObject(i);
-//                    Integer local_port = sessionJOSN.getInteger("local_port");
-//                    if (!local_port.equals(Integer.valueOf(mediaInfo.getHttpPort())) &&
-//                        !local_port.equals(Integer.valueOf(mediaInfo.getHttpSSLport())) &&
-//                        !local_port.equals(Integer.valueOf(mediaInfo.getRtmpPort())) &&
-//                        !local_port.equals(Integer.valueOf(mediaInfo.getRtspPort())) &&
-//                        !local_port.equals(Integer.valueOf(mediaInfo.getRtspSSlport())) &&
-//                        !local_port.equals(Integer.valueOf(mediaInfo.getHookOnFlowReport()))){
-//                        allLocalPorts.add(sessionJOSN.getInteger("local_port") + "");
-//                     }
-//                }
-//            }
-//        }
-//        if (allLocalPorts.size() > 0) {
-//            List<String> result = new ArrayList<>(allLocalPorts);
-//            String localPortSStr = String.join(",", result);
-//            zlmresTfulUtils.kickSessions(localPortSStr);
-//        }
-//    }
 }

+ 0 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMRTPServerFactory.java

@@ -249,8 +249,4 @@ public class ZLMRTPServerFactory {
         }
         return result;
     }
-
-    public void closeAllSendRtpStream() {
-
-    }
 }

+ 0 - 46
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/media/zlm/ZLMRunner.java

@@ -44,20 +44,6 @@ public class ZLMRunner implements CommandLineRunner {
         // 清楚redis缓存的在线zlm信息
         mediaServerService.clearMediaServerForOnline();
 
-        // 将配置文件的meida配置写入数据库
-//        MediaServerItem presetMediaServer = mediaServerService.getOneByHostAndPort(
-//                mediaConfig.getIp(), mediaConfig.getHttpPort());
-//        if (presetMediaServer  != null) {
-//            MediaServerItem mediaSerItem = mediaConfig.getMediaSerItem();
-//            mediaSerItem.setId(presetMediaServer.getId());
-//            mediaServerService.update(mediaSerItem);
-//        }else {
-//            if (mediaConfig.getId() != null) {
-//                MediaServerItem mediaSerItem = mediaConfig.getMediaSerItem();
-//                mediaServerService.add(mediaSerItem);
-//            }
-//        }
-
         // 订阅 zlm启动事件, 新的zlm也会从这里进入系统
         hookSubscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_server_started,null,
                 (MediaServerItem mediaServerItem, JSONObject response)->{
@@ -131,36 +117,4 @@ public class ZLMRunner implements CommandLineRunner {
         return ZLMServerConfig;
 
     }
-
-    /**
-     * zlm 连接成功或者zlm重启后
-     */
-//    private void zLmRunning(ZLMServerConfig zlmServerConfig){
-//        logger.info( "[ id: " + zlmServerConfig.getGeneralMediaServerId() + "] zlm接入成功...");
-//        // 关闭循环获取zlm配置
-//        startGetMedia = false;
-//        MediaServerItem mediaServerItem = new MediaServerItem(zlmServerConfig, sipIp);
-//        storager.updateMediaServer(mediaServerItem);
-//
-//        if (mediaServerItem.isAutoConfig()) setZLMConfig(mediaServerItem);
-//        zlmServerManger.updateServerCatchFromHook(zlmServerConfig);
-//
-//        // 清空所有session
-////        zlmMediaListManager.clearAllSessions();
-//
-//        // 更新流列表
-//        zlmMediaListManager.updateMediaList(mediaServerItem);
-//        // 恢复流代理, 只查找这个这个流媒体
-//        List<StreamProxyItem> streamProxyListForEnable = storager.getStreamProxyListForEnableInMediaServer(
-//                mediaServerItem.getId(), true);
-//        for (StreamProxyItem streamProxyDto : streamProxyListForEnable) {
-//            logger.info("恢复流代理," + streamProxyDto.getApp() + "/" + streamProxyDto.getStream());
-//            JSONObject jsonObject = streamProxyService.addStreamProxyToZlm(streamProxyDto);
-//            if (jsonObject == null) {
-//                // 设置为未启用
-//                logger.info("恢复流代理失败,请检查流地址后重新启用" + streamProxyDto.getApp() + "/" + streamProxyDto.getStream());
-//                streamProxyService.stop(streamProxyDto.getApp(), streamProxyDto.getStream());
-//            }
-//        }
-//    }
 }

+ 0 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/MediaServerServiceImpl.java

@@ -308,14 +308,12 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
 
     }
 
-
     @Override
     public void addCount(String mediaServerId) {
         if (mediaServerId == null) return;
         String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX;
         Double aDouble = redisUtil.zScore(key, mediaServerId);
         redisUtil.zIncrScore(key, mediaServerId, 1);
-
     }
 
     @Override
@@ -389,6 +387,4 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
                     mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
         }
     }
-
-
 }

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/MediaServiceImpl.java

@@ -28,8 +28,6 @@ public class MediaServiceImpl implements IMediaService {
     @Autowired
     private ZLMRESTfulUtils zlmresTfulUtils;
 
-
-
     @Override
     public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, JSONArray tracks) {
         return getStreamInfoByAppAndStream(mediaInfo, app, stream, tracks, null);
@@ -83,5 +81,4 @@ public class MediaServiceImpl implements IMediaService {
         streamInfoResult.setTracks(tracks);
         return streamInfoResult;
     }
-
 }

+ 1 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/PlayServiceImpl.java

@@ -12,7 +12,7 @@ import com.zd.alg.iot.vmp.service.bean.SSRCInfo;
 import com.zd.alg.iot.vmp.storager.IRedisCatchStorage;
 import com.zd.alg.iot.vmp.storager.IVideoManagerStorager;
 import com.zd.alg.iot.vmp.storager.dao.DeviceChannelMapper;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.zd.alg.iot.vmp.vmanager.gb28181.play.bean.PlayResult;
 import com.zd.alg.iot.vmp.common.StreamInfo;
 import com.zd.alg.iot.vmp.gb28181.bean.Device;
@@ -350,5 +350,4 @@ public class PlayServiceImpl implements IPlayService {
         streamInfo.setChannelId(channelId);
         return streamInfo;
     }
-
 }

+ 0 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/StreamProxyServiceImpl.java

@@ -209,7 +209,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
                 }
             }
         }
-
         return result;
     }
 }

+ 0 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/service/impl/UserServiceImpl.java

@@ -51,6 +51,4 @@ public class UserServiceImpl implements IUserService {
     public int updateUsers(User user) {
         return userMapper.update(user);
     }
-
-
 }

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/storager/impl/RedisCatchStorageImpl.java

@@ -39,7 +39,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
     @Override
     public boolean startPlay(StreamInfo stream) {
         return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, stream.getStreamId(),stream.getDeviceID(), stream.getChannelId()),
-                stream);
+                stream, VideoManagerConstants.REDIS_ERPIRE);
     }
 
     /**

+ 0 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/utils/JarFileUtils.java

@@ -65,9 +65,6 @@ public class JarFileUtils {
                 e.printStackTrace();
             }
         }
-
         return map;
-
     }
-
 }

+ 1 - 5
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/alarm/AlarmInfoController.java

@@ -2,7 +2,7 @@ package com.zd.alg.iot.vmp.vmanager.gb28181.alarm;
 
 import com.zd.alg.iot.vmp.gb28181.bean.DeviceAlarm;
 import com.zd.alg.iot.vmp.service.IDeviceAlarmService;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -71,8 +71,6 @@ public class AlarmInfoController {
         if (StringUtils.isEmpty(alarmType)) alarmType = null;
         if (StringUtils.isEmpty(startTime)) startTime = null;
         if (StringUtils.isEmpty(endTime)) endTime = null;
-
-
         try {
             if (startTime != null)  format.parse(startTime);
             if (endTime != null)  format.parse(endTime);
@@ -129,6 +127,4 @@ public class AlarmInfoController {
         wvpResult.setData(count);
         return new ResponseEntity<WVPResult<String>>(wvpResult, HttpStatus.OK);
     }
-
-
 }

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/device/DeviceQuery.java

@@ -3,7 +3,7 @@ package com.zd.alg.iot.vmp.vmanager.gb28181.device;
 import com.zd.alg.iot.vmp.gb28181.bean.DeviceChannel;
 import com.zd.alg.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.zd.alg.iot.vmp.storager.IRedisCatchStorage;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.github.pagehelper.PageInfo;
 import com.zd.alg.iot.vmp.gb28181.event.DeviceOffLineDetector;
 import com.zd.alg.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;

+ 1 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/media/MediaController.java

@@ -4,7 +4,7 @@ import com.zd.alg.iot.vmp.common.StreamInfo;
 import com.zd.alg.iot.vmp.service.IStreamPushService;
 import com.zd.alg.iot.vmp.service.IMediaService;
 import com.zd.alg.iot.vmp.storager.IVideoManagerStorager;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -61,7 +61,4 @@ public class MediaController {
         }
         return result;
     }
-
-
-
 }

+ 1 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/play/PlayController.java

@@ -18,8 +18,8 @@ import com.zd.alg.iot.vmp.service.IPlayService;
 import com.zd.alg.iot.vmp.storager.IRedisCatchStorage;
 import com.zd.alg.iot.vmp.storager.IVideoManagerStorager;
 import com.zd.alg.iot.vmp.storager.dao.DeviceChannelMapper;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
 import com.zd.alg.iot.vmp.vmanager.gb28181.play.bean.PlayResult;
+import com.zd.model.domain.WVPResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -29,7 +29,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.context.request.async.DeferredResult;
 

+ 0 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/playback/DownloadController.java

@@ -104,7 +104,6 @@ public class DownloadController {
 		}
 
 		SSRCInfo ssrcInfo = mediaServerService.openRTPServer(newMediaServerItem, null);
-
 		cmder.downloadStreamCmd(newMediaServerItem, ssrcInfo, device, channelId, startTime, endTime, downloadSpeed, (MediaServerItem mediaServerItem, JSONObject response) -> {
 			logger.info("收到订阅消息: " + response.toJSONString());
 			playService.onPublishHandlerForPlayBack(mediaServerItem, response, deviceId, channelId, uuid.toString());

+ 0 - 6
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/gb28181/playback/PlaybackController.java

@@ -3,7 +3,6 @@ package com.zd.alg.iot.vmp.vmanager.gb28181.playback;
 import com.zd.alg.iot.vmp.common.StreamInfo;
 import com.zd.alg.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.zd.alg.iot.vmp.gb28181.transmit.callback.RequestMessage;
-//import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
 import com.zd.alg.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.zd.alg.iot.vmp.service.IMediaServerService;
 import com.zd.alg.iot.vmp.service.bean.SSRCInfo;
@@ -24,12 +23,10 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
 import com.alibaba.fastjson.JSONObject;
 import com.zd.alg.iot.vmp.gb28181.bean.Device;
 import com.zd.alg.iot.vmp.storager.IVideoManagerStorager;
 import org.springframework.web.context.request.async.DeferredResult;
-
 import javax.sip.message.Response;
 import java.util.UUID;
 
@@ -50,9 +47,6 @@ public class PlaybackController {
 	@Autowired
 	private IRedisCatchStorage redisCatchStorage;
 
-	// @Autowired
-	// private ZLMRESTfulUtils zlmresTfulUtils;
-
 	@Autowired
 	private IPlayService playService;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/log/LogController.java

@@ -3,7 +3,7 @@ package com.zd.alg.iot.vmp.vmanager.log;
 import com.zd.alg.iot.vmp.conf.UserSetup;
 import com.zd.alg.iot.vmp.service.ILogService;
 import com.zd.alg.iot.vmp.storager.dao.dto.LogDto;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/onvif/ONVIFController.java

@@ -7,7 +7,7 @@ import com.zd.alg.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.zd.alg.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.zd.alg.iot.vmp.onvif.IONVIFServer;
 import com.zd.alg.iot.vmp.service.IMediaServerService;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.zd.model.constant.HttpStatus;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/server/ServerController.java

@@ -10,7 +10,7 @@ import com.zd.alg.iot.vmp.common.VersionPo;
 import com.zd.alg.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.zd.alg.iot.vmp.service.IMediaServerService;
 import com.zd.alg.iot.vmp.utils.SpringBeanFactory;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import gov.nist.javax.sip.SipStackImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/vmanager/streamProxy/StreamProxyController.java

@@ -6,7 +6,7 @@ import com.zd.alg.iot.vmp.media.zlm.dto.StreamProxyItem;
 import com.zd.alg.iot.vmp.service.IMediaServerService;
 import com.zd.alg.iot.vmp.storager.IRedisCatchStorage;
 import com.zd.alg.iot.vmp.service.IStreamProxyService;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiCompatibleController.java

@@ -2,7 +2,7 @@ package com.zd.alg.iot.vmp.web;
 
 import com.zd.alg.iot.vmp.common.StreamInfo;
 import com.zd.alg.iot.vmp.service.IMediaService;
-import com.zd.alg.iot.vmp.vmanager.bean.WVPResult;
+import com.zd.model.domain.WVPResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;

+ 0 - 22
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiController.java

@@ -53,28 +53,6 @@ public class ApiController {
 
     @RequestMapping(value = "/userinfo")
     private JSONObject userinfo(){
-//        JSONObject result = new JSONObject();
-//        result.put("ID","ceshi");
-//        result.put("Hardware","");
-//        result.put("InterfaceVersion","2.5.5");
-//        result.put("IsDemo","");
-//        result.put("Hardware","false");
-//        result.put("APIAuth","false");
-//        result.put("RemainDays","永久");
-//        result.put("RunningTime","");
-//        result.put("ServerTime","2020-09-02 17:11");
-//        result.put("StartUpTime","2020-09-02 17:11");
-//        result.put("Server","");
-//        result.put("SIPSerial", sipConfig.getId());
-//        result.put("SIPRealm", sipConfig.getDomain());
-//        result.put("SIPHost", sipConfig.getIp());
-//        result.put("SIPPort", sipConfig.getPort());
-//        result.put("ChannelCount","1000");
-//        result.put("VersionType","");
-//        result.put("LogoMiniText","");
-//        result.put("LogoText","");
-//        result.put("CopyrightText","");
-
         return null;
     }
 

+ 0 - 9
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiDeviceController.java

@@ -27,15 +27,6 @@ public class ApiDeviceController {
     @Autowired
     private IVideoManagerStorager storager;
 
-    // @Autowired
-    // private SIPCommander cmder;
-
-    // @Autowired
-    // private DeferredResultHolder resultHolder;
-
-    // @Autowired
-    // private DeviceOffLineDetector offLineDetector;
-
     /**
      * 分页获取设备列表 TODO 现在直接返回,尚未实现分页
      * @param start

+ 0 - 5
zd-modules/zd-algorithm/src/main/java/com/zd/alg/iot/vmp/web/ApiStreamController.java

@@ -36,11 +36,6 @@ public class ApiStreamController {
     @Autowired
     private IRedisCatchStorage redisCatchStorage;
 
-
-    // @Autowired
-    // private ZLMRESTfulUtils zlmresTfulUtils;
-
-
     @Autowired
     private PlayController playController;
 

+ 2 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/monitor/HardwareDeviceMonitor.java

@@ -78,7 +78,8 @@ public class HardwareDeviceMonitor {
                             for (Map m : list) {
                                 String code = (String) m.get("relayCode");
                                 if (!map.containsKey(code)) {
-                                    map.put(code, "---信息[名称" + m.get("name") + ",所在学院:" + m.get("deptName") + ",所在实验室:" + m.get("subjectName") + "]\n");
+                                    map.put(code, "---信息[名称:" +
+                                            "" + m.get("name") + ",所在学院:" + m.get("deptName") + ",所在实验室:" + m.get("subjectName") + "]\n");
                                 }
                             }
                             //封装消息

+ 5 - 6
zd-modules/zd-algorithm/src/main/java/com/zd/alg/mqtt/MqttConfig.java

@@ -31,10 +31,7 @@ import org.springframework.messaging.MessageChannel;
 import org.springframework.messaging.MessageHandler;
 import org.springframework.messaging.MessagingException;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 /**
  * mqtt配置
@@ -132,7 +129,8 @@ public class MqttConfig {
     @Bean
     @ServiceActivator(inputChannel = MQTT_OUTBOUND_CHANNEL)
     public MessageHandler mqttOutbound() {
-        MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(producerClientId, mqttClientFactory());
+        int num = new Random().nextInt(998)+1;
+        MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(producerClientId+"_"+num, mqttClientFactory());
         messageHandler.setAsync(true);
         messageHandler.setDefaultTopic(defaultTopic);
         return messageHandler;
@@ -144,7 +142,8 @@ public class MqttConfig {
     @Bean
     public MessageProducer inbound() {
         // 可同时消费(订阅)多个Topic
-        adapter = new MqttPahoMessageDrivenChannelAdapter(consumerClientId, mqttClientFactory(), StringUtils.split(defaultTopic, ","));
+        int num = new Random().nextInt(98)+1;
+        adapter = new MqttPahoMessageDrivenChannelAdapter(consumerClientId+num, mqttClientFactory(), StringUtils.split(defaultTopic, ","));
         adapter.setCompletionTimeout(5000);
         adapter.setConverter(new DefaultPahoMessageConverter());
         adapter.setQos(2);

+ 9 - 44
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidClientImpl.java

@@ -35,6 +35,8 @@ public class RfidClientImpl implements IService {
     private static final Map<String, GClient> clientMap = new ConcurrentHashMap<>();
     private static final Map<String, GServer> serverMap = new ConcurrentHashMap<>();
     private static final ScheduledExecutorService scheduledExecutorService = SpringUtils.getBean("scheduledExecutorService");
+    private static final Integer cacheTime  = 30;
+    private static final Integer alarmTime  = 30;
     @Resource
     private RedisTemplate<String, HardwareRfid> redisTemplate;
     @Autowired
@@ -49,8 +51,11 @@ public class RfidClientImpl implements IService {
     @Override
     public void start(HardwareRfid hardwareRfid) {
         GServer server = new GServer();
-        int port = getPort(hardwareRfid.getIpAddress());
-        if (server.open(port)) {
+        if (hardwareRfid.getPort() == null) {
+            log.info("【RFID门禁机】端口号为空!");
+            return;
+        }
+        if (server.open(hardwareRfid.getPort())) {
             log.info("【RFID门禁机】开始监听");
             subscribeServerHandler(hardwareRfid, server);
         } else {
@@ -155,18 +160,14 @@ public class RfidClientImpl implements IService {
                     int antId = logBaseEpcInfo.getAntId();
                     String epc = logBaseEpcInfo.getEpc();
                     if (Boolean.FALSE.equals(redisTemplate.hasKey(logBaseEpcInfo.getEpc() + antId))) {
-                        log.info("打印进入日志!");
                         //不存在缓存,设置间隔30s调用
-                        redisTemplate.opsForValue().set(logBaseEpcInfo.getEpc() + antId, hardwareRfid, 30, TimeUnit.SECONDS);
-                        log.info("打印进入日志!1111111111111");
+                        redisTemplate.opsForValue().set(logBaseEpcInfo.getEpc() + antId, hardwareRfid, cacheTime, TimeUnit.SECONDS);
                         scheduledExecutorService.execute(() -> {
-                            log.info("打印日志发送前日志");
                             InventoryTag tag = new InventoryTag();
                             BeanUtils.copyProperties(logBaseEpcInfo, tag);
                             HardwareRfidDto hardwareRfidDto = new HardwareRfidDto();
                             BeanUtils.copyProperties(hardwareRfid, hardwareRfidDto);
                             tag.setHardwareRfidDto(hardwareRfidDto);
-                            log.info("调用发送方法!发送内容 tag = {}",tag.toString());
                             sendService.send(tag);
                         });
                     } else {
@@ -455,7 +456,7 @@ public class RfidClientImpl implements IService {
             GClient client = clientMap.get(hardwareNum);
             synchronized (this) {
                 //设置开始报警、报警时长
-                return changeGpo(client, 1, 30);
+                return changeGpo(client, 1, alarmTime);
             }
         }
         return false;
@@ -473,40 +474,4 @@ public class RfidClientImpl implements IService {
             }
         }, delayTime, TimeUnit.SECONDS);
     }
-
-    /**
-     * 去掉端口号,只获取ip
-     */
-    private static String getIp(HardwareRfid hardwareRfid) {
-        String ipAddress;
-        if (Objects.isNull(hardwareRfid) || StringUtils.isBlank(hardwareRfid.getIpAddress())) {
-            log.error("RFID配置ip为空!");
-        }
-        String[] ipPort = hardwareRfid.getIpAddress().split(":");
-        if (ipPort.length > 1) {
-            ipAddress = ipPort[0];
-        } else {
-            ipAddress = hardwareRfid.getIpAddress();
-        }
-        return ipAddress;
-    }
-
-    /**
-     * 获取端口号 未配置端口号默认给到8160
-     *
-     * @Param [ipPort]
-     * @Return int
-     **/
-    private static int getPort(String ipPort) {
-        //默认给到8160
-        int port = 8160;
-        if (null == ipPort || "".equals(ipPort)) {
-            return port;
-        }
-        String[] split = ipPort.split(":");
-        if (split.length > 1) {
-            port = Integer.valueOf(split[1]);
-        }
-        return port;
-    }
 }

+ 42 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/service/impl/HardwareRfidServiceImpl.java

@@ -13,6 +13,8 @@ import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.BeanUtils;
 import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.SpringUtils;
+import com.zd.laboratory.api.feign.RemoteLaboratoryService;
+import com.zd.model.constant.HttpStatus;
 import com.zd.model.domain.ResultData;
 import com.zd.model.enums.DeviceOnOffEnum;
 import com.zd.model.enums.DeviceStatusEnum;
@@ -22,6 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -36,6 +39,9 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private RemoteLaboratoryService remoteLaboratoryService;
+
     @Override
     public int batchInsert(List<HardwareRfid> list) {
         return baseMapper.batchInsert(list);
@@ -43,9 +49,15 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
 
     @Override
     public ResultData saveHardwareRfid(HardwareRfid hardwareRfid) {
+        if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getDeviceName, hardwareRfid.getDeviceName())) > 0) {
+            return ResultData.fail("设备名称已存在!");
+        }
         if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getHardwareNum, hardwareRfid.getHardwareNum())) > 0) {
             return ResultData.fail("设备编码已存在!");
         }
+        if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getPort, hardwareRfid.getPort())) > 0) {
+            return ResultData.fail("端口号已存在!");
+        }
         tokenService.getLoginUser().getSysUser();
         hardwareRfid.setCreateBy(SecurityUtils.getUsername());
         hardwareRfid.setUserId(SecurityUtils.getUserId());
@@ -57,9 +69,15 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
         if (hardwareRfid.getId() == null) {
             return ResultData.fail("设备id不存在!");
         }
+        if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getDeviceName, hardwareRfid.getDeviceName()).ne(HardwareRfid::getId, hardwareRfid.getId())) > 0) {
+            return ResultData.fail("设备名称已存在!");
+        }
         if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getHardwareNum, hardwareRfid.getHardwareNum()).ne(HardwareRfid::getId, hardwareRfid.getId())) > 0) {
             return ResultData.fail("设备编码已存在!");
         }
+        if (baseMapper.selectCount(new LambdaQueryWrapper<HardwareRfid>().eq(HardwareRfid::getPort, hardwareRfid.getPort()).ne(HardwareRfid::getId, hardwareRfid.getId())) > 0) {
+            return ResultData.fail("端口号已存在!");
+        }
         hardwareRfid.setUpdateBy(SecurityUtils.getUsername());
         return ResultData.result(baseMapper.updateById(hardwareRfid));
     }
@@ -71,7 +89,30 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
         }
         HardwareRfid hardwareRfid = new HardwareRfid();
         BeanUtils.copyProperties(hardwareRfidVo, hardwareRfid);
-        return baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
+        Page<HardwareRfid> hardwareRfidPage = baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
+        List<HardwareRfid> records = hardwareRfidPage.getRecords();
+        try {
+            StringBuffer sb = new StringBuffer();
+            for (HardwareRfid record : records) {
+                if (sb.indexOf(String.valueOf(record.getSubjectId())) < 0) {
+                    sb.append(record.getSubjectId()).append(",");
+                }
+            }
+            String substring = sb.substring(0, sb.length() - 1);
+            ResultData positionBySubId = remoteLaboratoryService.getPositionBySubId(substring);
+            if (positionBySubId != null && positionBySubId.getCode().equals(HttpStatus.SUCCESS)) {
+                for (HardwareRfid rfid : records) {
+                    Map<Long, Map<String, Object>> data = (Map<Long, Map<String, Object>>) positionBySubId.getData();
+                    Map<String, Object> stringObjectMap = data.get(String.valueOf(rfid.getSubjectId()));
+                    rfid.setDeptName((String) stringObjectMap.get("deptName"));
+                    rfid.setPosition((String) stringObjectMap.get("position"));
+                }
+            }
+        } catch (Exception e) {
+            log.error("远程调用查询实验室位置异常!{}", e);
+        } finally {
+            return hardwareRfidPage;
+        }
     }
 
     @Override

+ 31 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/controller/SpeakerController.java

@@ -200,8 +200,10 @@ public class SpeakerController {
     }
 
 
-    /***
-     * 文字转语音播放
+    /**
+     * 语音播放
+     * @param text 播放音乐路径
+     * @param playVo 播放实体
      * @return
      */
     @PostMapping("/textParseUrlAppIps")
@@ -211,8 +213,32 @@ public class SpeakerController {
             return AjaxResult.error("参数有误,请检查参数!");
         }
         text=text.replace("https","http");
-        text=text.replace("http://lab.sxitdlc.com/sudalabSystem/","http://10.20.10.7/labSystem/");
-        iSpeakerService.textParseVoiceAppIps(text,playVo);
+        text=text.replace("http://znyj.labcenter.suda.edu.cn/labSystem","http://10.20.10.7/labSystem/");
+        iSpeakerService.textParseVoiceAppIps(text,playVo,1,10000);
+        Map<String,Object> map=new HashMap<>();
+        map.put("text",text);
+        String date=DateUtils.parseDateToStr("HH:MM",new Date());
+        map.put("date",date);
+        return AjaxResult.success(map);
+    }
+
+
+    /**
+     * 语音播放
+     * @param text 播放音乐路径
+     * @param playVo 播放实体
+     * @param playNum 播放次数
+     * @return
+     */
+    @PostMapping("/textMoreParseUrlAppIps")
+    @ApiOperation(value = "文字转语音小程序播放地址", notes = "文字转语音小程序播放地址")
+    public AjaxResult textParseUrlAppIps(@RequestParam(required = true) String text,@RequestBody List<PlayVo> playVo,Integer playNum) {
+        if(StringUtils.isEmpty(text) || playVo.size()==0){
+            return AjaxResult.error("参数有误,请检查参数!");
+        }
+        text=text.replace("https","http");
+        text=text.replace("http://znyj.labcenter.suda.edu.cn/labSystem","http://10.20.10.7/labSystem/");
+        iSpeakerService.textParseVoiceAppIps(text,playVo,playNum,0);
         Map<String,Object> map=new HashMap<>();
         map.put("text",text);
         String date=DateUtils.parseDateToStr("HH:MM",new Date());
@@ -220,6 +246,7 @@ public class SpeakerController {
         return AjaxResult.success(map);
     }
 
+
     /**
      * 停止播放
      * @param sn

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/ISpeakerService.java

@@ -90,7 +90,7 @@ public interface ISpeakerService {
      * @param playVo
      * @return
      */
-    void textParseVoiceAppIps(String texts, List<PlayVo> playVo);
+    void textParseVoiceAppIps(String texts, List<PlayVo> playVo,Integer playNum,Integer level);
 
     /**
      * 文字转硬盘播放

+ 52 - 28
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/impl/SpeakerServiceImpl.java

@@ -174,27 +174,22 @@ public class SpeakerServiceImpl implements ISpeakerService {
     }
 
     @Override
-    public void textParseVoiceAppIps(String texts,List<PlayVo> playVoList) {
-        if (playVoList.size() == 1) {
-            commonTextUrlVoice(texts, playVoList);
-        } else {
-            PlayBatchVo playBatchVo = new PlayBatchVo();
-            BeanUtils.copyProperties(playVoList.get(0), playBatchVo);
-            List<UrlVo> urlVoList = getUrlList(texts);
-            if (null != playBatchVo.getParams()) {
-                playBatchVo.getParams().setTid(UUID.randomUUID().toString());
-                playBatchVo.getParams().setUrls(urlVoList);
-            }
-            List<String> snsList = new ArrayList<>();
-            for (PlayVo playVo : playVoList) {
-                snsList.add(playVo.getSn());
-            }
-            String deviceIp =playVoList.get(0).getDeviceIp();
-            playBatchVo.setSns(snsList.toArray(new String[snsList.size()]));
-            boolean isTrue = invokePost(JSONObject.toJSON(playBatchVo).toString(), deviceIp,1, playVoList.get(0).getPort());
-            if (isTrue) {
-                textParseVoiceAppIps(texts,playVoList);
-            }
+    public void textParseVoiceAppIps(String texts,List<PlayVo> playVoList,Integer playNum,Integer level) {
+//        if (playVoList.size() == 1) {
+//            commonTextUrlVoice(texts, playVoList,playNum,level);
+//        } else {
+//            String deviceIp =playVoList.get(0).getDeviceIp();
+//            PlayBatchVo playBatchVo=commonPatchTextUrlVoice(texts,playVoList,playNum,level);
+//            boolean isTrue = invokePost(JSONObject.toJSON(playBatchVo).toString(), deviceIp,1, playVoList.get(0).getPort());
+//            if (isTrue) {
+//                textParseVoiceAppIps(texts,playVoList,playNum,level);
+//            }
+//        }
+        String deviceIp =playVoList.get(0).getDeviceIp();
+        PlayBatchVo playBatchVo=commonPatchTextUrlVoice(texts,playVoList,playNum,level);
+        boolean isTrue = invokePost(JSONObject.toJSON(playBatchVo).toString(), deviceIp,1, playVoList.get(0).getPort());
+        if (isTrue) {
+            textParseVoiceAppIps(texts,playVoList,playNum,level);
         }
     }
 
@@ -211,7 +206,7 @@ public class SpeakerServiceImpl implements ISpeakerService {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("sn", sn);
         jsonObject.put("type", "req");
-        jsonObject.put("name", "songs_queue_clear");
+        jsonObject.put("name", "priority_task_stop");
         String responseStr = okHttpRequest.doPostJson(remoteUrlIp, token, jsonObject.toString());
         logger.info("responseStr:+++++++++++++++++++++++++++" + responseStr + "+++++++++++++++++++++++++");
         return tokenRefresh(responseStr);
@@ -231,10 +226,12 @@ public class SpeakerServiceImpl implements ISpeakerService {
         return false;
     }
 
-    private List<UrlVo> getUrlList(String texts) {
+    private List<UrlVo> getUrlList(String texts,Integer playNum) {
         List<UrlVo> urlVoList = new ArrayList<>();
-        UrlVo urlVo = new UrlVo(texts.substring(0, 1), texts);
-        urlVoList.add(urlVo);
+        for(int i=0;i<playNum;i++){
+            UrlVo urlVo = new UrlVo(texts.substring(0, 1), texts);
+            urlVoList.add(urlVo);
+        }
         return urlVoList;
     }
 
@@ -275,22 +272,49 @@ public class SpeakerServiceImpl implements ISpeakerService {
      * @param texts
      * @param playVoList
      */
-    private void commonTextUrlVoice(String texts,List<PlayVo> playVoList) {
+    private void commonTextUrlVoice(String texts,List<PlayVo> playVoList,Integer playNum,Integer level) {
         for (PlayVo play : playVoList) {
             String deviceIp=play.getDeviceIp();
-            List<UrlVo> urlVoList = getUrlList(texts);
+            List<UrlVo> urlVoList = getUrlList(texts,playNum);
             if (null != play.getParams()) {
                 play.getParams().setTid(UUID.randomUUID().toString());
                 play.getParams().setUrls(urlVoList);
             }
             boolean isTrue = invokePost(JSONObject.toJSON(play).toString(),deviceIp, 0, play.getPort());
             if (isTrue) {
-                commonTextParseVoice(texts,playVoList);
+                commonTextUrlVoice(texts,playVoList,playNum,level);
                 break;
             }
         }
     }
 
+
+    /**
+     * 公共的语音路径播放
+     * commonTextUrlVoice
+     * @param texts
+     * @param playVoList
+     */
+    private PlayBatchVo commonPatchTextUrlVoice(String texts,List<PlayVo> playVoList,Integer playNum,Integer level) {
+        PlayBatchVo playBatchVo = new PlayBatchVo();
+        BeanUtils.copyProperties(playVoList.get(0), playBatchVo);
+        List<UrlVo> urlVoList = getUrlList(texts,playNum);
+        if (null != playBatchVo.getParams()) {
+            playBatchVo.getParams().setTid(UUID.randomUUID().toString());
+            playBatchVo.getParams().setUrls(urlVoList);
+            playBatchVo.getParams().setUid(UUID.randomUUID().toString());
+        }
+        List<String> snsList = new ArrayList<>();
+        List<String> reqList = new ArrayList<>();
+        for (PlayVo playVo : playVoList) {
+            snsList.add(playVo.getSn());
+            reqList.add("req");
+        }
+        playBatchVo.setSns(snsList.toArray(new String[snsList.size()]));
+        playBatchVo.setType(reqList.toArray(new String[reqList.size()]));
+        return playBatchVo;
+    }
+
     /**
      * @param body
      * @param type 0是单个,1是批量

+ 3 - 4
zd-modules/zd-algorithm/src/main/resources/mapper/fire/FireDeviceMapper.xml

@@ -36,12 +36,11 @@
                fd.create_by,
                fd.create_time,
                ls.name      subjectName,
-               lsl.room,
-               sd.dept_name buildName
+               fl.room_num room,
+               ( select bf.`name` from lab_build_floor bf where bf.type=2 and bf.id=fl.build_id ) buildName
         from hardware_fire_device fd
                  LEFT JOIN lab_subject ls on fd.subject_id = ls.id
-                 LEFT JOIN lab_subject_layout lsl on lsl.floor_id = ls.layout_id and ls.id = fd.subject_id
-                 LEFT JOIN sys_dept sd on ls.build_id = sd.dept_id and ls.id = fd.subject_id
+                 LEFT JOIN lab_build_floor_layout fl on fl.sub_id=fd.subject_id
     </sql>
 
     <select id="selectHardwareFireDeviceList" parameterType="com.zd.algorithm.api.fire.entity.vo.HardwareFireDeviceVO"