diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/utils/HttpClientUtils.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/utils/HttpClientUtils.java index 5045e87..1b84f10 100644 --- a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/utils/HttpClientUtils.java +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/utils/HttpClientUtils.java @@ -126,6 +126,76 @@ public class HttpClientUtils { return result.toString(); } + public static String get(String url) throws Exception { + StringBuilder result = new StringBuilder(); + BufferedReader in = null; + try { + URL realUrl = new URL(url); + URLConnection connection = realUrl.openConnection(); + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + connection.connect(); + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + + String line; + while ((line = in.readLine()) != null) { + result.append(line); + } + } catch (Exception e) { + throw e; + } finally { + if (null != in) { + in.close(); + } + } + + return result.toString(); + } + + public static String delete(String url) throws Exception { + StringBuilder result = new StringBuilder(); + BufferedReader in = null; + HttpURLConnection connection = null; + try { + URL realUrl = new URL(url); + connection = (HttpURLConnection) realUrl.openConnection(); + connection.setRequestMethod("DELETE"); + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + connection.connect(); + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + + String line; + while ((line = in.readLine()) != null) { + result.append(line); + } + } catch (Exception e) { + try { + if (connection != null && connection.getErrorStream() != null) { + BufferedReader errorReader = new BufferedReader(new InputStreamReader(connection.getErrorStream(), "UTF-8")); + String line; + while ((line = errorReader.readLine()) != null) { + result.append(line); + } + errorReader.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } finally { + if (null != in) { + in.close(); + } + if (null != connection) { + connection.disconnect(); + } + } + + return result.toString(); + } + public static String postJson(String requestUrl, String requestPram, String tokenKey, String accessToken) { OutputStreamWriter outputStreamWriter = null; BufferedReader bufferedReader = null; @@ -155,11 +225,23 @@ public class HttpClientUtils { bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), "utf-8")); String line; - while ((line = bufferedReader.readLine()) != null) { - responseResult.append(line); - } + while ((line = bufferedReader.readLine()) != null) { + responseResult.append(line); + } } catch (Exception var18) { var18.printStackTrace(); + try { + if (httpURLConnection != null && httpURLConnection.getErrorStream() != null) { + BufferedReader errorReader = new BufferedReader(new InputStreamReader(httpURLConnection.getErrorStream(), "utf-8")); + String line; + while ((line = errorReader.readLine()) != null) { + responseResult.append(line); + } + errorReader.close(); + } + } catch (IOException var19) { + var19.printStackTrace(); + } } finally { httpURLConnection.disconnect(); diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/constant/IvsConst.java b/inspect-ivs/src/main/java/com/inspect/ivs/constant/IvsConst.java index 5eac05b..97b6844 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/constant/IvsConst.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/constant/IvsConst.java @@ -21,6 +21,11 @@ public class IvsConst { public static final String URI_CONTROL_RESUME_RECORD = "/playback/resume/v1.0/{playHandle}"; public static final String URI_PLAYBACK_START = "/playback/startplatformplaybackbyip"; public static final String URI_PLAYBACK_STOP = "/playback/stopplatformplaybackbyip/{handle}"; + public static final String URI_HLS_SESSIONS = "/hik/nvr/playback/hls/sessions"; + public static final String URI_HLS_SESSION = "/hik/nvr/playback/hls/sessions/%s"; + public static final String URI_HLS_SESSION_CONTROL = "/hik/nvr/playback/hls/sessions/%s/controls"; + public static final String URI_HLS_UI_SESSIONS = "/hik/nvr/playback/hls/ui/sessions"; + public static final String URI_HLS_UI_SESSION_CONTROL = "/hik/nvr/playback/hls/ui/sessions/%s/controls"; public static final String URI_PRESET_REMOVE = "/ptz/presetposition/{cameraCode}/{domainCode}/{presetIndex}/v1.0"; public static final String URI_PRESET_LIST = "/device/ptzpresetlist/{cameraCode}/{domainCode}"; public static final String IVS_TOKEN = "IVS_TOKEN"; diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsPlaybackController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsPlaybackController.java index 1d20521..84aa349 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsPlaybackController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsPlaybackController.java @@ -7,6 +7,7 @@ import com.inspect.base.redis.service.RedisService; import com.inspect.ivs.constant.IvsConst; import com.inspect.ivs.domain.CameraCodeAndEndTime; import com.inspect.ivs.enums.RtspType; +import com.inspect.ivs.service.HlsPlaybackComponent; import com.inspect.ivs.service.IvsCommonService; import com.inspect.ivs.service.PlaybackComponent; import com.inspect.ivs.service.XinTongComponent; @@ -32,7 +33,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.reactive.function.client.WebClient.RequestBodySpec; @@ -45,15 +51,17 @@ public class IvsPlaybackController { private final ZlMediaComponent zlmediaComponent; private final RedisService redisService; private final PlaybackComponent playbackComponent; + private final HlsPlaybackComponent hlsPlaybackComponent; @Value("${rtsp.type:xintong}") private RtspType rtspType; private final XinTongComponent xinTongComponent; - public IvsPlaybackController(IvsCommonService ivsCommonService, ZlMediaComponent zlmediaComponent, RedisService redisService, PlaybackComponent playbackComponent, XinTongComponent xinTongComponent) { + public IvsPlaybackController(IvsCommonService ivsCommonService, ZlMediaComponent zlmediaComponent, RedisService redisService, PlaybackComponent playbackComponent, HlsPlaybackComponent hlsPlaybackComponent, XinTongComponent xinTongComponent) { this.ivsCommonService = ivsCommonService; this.zlmediaComponent = zlmediaComponent; this.redisService = redisService; this.playbackComponent = playbackComponent; + this.hlsPlaybackComponent = hlsPlaybackComponent; this.xinTongComponent = xinTongComponent; } @@ -116,6 +124,42 @@ public class IvsPlaybackController { return Response.ok(); } + @PostMapping({"hls/sessions"}) + public ResponseEntity hlsCreateSession(@RequestBody JSONObject request) { + log.debug("[PLAYBACK] hls create session param:{}", request); + return this.hlsPlaybackComponent.post(IvsConst.URI_HLS_SESSIONS, request); + } + + @DeleteMapping({"hls/sessions/{sessionId}"}) + public ResponseEntity hlsDeleteSession(@PathVariable String sessionId) { + log.debug("[PLAYBACK] hls delete session sessionId:{}", sessionId); + return this.hlsPlaybackComponent.delete(String.format(IvsConst.URI_HLS_SESSION, sessionId)); + } + + @GetMapping({"hls/sessions/{sessionId}"}) + public ResponseEntity hlsGetSession(@PathVariable String sessionId) { + log.debug("[PLAYBACK] hls query session sessionId:{}", sessionId); + return this.hlsPlaybackComponent.get(String.format(IvsConst.URI_HLS_SESSION, sessionId)); + } + + @PostMapping({"hls/sessions/{sessionId}/controls"}) + public ResponseEntity hlsControlSession(@PathVariable String sessionId, @RequestBody JSONObject request) { + log.debug("[PLAYBACK] hls control session sessionId:{}, param:{}", sessionId, request); + return this.hlsPlaybackComponent.post(String.format(IvsConst.URI_HLS_SESSION_CONTROL, sessionId), request); + } + + @PostMapping({"hls/ui/sessions"}) + public ResponseEntity hlsCreateUiSession(@RequestBody JSONObject request) { + log.debug("[PLAYBACK] hls ui create session param:{}", request); + return this.hlsPlaybackComponent.post(IvsConst.URI_HLS_UI_SESSIONS, request); + } + + @PostMapping({"hls/ui/sessions/{sessionId}/controls"}) + public ResponseEntity hlsControlUiSession(@PathVariable String sessionId, @RequestBody JSONObject request) { + log.debug("[PLAYBACK] hls ui control session sessionId:{}, param:{}", sessionId, request); + return this.hlsPlaybackComponent.post(String.format(IvsConst.URI_HLS_UI_SESSION_CONTROL, sessionId), request); + } + public String getLabel() { return UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/service/HlsPlaybackComponent.java b/inspect-ivs/src/main/java/com/inspect/ivs/service/HlsPlaybackComponent.java new file mode 100644 index 0000000..06f702e --- /dev/null +++ b/inspect-ivs/src/main/java/com/inspect/ivs/service/HlsPlaybackComponent.java @@ -0,0 +1,69 @@ +package com.inspect.ivs.service; + +import com.alibaba.fastjson.JSONObject; +import com.inspect.ivs.util.WebClientUtils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.WebClient; +import org.springframework.web.reactive.function.client.WebClientException; + +@Component +public class HlsPlaybackComponent { + private static final Logger log = LoggerFactory.getLogger(HlsPlaybackComponent.class); + + @Value("${ivs.nvr.hls.url:http://192.168.1.86:28081}") + private String url; + + private final WebClient webClient = WebClientUtils.create(); + + public ResponseEntity get(String uri) { + log.info("[NVR HLS] GET url: {}", url.concat(uri)); + return exchange(webClient.get().uri(url.concat(uri))); + } + + public ResponseEntity post(String uri, Object body) { + log.info("[NVR HLS] POST url: {}, body: {}", url.concat(uri), JSONObject.toJSONString(body)); + return exchange(webClient.post().uri(url.concat(uri)) + .contentType(MediaType.APPLICATION_JSON) + .bodyValue(body)); + } + + public ResponseEntity delete(String uri) { + log.info("[NVR HLS] DELETE url: {}", url.concat(uri)); + return exchange(webClient.delete().uri(url.concat(uri))); + } + + private ResponseEntity exchange(WebClient.RequestHeadersSpec spec) { + assert webClient != null; + try { + return spec.exchangeToMono(response -> + response.bodyToMono(String.class) + .defaultIfEmpty("") + .map(body -> { + int status = response.statusCode().value(); + ResponseEntity entity; + if (body == null || body.trim().isEmpty()) { + entity = new ResponseEntity<>((JSONObject) null, HttpStatus.valueOf(status)); + } else { + entity = ResponseEntity.status(status) + .contentType(MediaType.APPLICATION_JSON) + .body(JSONObject.parseObject(body)); + } + return entity; + })) + .block(); + } catch (WebClientException e) { + log.error("[NVR HLS] request failed, url: {}", url, e); + JSONObject error = new JSONObject(); + error.put("code", HttpStatus.BAD_GATEWAY.value()); + error.put("message", "NVR HLS服务不可用"); + return ResponseEntity.status(HttpStatus.BAD_GATEWAY).body(error); + } + } +} diff --git a/inspect-ivs/src/main/resources/bootstrap.yml b/inspect-ivs/src/main/resources/bootstrap.yml index 2193824..df8cfe1 100644 --- a/inspect-ivs/src/main/resources/bootstrap.yml +++ b/inspect-ivs/src/main/resources/bootstrap.yml @@ -25,3 +25,6 @@ ivs: password: Huawei@1234 newPassword: Huawei@12345 address: http://172.21.101.227:18530 + nvr: + hls: + url: http://192.168.1.86:28081 diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/contants/AccessApiConstant.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/contants/AccessApiConstant.java index 1c6718f..bdba68b 100644 --- a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/contants/AccessApiConstant.java +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/contants/AccessApiConstant.java @@ -13,5 +13,11 @@ public class AccessApiConstant { public static final String PLAYBACK_START = "/api/v1/playback/start"; public static final String PLAYBACK_STOP = "/api/v1/playback/stop"; public static final String PLAYBACK_CONTROL = "/api/v1/playback/control"; + public static final String HLS_SESSION_CREATE = "/api/v1/playback/hls/sessions"; + public static final String HLS_SESSION_DELETE = "/api/v1/playback/hls/sessions/%s"; + public static final String HLS_SESSION_QUERY = "/api/v1/playback/hls/sessions/%s"; + public static final String HLS_SESSION_CONTROL = "/api/v1/playback/hls/sessions/%s/controls"; + public static final String HLS_UI_SESSION_CREATE = "/api/v1/playback/hls/ui/sessions"; + public static final String HLS_UI_SESSION_CONTROL = "/api/v1/playback/hls/ui/sessions/%s/controls"; public static final String PTZ_LIST = "/api/v1/control/presetList"; } diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolVideotapeController.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolVideotapeController.java index 2e6e1fd..c50ffa1 100644 --- a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolVideotapeController.java +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolVideotapeController.java @@ -9,6 +9,10 @@ import com.inspect.base.core.web.domain.AjaxResult; import com.inspect.base.redis.service.RedisService; import com.inspect.patrol.contants.AccessApiConstant; import com.inspect.patrol.linkage.util.JsonUtil; +import com.inspect.patrol.model.HlsControlModel; +import com.inspect.patrol.model.HlsSessionModel; +import com.inspect.patrol.model.HlsUiControlModel; +import com.inspect.patrol.model.HlsUiSessionModel; import com.inspect.patrol.model.PtzFiModel; import com.inspect.patrol.model.PtzModel; import com.inspect.patrol.model.RecordListModel; @@ -28,7 +32,11 @@ import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -154,6 +162,71 @@ public class PatrolVideotapeController extends BaseController { return AjaxResult.success(JSONObject.parseObject(result)); } + @PostMapping({"/hls/session/create"}) + public AjaxResult hlsCreateSession(@RequestBody HlsSessionModel hlsSessionModel) throws Exception { + log.info("hls session create param: {}", JSONObject.toJSONString(hlsSessionModel)); + String params = JSONObject.toJSONString(hlsSessionModel); + String result = HttpClientUtils.postJson(this.deviceUrl + AccessApiConstant.HLS_SESSION_CREATE, params, ""); + return parseHlsResult(result); + } + + @DeleteMapping({"/hls/session/delete/{sessionId}"}) + public AjaxResult hlsDeleteSession(@PathVariable String sessionId) throws Exception { + log.info("hls session delete sessionId: {}", sessionId); + String result = HttpClientUtils.delete(this.deviceUrl + String.format(AccessApiConstant.HLS_SESSION_DELETE, sessionId)); + if (result == null || result.trim().isEmpty()) { + return AjaxResult.success(); + } + return parseHlsResult(result); + } + + @GetMapping({"/hls/session/query/{sessionId}"}) + public AjaxResult hlsGetSession(@PathVariable String sessionId) throws Exception { + log.info("hls session query sessionId: {}", sessionId); + String result = HttpClientUtils.get(this.deviceUrl + String.format(AccessApiConstant.HLS_SESSION_QUERY, sessionId)); + return parseHlsResult(result); + } + + @PostMapping({"/hls/session/control/{sessionId}"}) + public AjaxResult hlsControlSession(@PathVariable String sessionId, @RequestBody HlsControlModel hlsControlModel) throws Exception { + log.info("hls session control sessionId: {}, param: {}", sessionId, JSONObject.toJSONString(hlsControlModel)); + String params = JSONObject.toJSONString(hlsControlModel); + String result = HttpClientUtils.postJson(this.deviceUrl + String.format(AccessApiConstant.HLS_SESSION_CONTROL, sessionId), params, ""); + return parseHlsResult(result); + } + + @PostMapping({"/hls/ui/session/create"}) + public AjaxResult hlsCreateUiSession(@RequestBody HlsUiSessionModel hlsUiSessionModel) throws Exception { + log.info("hls ui session create param: {}", JSONObject.toJSONString(hlsUiSessionModel)); + String params = JSONObject.toJSONString(hlsUiSessionModel); + String result = HttpClientUtils.postJson(this.deviceUrl + AccessApiConstant.HLS_UI_SESSION_CREATE, params, ""); + return parseHlsResult(result); + } + + @PostMapping({"/hls/ui/session/control/{sessionId}"}) + public AjaxResult hlsControlUiSession(@PathVariable String sessionId, @RequestBody HlsUiControlModel hlsUiControlModel) throws Exception { + log.info("hls ui session control sessionId: {}, param: {}", sessionId, JSONObject.toJSONString(hlsUiControlModel)); + String params = JSONObject.toJSONString(hlsUiControlModel); + String result = HttpClientUtils.postJson(this.deviceUrl + String.format(AccessApiConstant.HLS_UI_SESSION_CONTROL, sessionId), params, ""); + return parseHlsResult(result); + } + + private AjaxResult parseHlsResult(String result) { + if (result == null || result.trim().isEmpty()) { + return AjaxResult.error("接入层返回异常"); + } + try { + JSONObject jsonObject = JSONObject.parseObject(result); + if (jsonObject.containsKey("code") && !Constants.SUCCESS.equals(jsonObject.getInteger("code"))) { + return AjaxResult.error(jsonObject.getString("message")); + } + return AjaxResult.success(jsonObject); + } catch (Exception e) { + log.error("hls response parse error, result: {}", result, e); + return AjaxResult.error("接入层返回异常"); + } + } + public static void main(String[] args) { String str = "{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"SnapURL\":\"\",\"RTMP\":\"rtmp://10.10.18.201:11935/hls/010010000103010001_010010000103010001_1010000002\",\"SourceVideoFrameRate\":0,\"RTPLostCount\":0,\"PlaybackDuration\":26638,\"CDN\":\"\",\"HLS\":\"http://10.10.18.201:20000/sms/34020000002020000001/hls/010010000103010001_010010000103010001_1010000002/010010000103010001_010010000103010001_1010000002_live.m3u8\",\"InBytes\":0,\"FLV\":\"http://10.10.18.201:20000/sms/34020000002020000001/flv/hls/010010000103010001_010010000103010001_1010000002.flv\",\"ChannelCustomName\":\"\",\"SourceAudioSampleRate\":0,\"SourceVideoHeight\":0,\"SourceVideoWidth\":0,\"Ondemand\":true,\"VideoFrameCount\":0,\"NumOutputs\":0,\"InBitRate\":0,\"WS_FLV\":\"ws://10.10.18.201:20000/sms/34020000002020000001/ws-flv/hls/010010000103010001_010010000103010001_1010000002.flv\",\"AudioEnable\":false,\"OutBytes\":0,\"SMSID\":\"34020000002020000001\",\"Progress\":0,\"RTPLostRate\":0,\"StreamID\":\"playback:010010000103010001:010010000103010001:1010000002\",\"DeviceID\":\"010010000103010001\",\"SourceVideoCodecName\":\"\",\"Duration\":0,\"SourceAudioCodecName\":\"\",\"TimestampSec\":0,\"ChannelID\":\"010010000103010001\",\"WEBRTC\":\"\",\"CascadeSize\":0,\"PlaybackFileURL\":\"\",\"RecordStartAt\":\"\",\"RTPCount\":0,\"ChannelName\":\"Camera 01\",\"StartAt\":\"2022-05-06 08:32:49\",\"RTSP\":\"\",\"Transport\":\"UDP\"}}"; JSONObject jsonObject = JSONObject.parseObject(str); diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsControlModel.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsControlModel.java new file mode 100644 index 0000000..a273e08 --- /dev/null +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsControlModel.java @@ -0,0 +1,14 @@ +package com.inspect.patrol.model; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Setter +@Getter +public class HlsControlModel implements Serializable { + private String action; + private Integer speed; + private String seekTime; +} diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsSessionModel.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsSessionModel.java new file mode 100644 index 0000000..c368393 --- /dev/null +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsSessionModel.java @@ -0,0 +1,20 @@ +package com.inspect.patrol.model; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Setter +@Getter +public class HlsSessionModel implements Serializable { + private String nvrIp; + private Integer sdkPort; + private Integer rtspPort; + private Integer channel; + private Integer streamType; + private String username; + private String password; + private String startTime; + private String endTime; +} diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiControlModel.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiControlModel.java new file mode 100644 index 0000000..e233c14 --- /dev/null +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiControlModel.java @@ -0,0 +1,15 @@ +package com.inspect.patrol.model; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Setter +@Getter +public class HlsUiControlModel implements Serializable { + private String cameraCode; + private String action; + private Integer speed; + private String seekTime; +} diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiSessionModel.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiSessionModel.java new file mode 100644 index 0000000..8aa30da --- /dev/null +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/model/HlsUiSessionModel.java @@ -0,0 +1,15 @@ +package com.inspect.patrol.model; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Setter +@Getter +public class HlsUiSessionModel implements Serializable { + private String cameraCode; + private Integer streamType; + private String startTime; + private String endTime; +} diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java index dc1616a..375619d 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java @@ -40,15 +40,6 @@ public class BasedataEqpBookChannelController extends BaseController { this.startPage(); List list = this.basedataEqpBookChannelService.selectBasedataEqpBookChannelList(basedataEqpbookChannel); - for (BasedataEqpBookChannel channel : list) { - BasedataEqpBook basedataEqp = this.baseDataEqpBookService.selectBasedataEqpBookByEqpBookId(channel.getEqpBookId()); - if (basedataEqp == null) { - return this.getDataTable(list); - } - - channel.setEqpBookName(basedataEqp.getPatrolDeviceName()); - } - return this.getDataTable(list); } diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/domain/BasedataEqpBookChannel.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/domain/BasedataEqpBookChannel.java index 7f2194c..90001ad 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/domain/BasedataEqpBookChannel.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/domain/BasedataEqpBookChannel.java @@ -87,6 +87,12 @@ public class BasedataEqpBookChannel extends BaseEntity { private String deviceSource; + private String stationName; + + private String stationCode; + + private String areaName; + public String toString() { return (new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)).append("channelId", this.getChannelId()).append("channelCode", this.getChannelCode()).append("channelName", this.getChannelName()).append("parentChannelId", this.getParentChannelId()).append("eqpbookId", this.getEqpBookId()).append("channelType", this.getChannelType()).append("onlineState", this.getOnlineState()).append("channelContent", this.getChannelContent()).append("provider", this.getProvider()).append("address", this.getAddress()).append("host", this.getHost()).append("port", this.getPort()).append("createBy", this.getCreateBy()).append("createTime", this.getCreateTime()).append("updateBy", this.getUpdateBy()).append("updateTime", this.getUpdateTime()).append("deleteFlag", this.getDeleteFlag()).append("patroldeviceCode", this.getPatrolDeviceCode()).append("username", this.getUsername()).append("password", this.getPassword()).toString(); } diff --git a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml index 13ec219..fe7ed92 100644 --- a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml @@ -57,27 +57,58 @@