فهرست منبع

stream ice info set to cctv, wcam, scrs cmra

HANTE 3 ماه پیش
والد
کامیت
24d30b065a

+ 24 - 0
src/main/java/com/its/op/dto/its/cctv/TbCctvMonitoringDto.java

@@ -84,6 +84,30 @@ public class TbCctvMonitoringDto implements Serializable {
     @JsonProperty("rtc_id")
     private String rtcId;
 
+    @ApiModelProperty("WEB ICE SVR")    // "turn:121.133.189.200:3478"
+    @JsonProperty("web_ice_svr")
+    private String webIceSvr;
+
+    @ApiModelProperty("WEB ICE ID")
+    @JsonProperty("web_ice_id")
+    private String webIceId;
+
+    @ApiModelProperty("WEB ICE PSWD")
+    @JsonProperty("web_ice_pswd")
+    private String webIcePswd;
+
+    @ApiModelProperty("LOCAL ICE SVR")  // "turn:121.133.189.200:3478"
+    @JsonProperty("local_ice_svr")
+    private String localIceSvr;
+
+    @ApiModelProperty("LOCAL ICE ID")
+    @JsonProperty("local_ice_id")
+    private String localIceId;
+
+    @ApiModelProperty("LOCAL ICE PSWD")
+    @JsonProperty("local_ice_pswd")
+    private String localIcePswd;
+
     @ApiModel("TbCctvMonitoringUpdReq(웹카메라 모니터링 화면 정보변경)")
     @Getter
     @Setter

+ 24 - 0
src/main/java/com/its/op/dto/its/scrs/TbScIxrCmraMngmDto.java

@@ -140,6 +140,30 @@ public class TbScIxrCmraMngmDto implements Serializable {
     @JsonProperty("cmnc_stts_desc")    // CMNC_STTS_CD
     private String cmncSttsDesc;
 
+    @ApiModelProperty("WEB ICE SVR")    // "turn:121.133.189.200:3478"
+    @JsonProperty("web_ice_svr")
+    private String webIceSvr;
+
+    @ApiModelProperty("WEB ICE ID")
+    @JsonProperty("web_ice_id")
+    private String webIceId;
+
+    @ApiModelProperty("WEB ICE PSWD")
+    @JsonProperty("web_ice_pswd")
+    private String webIcePswd;
+
+    @ApiModelProperty("LOCAL ICE SVR")  // "turn:121.133.189.200:3478"
+    @JsonProperty("local_ice_svr")
+    private String localIceSvr;
+
+    @ApiModelProperty("LOCAL ICE ID")
+    @JsonProperty("local_ice_id")
+    private String localIceId;
+
+    @ApiModelProperty("LOCAL ICE PSWD")
+    @JsonProperty("local_ice_pswd")
+    private String localIcePswd;
+
     @ApiModel("TbScIxrCmraMngmUpdReq(카메라 관리 정보변경)")
     @Getter
     @Setter

+ 24 - 0
src/main/java/com/its/op/dto/its/wcam/TbWcamMonitoringDto.java

@@ -73,6 +73,30 @@ public class TbWcamMonitoringDto implements Serializable {
     @JsonProperty("rtc_id")
     private String rtcId;
 
+    @ApiModelProperty("WEB ICE SVR")    // "turn:121.133.189.200:3478"
+    @JsonProperty("web_ice_svr")
+    private String webIceSvr;
+
+    @ApiModelProperty("WEB ICE ID")
+    @JsonProperty("web_ice_id")
+    private String webIceId;
+
+    @ApiModelProperty("WEB ICE PSWD")
+    @JsonProperty("web_ice_pswd")
+    private String webIcePswd;
+
+    @ApiModelProperty("LOCAL ICE SVR")  // "turn:121.133.189.200:3478"
+    @JsonProperty("local_ice_svr")
+    private String localIceSvr;
+
+    @ApiModelProperty("LOCAL ICE ID")
+    @JsonProperty("local_ice_id")
+    private String localIceId;
+
+    @ApiModelProperty("LOCAL ICE PSWD")
+    @JsonProperty("local_ice_pswd")
+    private String localIcePswd;
+
     // Code Description Field
     @ApiModel("TbWcamMonitoringUpdReq(웹카메라 모니터링 화면 정보변경)")
     @Getter

+ 40 - 4
src/main/java/com/its/op/service/its/cctv/TbCctvMonitoringService.java

@@ -1,12 +1,14 @@
 package com.its.op.service.its.cctv;
 
 import com.its.op.dao.repository.its.cctv.TbCctvMonitoringRepository;
+import com.its.op.dao.repository.its.database.TbStrmIceSvrInfoRepository;
 import com.its.op.dto.its.cctv.TbCctvCtlrDto;
 import com.its.op.dto.its.cctv.TbCctvMonitoringDto;
 import com.its.op.dto.its.common.MonitoringInfoDto;
 import com.its.op.dto.its.common.MonitoringListDto;
 import com.its.op.dto.its.common.MonitoringListInf;
 import com.its.op.entity.its.cctv.TbCctvMonitoring;
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -14,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @RequiredArgsConstructor
@@ -22,6 +26,38 @@ public class TbCctvMonitoringService {
 
     private final TbCctvMonitoringRepository repo;
     private final TbCctvCtlrService ctlrService;
+    private final TbStrmIceSvrInfoRepository strmIceSvrInfoRepo;
+
+    private List<TbCctvMonitoringDto> findStrmIceSvrInfo(List<TbCctvMonitoringDto> result) {
+
+        List<TbStrmIceSvrInfo> iceSvrList = strmIceSvrInfoRepo.findAll();
+        Map<String, TbStrmIceSvrInfo> map = iceSvrList.stream()
+                .collect(Collectors.toMap(TbStrmIceSvrInfo::getSvrId, dto -> dto));
+
+        result.forEach(obj -> {
+            TbStrmIceSvrInfo webIceSvr = map.get(obj.getWebRtcSvrIp());
+            if (webIceSvr != null) {
+                obj.setWebIceSvr(webIceSvr.getSvrProt() + ":" + webIceSvr.getSvrIp() + ":" + webIceSvr.getSvrPort());
+                obj.setWebIceId(webIceSvr.getSvrId());
+                obj.setWebIcePswd(webIceSvr.getSvrPswd());
+            } else {
+                obj.setWebIceSvr("");
+                obj.setWebIceId("");
+                obj.setWebIcePswd("");
+            }
+            TbStrmIceSvrInfo localIceSvr = map.get(obj.getRtcSvrIp());
+            if (localIceSvr != null) {
+                obj.setLocalIceSvr(localIceSvr.getSvrProt() + ":" + localIceSvr.getSvrIp() + ":" + localIceSvr.getSvrPort());
+                obj.setLocalIceId(localIceSvr.getSvrId());
+                obj.setLocalIcePswd(localIceSvr.getSvrPswd());
+            } else {
+                obj.setLocalIceSvr("");
+                obj.setLocalIceId("");
+                obj.setLocalIcePswd("");
+            }
+        });
+        return result;
+    }
 
     // 전체 데이터 조회
     @Transactional(readOnly = true)
@@ -31,7 +67,7 @@ public class TbCctvMonitoringService {
         for (TbCctvMonitoring entity : data) {
             result.add(entity.toDto());
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
     // 모니터링 유형에 속한 모든 데이터 조회
     @Transactional(readOnly = true)
@@ -43,7 +79,7 @@ public class TbCctvMonitoringService {
                 result.add(obj.toDto());
             });
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     // 모니터링 이름으로 모니터링목록 조회
@@ -58,7 +94,7 @@ public class TbCctvMonitoringService {
                 result.add(obj.toDto());
             });
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
@@ -94,7 +130,7 @@ public class TbCctvMonitoringService {
         if (result != null) {
             this.repo.deleteByName(monitoringType, name.trim());
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     /**

+ 36 - 1
src/main/java/com/its/op/service/its/scrs/TbScIxrCmraMngmService.java

@@ -1,6 +1,7 @@
 package com.its.op.service.its.scrs;
 
 import com.its.op.dao.mapper.its.scrs.ScTfvlStatisticsMapper;
+import com.its.op.dao.repository.its.database.TbStrmIceSvrInfoRepository;
 import com.its.op.dao.repository.its.scrs.TbScIxrCmraMngmRepository;
 import com.its.op.dto.its.common.FcltSttsDto;
 import com.its.op.dto.its.common.FcltSttsListDto;
@@ -9,6 +10,7 @@ import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
 import com.its.op.dto.its.scrs.ScIxrCmraTfvlDto;
 import com.its.op.dto.its.scrs.TbScIxrCmraMngmDto;
 import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
 import com.its.op.entity.its.scrs.TbScIxrCmraMngm;
 import com.its.op.entity.its.scrs.TbScIxrCmraMngmKey;
 import com.its.op.global.CmmnCdManager;
@@ -33,8 +35,40 @@ public class TbScIxrCmraMngmService {
     private final TbScIxrCmraMngmRepository repo;
     private final TbScIxrCmraManager manager;
     private final ScTfvlStatisticsMapper tfvlMapper;
+    private final TbStrmIceSvrInfoRepository strmIceSvrInfoRepo;
     private final String fcltType = "CCAM";
 
+    private List<TbScIxrCmraMngmDto> findStrmIceSvrInfo(List<TbScIxrCmraMngmDto> result) {
+
+        List<TbStrmIceSvrInfo> iceSvrList = strmIceSvrInfoRepo.findAll();
+        Map<String, TbStrmIceSvrInfo> map = iceSvrList.stream()
+                .collect(Collectors.toMap(TbStrmIceSvrInfo::getSvrId, dto -> dto));
+
+        result.forEach(obj -> {
+            TbStrmIceSvrInfo webIceSvr = map.get(obj.getWebRtcSvrIp());
+            if (webIceSvr != null) {
+                obj.setWebIceSvr(webIceSvr.getSvrProt() + ":" + webIceSvr.getSvrIp() + ":" + webIceSvr.getSvrPort());
+                obj.setWebIceId(webIceSvr.getSvrId());
+                obj.setWebIcePswd(webIceSvr.getSvrPswd());
+            } else {
+                obj.setWebIceSvr("");
+                obj.setWebIceId("");
+                obj.setWebIcePswd("");
+            }
+            TbStrmIceSvrInfo localIceSvr = map.get(obj.getRtcSvrIp());
+            if (localIceSvr != null) {
+                obj.setLocalIceSvr(localIceSvr.getSvrProt() + ":" + localIceSvr.getSvrIp() + ":" + localIceSvr.getSvrPort());
+                obj.setLocalIceId(localIceSvr.getSvrId());
+                obj.setLocalIcePswd(localIceSvr.getSvrPswd());
+            } else {
+                obj.setLocalIceSvr("");
+                obj.setLocalIceId("");
+                obj.setLocalIcePswd("");
+            }
+        });
+        return result;
+    }
+
     // 데이터 1건 조회, 없으면 exception
     private TbScIxrCmraMngm requireOne(TbScIxrCmraMngmKey ixrId) throws NoSuchElementException {
         Optional<TbScIxrCmraMngm> info = this.repo.findById(ixrId);
@@ -242,7 +276,8 @@ public class TbScIxrCmraMngmService {
         data.forEach(obj -> {
             result.add(obj.toDto());
         });
-        return result;
+
+        return findStrmIceSvrInfo(result);
     }
 
     /**

+ 41 - 5
src/main/java/com/its/op/service/its/wcam/TbWcamMonitoringService.java

@@ -1,11 +1,13 @@
 package com.its.op.service.its.wcam;
 
+import com.its.op.dao.repository.its.database.TbStrmIceSvrInfoRepository;
 import com.its.op.dao.repository.its.wcam.TbWcamMonitoringRepository;
 import com.its.op.dto.its.common.MonitoringInfoDto;
 import com.its.op.dto.its.common.MonitoringListDto;
 import com.its.op.dto.its.common.MonitoringListInf;
 import com.its.op.dto.its.wcam.TbWcamCtlrDto;
 import com.its.op.dto.its.wcam.TbWcamMonitoringDto;
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
 import com.its.op.entity.its.wcam.TbWcamMonitoring;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -14,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @RequiredArgsConstructor
@@ -22,6 +26,38 @@ public class TbWcamMonitoringService {
 
     private final TbWcamMonitoringRepository repo;
     private final TbWcamCtlrService ctlrService;
+    private final TbStrmIceSvrInfoRepository strmIceSvrInfoRepo;
+
+    private List<TbWcamMonitoringDto> findStrmIceSvrInfo(List<TbWcamMonitoringDto> result) {
+
+        List<TbStrmIceSvrInfo> iceSvrList = strmIceSvrInfoRepo.findAll();
+        Map<String, TbStrmIceSvrInfo> map = iceSvrList.stream()
+                .collect(Collectors.toMap(TbStrmIceSvrInfo::getSvrId, dto -> dto));
+
+        result.forEach(obj -> {
+            TbStrmIceSvrInfo webIceSvr = map.get(obj.getWebRtcSvrIp());
+            if (webIceSvr != null) {
+                obj.setWebIceSvr(webIceSvr.getSvrProt() + ":" + webIceSvr.getSvrIp() + ":" + webIceSvr.getSvrPort());
+                obj.setWebIceId(webIceSvr.getSvrId());
+                obj.setWebIcePswd(webIceSvr.getSvrPswd());
+            } else {
+                obj.setWebIceSvr("");
+                obj.setWebIceId("");
+                obj.setWebIcePswd("");
+            }
+            TbStrmIceSvrInfo localIceSvr = map.get(obj.getRtcSvrIp());
+            if (localIceSvr != null) {
+                obj.setLocalIceSvr(localIceSvr.getSvrProt() + ":" + localIceSvr.getSvrIp() + ":" + localIceSvr.getSvrPort());
+                obj.setLocalIceId(localIceSvr.getSvrId());
+                obj.setLocalIcePswd(localIceSvr.getSvrPswd());
+            } else {
+                obj.setLocalIceSvr("");
+                obj.setLocalIceId("");
+                obj.setLocalIcePswd("");
+            }
+        });
+        return findStrmIceSvrInfo(result);
+    }
 
     // 전체 데이터 조회
     @Transactional(readOnly = true)
@@ -31,7 +67,7 @@ public class TbWcamMonitoringService {
         for (TbWcamMonitoring entity : data) {
             result.add(entity.toDto());
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     // 전체 데이터 조회
@@ -42,7 +78,7 @@ public class TbWcamMonitoringService {
         for (TbWcamMonitoring entity : data) {
             result.add(entity.toDto());
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
     // 모니터링 유형에 속한 모든 데이터 조회
     @Transactional(readOnly = true)
@@ -54,7 +90,7 @@ public class TbWcamMonitoringService {
                 result.add(obj.toDto());
             });
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     // 모니터링 이름으로 모니터링목록 조회
@@ -69,7 +105,7 @@ public class TbWcamMonitoringService {
                 result.add(obj.toDto());
             });
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
@@ -105,7 +141,7 @@ public class TbWcamMonitoringService {
         if (result != null) {
             this.repo.deleteByName(monitoringType, name.trim());
         }
-        return result;
+        return findStrmIceSvrInfo(result);
     }
 
     /**