From 3b5a487f187138ee67e83752d9a67d2bb9058f36 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 29 一月 2026 20:40:31 +0800
Subject: [PATCH] 出入库增加云端视频播放
---
/dev/null | 86 -----------------
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java | 51 +++++-----
fzzy-igdss-web/src/main/resources/static/common/constant.js | 1
fzzy-igdss-web/src/main/resources/static/inout/video-play.js | 27 ++++
fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java | 18 +++
fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java | 40 ++++++++
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java | 2
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java | 55 +++++------
8 files changed, 134 insertions(+), 146 deletions(-)
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
index 0298a93..e91cee9 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
@@ -50,7 +50,7 @@
@ResponseBody
public ApiV1Resp<Object> gateway(@RequestBody ApiV1Req<Object> req) {
- log.debug("璐ㄦ娂鐩戠鎺ュ彛V1锛屾敹鍒板簱鍖虹綉鍏充俊鎭�={}", req);
+ log.debug("璐ㄦ娂鐩戠鎺ュ彛V1锛屾敹鍒板簱鍖虹綉鍏充俊鎭�={}", req.getFunctionId());
try {
//鍙傛暟鏍¢獙
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
index 44c5efc..772030b 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
@@ -14,6 +14,7 @@
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
+
import javax.annotation.Resource;
import java.util.List;
@@ -32,54 +33,52 @@
private FileService fileService;
/**
- *
* @param req
* @param gatewaySer
* @return
*/
- public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception{
+ public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception {
//杞寲涓哄璞�
- List<Param3030> list = JSONObject.parseArray(JSONObject.toJSONString(req.getData()), Param3030.class);
+ Param3030 param = JSONObject.parseObject(JSONObject.toJSONString(req.getData()), Param3030.class);
- if(null == list || list.isEmpty()){
+ if (null == param) {
return ApiV1Resp.error("鎶撴媿淇℃伅涓虹┖锛屼笉瑙f瀽锛�", req);
}
- step1(list, gatewaySer);
+ step1(param, gatewaySer);
return ApiV1Resp.success(null, req);
}
/**
* 寮傛瑙f瀽
- * @param list
+ *
+ * @param param3030
*/
@Async
- public void step1(List<Param3030> list, GatewaySer gatewaySer) throws Exception {
+ public void step1(Param3030 param3030, GatewaySer gatewaySer) throws Exception {
- SnapRecord snapRecord;
- for (Param3030 param3030 : list) {
- snapRecord = new SnapRecord();
- snapRecord.setId(ContextUtil.generateId());
- snapRecord.setCompanyId(gatewaySer.getCompanyId());
- snapRecord.setDeptId(gatewaySer.getDeptId());
- snapRecord.setCameraId(param3030.getCameraId());
- snapRecord.setResult(param3030.getResult());
- snapRecord.setTags(param3030.getTags());
- snapRecord.setSnapTime(DateUtils.parseDate(param3030.getSnapTime(),"yyyy-MM-dd HH:mm:ss"));
+ SnapRecord snapRecord = new SnapRecord();
+ snapRecord.setId(ContextUtil.generateId());
+ snapRecord.setCompanyId(gatewaySer.getCompanyId());
+ snapRecord.setDeptId(gatewaySer.getDeptId());
+ snapRecord.setCameraId(param3030.getCameraId());
+ snapRecord.setResult(param3030.getResult());
+ snapRecord.setTags(param3030.getTags());
+ snapRecord.setSnapTime(DateUtils.parseDate(param3030.getSnapTime(), "yyyy-MM-dd HH:mm:ss"));
- //base64杞寲涓哄浘鐗囦繚瀛�
- String savePath = fileService.getFileSavePath("SNAP");
- String fileName = ContextUtil.UUID() + ".jpg";
- String filePath = savePath+fileName;
- fileService.baseImg2Disk(filePath, param3030.getImgBase64());
+ //base64杞寲涓哄浘鐗囦繚瀛�
+ String savePath = fileService.getFileSavePath("SNAP");
+ String fileName = ContextUtil.UUID() + ".jpg";
+ String filePath = savePath + fileName;
+ fileService.baseImg2Disk(filePath, param3030.getImgBase64());
- //璁剧疆淇濆瓨鍥剧墖璺緞
- snapRecord.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
+ //璁剧疆淇濆瓨鍥剧墖璺緞
+ snapRecord.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
- snapRecordService.addData(snapRecord);
- }
+ snapRecordService.addData(snapRecord);
+
log.info("璐ㄦ娂鐩戠鎺ュ彛V1锛�3030鎺ュ彛瑙f瀽瀹屾垚");
}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
index 3a91c3f..f67ce14 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
@@ -33,7 +33,6 @@
private FileService fileService;
/**
- *
* @param req
* @param gatewaySer
* @return
@@ -41,13 +40,13 @@
public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception {
//杞寲涓哄璞�
- List<Param3031> list = JSONObject.parseArray(JSONObject.toJSONString(req.getData()), Param3031.class);
+ Param3031 param = JSONObject.parseObject(JSONObject.toJSONString(req.getData()), Param3031.class);
- if (null == list || list.isEmpty()) {
+ if (null == param) {
return ApiV1Resp.error("鎶撴媿淇℃伅涓虹┖锛屼笉瑙f瀽锛�", req);
}
- step1(list, gatewaySer);
+ step1(param, gatewaySer);
return ApiV1Resp.success(null, req);
@@ -56,38 +55,34 @@
/**
* 寮傛瑙f瀽
*
- * @param list
+ * @param param
*/
@Async
- public void step1(List<Param3031> list, GatewaySer gatewaySer) throws Exception {
+ public void step1(Param3031 param, GatewaySer gatewaySer) throws Exception {
- EventInfo info;
- for (Param3031 param : list) {
+ EventInfo info = new EventInfo();
+ info.setId(ContextUtil.generateId());
+ info.setCompanyId(gatewaySer.getCompanyId());
+ info.setDeptId(gatewaySer.getDeptId());
+ info.setSerId(param.getCameraId());
+ info.setName(param.getName());
+ info.setBizType(param.getBizType());
+ info.setType(param.getType());
+ info.setLevel(param.getLevel());
+ info.setInfo(param.getInfo());
+ info.setTime(DateUtils.parseDate(param.getTime(), "yyyy-MM-dd HH:mm:ss"));
+ info.setTags(param.getTags());
- info = new EventInfo();
- info.setId(ContextUtil.generateId());
- info.setCompanyId(gatewaySer.getCompanyId());
- info.setDeptId(gatewaySer.getDeptId());
- info.setSerId(param.getCameraId());
- info.setName(param.getName());
- info.setBizType(param.getBizType());
- info.setType(param.getType());
- info.setLevel(param.getLevel());
- info.setInfo(param.getInfo());
- info.setTime(DateUtils.parseDate(param.getTime(), "yyyy-MM-dd HH:mm:ss"));
- info.setTags(param.getTags());
+ //base64杞寲涓哄浘鐗囦繚瀛�
+ String savePath = fileService.getFileSavePath("EVENT");
+ String fileName = ContextUtil.UUID() + ".jpg";
+ String filePath = savePath + fileName;
+ fileService.baseImg2Disk(filePath, param.getImgBase64());
- //base64杞寲涓哄浘鐗囦繚瀛�
- String savePath = fileService.getFileSavePath("EVENT");
- String fileName = ContextUtil.UUID() + ".jpg";
- String filePath = savePath + fileName;
- fileService.baseImg2Disk(filePath, param.getImgBase64());
+ //璁剧疆淇濆瓨鍥剧墖璺緞
+ info.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
- //璁剧疆淇濆瓨鍥剧墖璺緞
- info.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
-
- eventInfoService.addData(info);
- }
+ eventInfoService.addData(info);
log.info("璐ㄦ娂鐩戠鎺ュ彛V1锛�3031鎺ュ彛瑙f瀽瀹屾垚");
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java
deleted file mode 100644
index 2b8aeba..0000000
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.fzzy.inout;
-
-import com.fzzy.igds.camera.data.ApiCameraResp;
-import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.*;
-import com.fzzy.igds.utils.SystemUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-
-
-/**
- * @Description 鍑哄叆搴撹澶囩浉鍏冲姛鑳�
- * @Author CZT
- * @Date 2025/12/4 9:27
- */
-@RestController
-@RequestMapping("inout/api")
-public class InoutApiController {
-
- /**
- * 鑾峰彇杞︾墝璇嗗埆淇℃伅
- *
- * @param param 杞︾墝璇嗗埆鏁版嵁淇℃伅
- * @return
- */
- @ResponseBody
- @RequestMapping("/get-plateNum")
- public PageResponse<ApiInoutData> getPlateNum(@RequestBody ApiInoutData param) {
-
- if (null == param.getIp()) {
- return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍑哄叆搴撻厤缃腑娌℃湁閰嶇疆濡傚叆鐧昏鐨勮溅鐗岃瘑鍒�");
- }
-
- if (StringUtils.isEmpty(param.getProtocol())) {
- return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "褰撳墠杞︾墝璇嗗埆鏈厤缃�氳鍗忚锛屾棤娉曟墽琛�");
- }
-
-// param = inoutEventControl.getPlateNum(param);
- //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
-
- if (StringUtils.isEmpty(param.getErrorMsg())) {
- return new PageResponse<>(RespCodeEnum.CODE_0000, param);
- }
-
- return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg());
- }
-
- /**
- * 鍑哄叆搴撴姄鎷�
- *
- * @param param
- * @return
- */
- @RequestMapping("/snap-img")
- public @ResponseBody
- PageResponse<SnapImgDto> cutImg(@RequestBody SnapImgDto param) {
-
- //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
-// param = inoutApiManager.snapImg(param);
-
- return new PageResponse<>(RespCodeEnum.CODE_0000, param);
- }
-
-
- /**
- * 鍑哄叆搴撹棰�
- *
- * @return
- */
- @RequestMapping("/inout-video-play")
- @ResponseBody
- public ApiCameraResp inoutVideoPlay(HttpServletRequest request, @RequestBody InoutCameraDto param) {
- //鑾峰彇璇锋眰鏂笽P
- String ip = SystemUtil.getIP(request);
-// return inoutEventControl.inoutVideoPlay(param, ip);
- //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
- return null;
- }
-
-
-}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
index a6e89da..3c38737 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
@@ -1,6 +1,8 @@
package com.fzzy.inout;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.*;
import com.fzzy.igds.domain.*;
@@ -470,4 +472,20 @@
return prefix + "/inout-img";
}
+
+
+
+ /**
+ * 鑾峰彇瑙嗛鎾斁鍦板潃
+ *
+ * @param param
+ * @return
+ */
+ @RequestMapping("/get-media")
+ @ResponseBody
+ public ApiCameraResp getMedia(@RequestBody InoutConf param) {
+ //鑾峰彇璇锋眰鏂笽P
+ return inoutManager.getPlayAddr(param);
+ }
+
}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
index 5f7e643..05420b3 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.common.manager.CommonManager;
+import com.fzzy.igds.camera.ApiCameraManager;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.*;
@@ -44,6 +47,8 @@
private InoutNoticeService inoutNoticeService;
@Resource
private CommonManager commonManager;
+ @Resource
+ private ApiCameraManager apiCameraManager;
/**
* 鏍规嵁鐢ㄦ埛璇锋眰淇℃伅锛屾牴鎹綋鍓嶅鎴风數鑴慖P锛岃幏鍙栧嚭鍏ュ簱绉伴噸涓婃閫夋嫨鐨勫湴纾�
@@ -564,4 +569,39 @@
}
return files;
}
+
+
+ /**
+ * 鑾峰彇鎾斁淇℃伅
+ *
+ * @param camera
+ * @return
+ */
+ public ApiCameraResp getPlayAddr(InoutConf camera) {
+
+ //閫氳繃缁熶竴鍏ュ彛鑾峰彇鎾斁鍦板潃
+ ApiCameraData apiCameraData = new ApiCameraData();
+ apiCameraData.setCompanyId(camera.getCompanyId());
+ apiCameraData.setDeptId(camera.getDeptId());
+ apiCameraData.setCameraId(camera.getSn());
+ apiCameraData.setIp(camera.getIp());
+ apiCameraData.setCtrlPort(camera.getPortCtrl());
+ apiCameraData.setWebPort(camera.getPort());
+ apiCameraData.setPlayType(camera.getPlayType());
+ apiCameraData.setSnapType(camera.getSnapType());
+ apiCameraData.setSn(camera.getSn());
+ apiCameraData.setChannel(camera.getChanNum());
+ apiCameraData.setLoginId(camera.getLoginId());
+ apiCameraData.setPwd(camera.getPwd());
+ apiCameraData.setUrlIn(camera.getUrlIn());
+ apiCameraData.setUrlOut(camera.getUrlOut());
+ apiCameraData.setMediaAddr(camera.getMediaAddr());
+
+ //鏍规嵁鎾斁鏂瑰紡鑾峰彇瀵瑰簲鐨勬挱鏀惧湴鍧�
+ ApiCameraResp resp = apiCameraManager.getApiCameraService(apiCameraData.getPlayType()).getPlayAddr(apiCameraData);
+ resp.setPlayType(camera.getPlayType());
+ resp.setSnapType(camera.getSnapType());
+ resp.setCameraId(camera.getSn());
+ return resp;
+ }
}
diff --git a/fzzy-igdss-web/src/main/resources/static/common/constant.js b/fzzy-igdss-web/src/main/resources/static/common/constant.js
index 9742c8f..c260f48 100644
--- a/fzzy-igdss-web/src/main/resources/static/common/constant.js
+++ b/fzzy-igdss-web/src/main/resources/static/common/constant.js
@@ -84,6 +84,7 @@
EASY_GBS: "EASY_GBS",//fzzy-easy娴佸獟浣撴挱鏀�
EASY_DSS: "EASY_DSS",//钀ょ煶浜戞挱鏀�
MEDIA_HIK: "MEDIA_HIK",//娴峰悍娴佸獟浣�
+ PLAY_TYPE_YD_QLY: "YD_QLY",//娴峰悍娴佸獟浣�
HIK_YS: "HIK_YS",//娴峰悍-钀ょ煶浜�
HIK_WEB4: "HIK_WEB4",//娴峰悍-WEB鎻掍欢
IMOU: "IMOU",///涔愭浜�
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
index b9f50eb..760f987 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
@@ -21,9 +21,15 @@
initVideo2(snapParam2, snapPram3);
return;
}
- var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
//杞︾墝璇嗗埆鎾斁
if (snapParam1) {
+ var url = "";
+ if (PlayType.PLAY_TYPE_WEB_RTC == snapParam1.playType) {
+ url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+ }
+ if (PlayType.PLAY_TYPE_YD_QLY == snapParam1.playType) {
+ url = "/basic/inout/get-media";
+ }
$.ajax({
type: "POST",
url: url,
@@ -56,8 +62,14 @@
initVideo3(snapParam3)
return;
}
- var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
if (snapParam2) {
+ var url = "";
+ if (PlayType.PLAY_TYPE_WEB_RTC == snapParam2.playType) {
+ url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+ }
+ if (PlayType.PLAY_TYPE_YD_QLY == snapParam2.playType) {
+ url = "/basic/inout/get-media";
+ }
$.ajax({
type: "POST",
url: url,
@@ -90,7 +102,13 @@
return;
}
if (!snapParam3) return;
- var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+ var url = "";
+ if (PlayType.PLAY_TYPE_WEB_RTC == snapParam3.playType) {
+ url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+ }
+ if (PlayType.PLAY_TYPE_YD_QLY == snapParam3.playType) {
+ url = "/basic/inout/get-media";
+ }
$.ajax({
type: "POST",
url: url,
@@ -126,6 +144,9 @@
videoId = data.cameraId;
htm = '<video class="video" id="video' + playNum + '" autoplay="" muted="" playsinline=""></video>';
}
+ if (PlayType.PLAY_TYPE_YD_QLY == data.playType) {
+ htm = '<iframe src="' + data.playUrl + '" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>';
+ }
if (1 == order) {
$("#kccz-r-video1").append(htm);
--
Gitblit v1.9.3