Commit 6f300a23007aa419c41f600bf23a0ea5c71e5492

Authored by liujun001
1 parent 395d70a8

修改展示形式

src/main/java/com/bsth/controller/video/VideoController.java
... ... @@ -17,11 +17,13 @@ import com.bsth.service.video.VideoService;
17 17 import lombok.extern.slf4j.Slf4j;
18 18 import org.apache.commons.collections.CollectionUtils;
19 19 import org.apache.commons.collections.MapUtils;
  20 +import org.apache.commons.lang3.StringUtils;
20 21 import org.springframework.beans.BeanUtils;
21 22 import org.springframework.beans.factory.annotation.Autowired;
22 23 import org.springframework.data.domain.PageImpl;
23 24 import org.springframework.web.bind.annotation.*;
24 25  
  26 +import javax.servlet.http.HttpServletRequest;
25 27 import java.util.*;
26 28  
27 29 /**
... ... @@ -55,6 +57,27 @@ public class VideoController {
55 57 return result;
56 58 }
57 59  
  60 + @GetMapping("/tree/carNo/{parentId}")
  61 + public List<VideoTree> layTreeNodeCarNo(@PathVariable("parentId") String parentId) {
  62 + return videoService.combinationTreeOfCar(parentId);
  63 + }
  64 +
  65 + @GetMapping("/tree/search")
  66 + public Map<String, Object> searchLayTreeNode(HttpServletRequest request) {
  67 + String carNo = request.getParameter("insideCode_like");
  68 + if (StringUtils.isEmpty(carNo)) {
  69 + return combinationTree();
  70 + }
  71 + List<VideoTree> groups = videoService.searchTreeDataByCarNo(carNo);
  72 +
  73 + Map<String, Object> result = new HashMap<>();
  74 + result.put("status", ResponseCode.SUCCESS);
  75 + result.put("data", groups);
  76 +
  77 + return result;
  78 + }
  79 +
  80 +
58 81 @GetMapping("/tree/table")
59 82 public Map<String, Object> queryTreeTable(@RequestParam Map<String, Object> map,
60 83 @RequestParam(defaultValue = "0") int page,
... ... @@ -117,16 +140,53 @@ public class VideoController {
117 140 return result;
118 141 }
119 142  
  143 + @GetMapping("/car/channel/tree/{carNo}")
  144 + public Map<String, Object> queryChannelsTree(@PathVariable String carNo) {
  145 + Map<String, Object> result = new HashMap<>();
  146 + try {
  147 +
  148 +
  149 + List<Map<String, Object>> videoChannels = videoService.getVideoChannel(carNo);
  150 + List<VideoTree> trees = new ArrayList<>();
  151 +
  152 + if (CollectionUtils.isNotEmpty(videoChannels)) {
  153 + for (Map<String, Object> map : videoChannels) {
  154 + VideoTree tree = new VideoTree();
  155 + tree.setId(map.get("channelId"));
  156 + tree.setCode(map.get("channelId"));
  157 + tree.setSourceId(map.get("deviceId"));
  158 + tree.setType(401);
  159 + tree.setIcon("layui-icon-video");
  160 + String name = Objects.isNull(map.get("name")) ? map.get("channelId") + "_" + map.get("deviceId") : map.get("name").toString();
  161 + tree.setText(name);
  162 + tree.setNodePValue(carNo);
  163 +
  164 + trees.add(tree);
  165 + }
  166 + }
  167 + result.put("status", ResponseCode.SUCCESS);
  168 + result.put("data", trees);
  169 + result.put("channelImageURL", wvpConfig.getChannelListOfImgURL());
  170 + result.put("wvpPlayURL", wvpConfig.getWvpPlayURL());
  171 + result.put("wvpLiveBroadcast", wvpConfig.getWvpLiveBroadcast());
  172 +
  173 + } catch (Exception e) {
  174 + log.error("查询车辆通道异常:[{}]", carNo, e);
  175 + result.put("status", ResponseCode.ERROR);
  176 + }
  177 + return result;
  178 + }
  179 +
120 180 @GetMapping("/car/channel/history/{device}/{channel}/{dateStr}")
121 181 public Map<String, Object> queryChannelHistoryList(@PathVariable("device") String device, @PathVariable("channel") String channel, @PathVariable("dateStr") String dateStr) {
122 182 Map<String, Object> result = new HashMap<>();
123 183 try {
124 184 String token = videoService.getToken();
125 185  
126   - List<Map<String, Object>> videoChannels = videoService.getVideoChannelHistoryList(device, channel, dateStr,token);
  186 + List<Map<String, Object>> videoChannels = videoService.getVideoChannelHistoryList(device, channel, dateStr, token);
127 187 result.put("status", ResponseCode.SUCCESS);
128 188 result.put("data", videoChannels);
129   - result.put("wvpPlayURL",wvpConfig.getWvpPlayURL());
  189 + result.put("wvpPlayURL", wvpConfig.getWvpPlayURL());
130 190 } catch (Exception e) {
131 191 log.error("查询通道历史数据异常:[{}],[{}],[{}]", device, channel, dateStr, e);
132 192 result.put("status", ResponseCode.ERROR);
... ...
src/main/java/com/bsth/entity/video/VideoTree.java
1 1 package com.bsth.entity.video;
2 2  
3 3 import lombok.Data;
  4 +import org.apache.commons.lang3.StringUtils;
4 5  
5 6  
6 7 import javax.persistence.Id;
... ... @@ -54,11 +55,14 @@ public class VideoTree implements Serializable {
54 55 @Transient
55 56 private Object code;
56 57  
57   -// @Transient
58   -// private String icon;
  58 + @Transient
  59 + private String icon;
59 60  
60 61 @Transient
61 62 private List<VideoTree> children;
  63 + /**是否展开*/
  64 + @Transient
  65 + private String spread;
62 66  
63 67  
64 68 public String getTitle() {
... ... @@ -66,7 +70,7 @@ public class VideoTree implements Serializable {
66 70 }
67 71  
68 72 public boolean getSpread() {
69   - return getType() == 0 ? true : false;
  73 + return StringUtils.isEmpty(spread)?getType() == 0 ? true : false:Boolean.parseBoolean(spread);
70 74 }
71 75  
72 76 }
... ...
src/main/java/com/bsth/service/impl/videoimpl/VideoServiceImpl.java
... ... @@ -2,6 +2,7 @@ package com.bsth.service.impl.videoimpl;
2 2  
3 3 import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONArray;
  5 +import com.bsth.data.BasicData;
5 6 import com.bsth.entity.Business;
6 7 import com.bsth.entity.Line;
7 8 import com.bsth.entity.video.VideoChannel;
... ... @@ -46,6 +47,8 @@ public class VideoServiceImpl implements VideoService {
46 47 private LineService lineService;
47 48 @Autowired
48 49 private WvpConfig wvpConfig;
  50 + @Autowired
  51 + private BasicData basicData;
49 52  
50 53  
51 54 @Override
... ... @@ -66,13 +69,119 @@ public class VideoServiceImpl implements VideoService {
66 69 }
67 70  
68 71 @Override
  72 + public List<VideoTree> combinationTreeOfCar(String code) {
  73 + if (Objects.nonNull(code)) {
  74 + List<VideoTree> trees = new ArrayList<>();
  75 + Set<String> carNos = groupCarNosByComputeCode(code);
  76 +
  77 + Set<Line> lineSet = groupLingByCompany(code);
  78 + if (CollectionUtils.isNotEmpty(lineSet)) {
  79 + for (Line line : lineSet) {
  80 + VideoTree videoTree = combinationOfLine(code, line);
  81 + trees.add(videoTree);
  82 +
  83 + Set<String> carNoSets = groupCarNoByLine(line.getId());
  84 + if (CollectionUtils.isNotEmpty(carNoSets)) {
  85 + List<VideoTree> children = new ArrayList<>();
  86 + for (String carNo : carNoSets) {
  87 + VideoTree carTree = combnationOfCar(carNo, line.getId().toString());
  88 + children.add(carTree);
  89 +
  90 + if (CollectionUtils.isNotEmpty(carNos)) {
  91 + carNos.remove(carNo);
  92 + }
  93 + }
  94 + videoTree.setChildren(children);
  95 + }
  96 + }
  97 +
  98 + }
  99 +
  100 +
  101 + if (CollectionUtils.isNotEmpty(carNos)) {
  102 + for (String carNo : carNos) {
  103 + VideoTree carTree = combnationOfCar(carNo, code);
  104 + trees.add(carTree);
  105 + }
  106 + }
  107 + return trees;
  108 + }
  109 + return null;
  110 + }
  111 +
  112 + private VideoTree combnationOfCar(String carNo, String line) {
  113 + String name = Objects.isNull(basicData) || MapUtils.isEmpty(basicData.nbbmCompanyPlateMap) ? null : basicData.nbbmCompanyPlateMap.get(carNo);
  114 + return combinationVideoTree(carNo, carNo, line, carNo, 301, "layui-icon-transfer", carNo);
  115 + }
  116 +
  117 + private VideoTree combinationOfLine(String code, Line line) {
  118 + return combinationVideoTree(line.getId(), line.getName(), code, line.getId(), 201, "layui-icon-link", line.getLineCode());
  119 + }
  120 +
  121 + @Override
  122 + public List<VideoTree> searchTreeDataByCarNo(String carNo) {
  123 + Line line = findLineByCode(carNo);
  124 +
  125 + Iterable<Business> businessIterable = businessService.list(new HashMap<>());
  126 + if (Objects.isNull(businessIterable)) {
  127 + return Collections.emptyList();
  128 + }
  129 +
  130 + if (Objects.nonNull(line)) {
  131 + Set<Business> businesses = new LinkedHashSet<>();
  132 + findBussinessByUpCode(line.getCompany(), businessIterable, businesses);
  133 + if (CollectionUtils.isNotEmpty(businesses)) {
  134 + List<VideoTree> group = combitionBussiness(businesses);
  135 +
  136 + VideoTree sourceTree = findVideoTreeByBusinessCode(line.getCompany(), group);
  137 + if (Objects.isNull(sourceTree.getChildren())) {
  138 + sourceTree.setChildren(new ArrayList<>());
  139 + }
  140 + VideoTree lineOfTreeNode = combinationOfLine(sourceTree.getId().toString(), line);
  141 + lineOfTreeNode.setSpread(Boolean.TRUE.toString());
  142 + lineOfTreeNode.setChildren(new ArrayList<>());
  143 + sourceTree.getChildren().add(lineOfTreeNode);
  144 +
  145 + VideoTree carOfTreeNode = combnationOfCar(carNo, line.getLineCode());
  146 + lineOfTreeNode.getChildren().add(carOfTreeNode);
  147 + carOfTreeNode.setSpread(Boolean.TRUE.toString());
  148 +
  149 + return group;
  150 + }
  151 + } else {
  152 + Set<Business> businesses = new LinkedHashSet<>();
  153 + String company = basicData.nbbm2CompanyCodeMap.get(carNo);
  154 + if (StringUtils.isNotEmpty(company)) {
  155 + findBussinessByUpCode(company, businessIterable, businesses);
  156 + if (CollectionUtils.isNotEmpty(businesses)) {
  157 + List<VideoTree> group = combitionBussiness(businesses);
  158 + VideoTree sourceTree = findVideoTreeByBusinessCode(company, group);
  159 + if (Objects.nonNull(sourceTree) && Objects.isNull(sourceTree.getChildren())) {
  160 + sourceTree.setChildren(new ArrayList<>());
  161 + }
  162 + VideoTree carOfTreeNode = combnationOfCar(carNo, company);
  163 + carOfTreeNode.setSpread(Boolean.TRUE.toString());
  164 + sourceTree.getChildren().add(carOfTreeNode);
  165 +
  166 + sourceTree.setSpread("true");
  167 +
  168 + return group;
  169 + }
  170 + }
  171 + }
  172 +
  173 +
  174 + return Collections.emptyList();
  175 + }
  176 +
  177 + @Override
69 178 public List<Map<String, Object>> getVideoChannel(String carNo) throws Exception {
70 179 return getWvpVideoChannelByCarNo(carNo);
71 180 }
72 181  
73 182 @Override
74   - public List<Map<String, Object>> getVideoChannelHistoryList(String device, String channel, String dateStr,String token) throws Exception {
75   - return getVideoChannelHistoryListReq(device, channel, dateStr,token);
  183 + public List<Map<String, Object>> getVideoChannelHistoryList(String device, String channel, String dateStr, String token) throws Exception {
  184 + return getVideoChannelHistoryListReq(device, channel, dateStr, token);
76 185 }
77 186  
78 187 @Override
... ... @@ -93,11 +202,16 @@ public class VideoServiceImpl implements VideoService {
93 202 return Collections.emptyList();
94 203 }
95 204  
  205 + return combitionBussiness(businessIterable);
  206 +
  207 + }
  208 +
  209 + private List<VideoTree> combitionBussiness(Iterable<Business> businessIterable) {
96 210 List<VideoTree> trees = new ArrayList<>();
97 211 Iterator<Business> iterator = businessIterable.iterator();
98 212 while (iterator.hasNext()) {
99 213 Business business = iterator.next();
100   - VideoTree videoTree = combinationVideoTree(business.getBusinessCode(), business.getBusinessName(), business.getUpCode(), business.getId(), null, null, business.getBusinessCode());
  214 + VideoTree videoTree = combinationVideoTree(business.getBusinessCode(), business.getBusinessName(), business.getUpCode(), business.getId(), null, "layui-icon-component", business.getBusinessCode());
101 215 trees.add(videoTree);
102 216 }
103 217 List<VideoTree> groupTree = new ArrayList<>();
... ... @@ -116,32 +230,9 @@ public class VideoServiceImpl implements VideoService {
116 230 groupTree(trees, tree);
117 231 }
118 232 }
119   -
120 233 return groupTree;
121 234 }
122 235  
123   - private List<VideoTree> queryLine() {
124   - Iterable<Line> lines = lineService.list(new HashMap<>());
125   - if (Objects.isNull(lines)) {
126   - return Collections.emptyList();
127   - }
128   -
129   - List<VideoTree> trees = new ArrayList<>();
130   - Iterator<Line> iterator = lines.iterator();
131   - while (iterator.hasNext()) {
132   - Line line = iterator.next();
133   - VideoTree videoTree = combinationVideoTree(line.getId(), line.getName(), line.getCompany(), line.getId(), 2, null, null);
134   - trees.add(videoTree);
135   - }
136   -
137   -
138   - return trees;
139   - }
140   -
141   - private List<VideoTree> queryCars() {
142   - return null;
143   - }
144   -
145 236 /***
146 237 * 组合树
147 238 * @author liujun
... ... @@ -154,14 +245,14 @@ public class VideoServiceImpl implements VideoService {
154 245 * @param icon 图标
155 246 * @return com.bsth.entity.video.VideoTree
156 247 */
157   - private VideoTree combinationVideoTree(Object id, String text, String parent, Integer sourceId, Integer type, String icon, Object code) {
  248 + private VideoTree combinationVideoTree(Object id, String text, String parent, Object sourceId, Integer type, String icon, Object code) {
158 249 VideoTree videoTree = new VideoTree();
159 250 videoTree.setId(id);
160 251 videoTree.setText(text);
161 252 videoTree.setSourceId(sourceId);
162 253 videoTree.setNodePValue(parent);
163 254 videoTree.setType(type);
164   -// videoTree.setIcon(icon);
  255 + videoTree.setIcon(icon);
165 256 videoTree.setCode(code);
166 257 return videoTree;
167 258 }
... ... @@ -235,7 +326,7 @@ public class VideoServiceImpl implements VideoService {
235 326 }
236 327 }
237 328  
238   - private List<Map<String, Object>> getVideoChannelHistoryListReq(String device, String channel, String dateStr,String token) throws Exception {
  329 + private List<Map<String, Object>> getVideoChannelHistoryListReq(String device, String channel, String dateStr, String token) throws Exception {
239 330 if (StringUtils.isEmpty(token)) {
240 331 log.error("wvp login token is null");
241 332 return Collections.emptyList();
... ... @@ -334,4 +425,137 @@ public class VideoServiceImpl implements VideoService {
334 425 return null;
335 426 }
336 427  
  428 +
  429 + private Set<String> groupCarNosByComputeCode(String code) {
  430 + if (Objects.isNull(basicData) || MapUtils.isEmpty(basicData.nbbm2CompanyCodeMap)) {
  431 + return Collections.emptySet();
  432 + }
  433 + Set<String> carNos = new LinkedHashSet<>();
  434 + for (Map.Entry<String, String> entry : basicData.nbbm2CompanyCodeMap.entrySet()) {
  435 + if (Objects.equals(code, entry.getValue())) {
  436 + carNos.add(entry.getKey());
  437 + }
  438 + }
  439 +
  440 + return carNos;
  441 + }
  442 +
  443 + private Set<String> groupCarNoByLine(Integer id) {
  444 + if (Objects.isNull(basicData) || MapUtils.isEmpty(basicData.nbbm2LineMap)) {
  445 + return Collections.emptySet();
  446 + }
  447 +
  448 + Set<String> carNos = new LinkedHashSet<>();
  449 + for (Map.Entry<String, Line> entry : basicData.nbbm2LineMap.entrySet()) {
  450 + if (Objects.nonNull(entry.getValue()) && Objects.equals(entry.getValue().getId(), id)) {
  451 + carNos.add(entry.getKey());
  452 + }
  453 +
  454 + }
  455 +
  456 + return carNos;
  457 +
  458 + }
  459 +
  460 +
  461 + private Set<Line> groupLine(Collection<String> carNos) {
  462 + if (Objects.isNull(basicData) || MapUtils.isEmpty(basicData.nbbm2LineMap)) {
  463 + return Collections.emptySet();
  464 + }
  465 +
  466 + Set<Line> lineSet = new LinkedHashSet<>();
  467 + for (String carNo : carNos) {
  468 + Line line = basicData.nbbm2LineMap.get(carNo);
  469 + if (Objects.nonNull(line)) {
  470 + lineSet.add(line);
  471 + }
  472 + }
  473 +
  474 + return lineSet;
  475 + }
  476 +
  477 + private Set<Line> groupLingByCompany(String companyCode) {
  478 + if (Objects.isNull(basicData) || MapUtils.isEmpty(basicData.nbbm2LineMap)) {
  479 + return Collections.emptySet();
  480 + }
  481 +
  482 + Set<Line> lineSet = new LinkedHashSet<>();
  483 + for (Map.Entry<String, Line> entry : basicData.nbbm2LineMap.entrySet()) {
  484 + if (Objects.nonNull(entry.getValue()) && Objects.equals(entry.getValue().getCompany(), companyCode)) {
  485 + lineSet.add(entry.getValue());
  486 + }
  487 +
  488 + }
  489 + return lineSet;
  490 + }
  491 +
  492 + private void findBussinessByUpCode(String upCode, Iterable<Business> businessIterable, Collection<Business> results) {
  493 + for (Business business : businessIterable) {
  494 + if (Objects.equals(business.getBusinessCode(), upCode)) {
  495 + results.add(business);
  496 + findBussinessByUpCode(business.getUpCode(), businessIterable, results);
  497 + }
  498 + }
  499 + }
  500 +
  501 + private VideoTree findVideoTreeByBusinessCode(String bussinessCode, List<VideoTree> videoTrees) {
  502 + if (CollectionUtils.isEmpty(videoTrees)) {
  503 + return null;
  504 + }
  505 +
  506 + for (VideoTree videoTree : videoTrees) {
  507 + if (Objects.nonNull(videoTree.getId()) && Objects.equals(videoTree.getId().toString(), bussinessCode)) {
  508 + return videoTree;
  509 + } else if (CollectionUtils.isNotEmpty(videoTree.getChildren())) {
  510 + VideoTree source = findVideoTreeByBusinessCode(bussinessCode, videoTree.getChildren());
  511 + if (Objects.nonNull(source)) {
  512 + return source;
  513 + }
  514 + }
  515 + }
  516 +
  517 + return null;
  518 + }
  519 +
  520 + private Line findLineByCode(String carNo) {
  521 + Line line = basicData.nbbm2LineMap.get(carNo);
  522 + if (Objects.nonNull(line)) {
  523 + return line;
  524 + }
  525 + for (Map.Entry<String, Line> entry : basicData.nbbm2LineMap.entrySet()) {
  526 + if (StringUtils.equalsIgnoreCase(carNo, entry.getKey())) {
  527 + return entry.getValue();
  528 + }
  529 + }
  530 + String lineId = null;
  531 + for (Map.Entry<String, List<String>> entry : basicData.lineCodeHistoryNbbmMap.entrySet()) {
  532 + if (CollectionUtils.isNotEmpty(entry.getValue())) {
  533 + for (String sourceCarNo : entry.getValue()) {
  534 + if (StringUtils.equalsIgnoreCase(carNo, sourceCarNo)) {
  535 + lineId = entry.getKey();
  536 + break;
  537 + }
  538 + }
  539 + }
  540 +
  541 + if (StringUtils.isNotEmpty(lineId)) {
  542 + break;
  543 + }
  544 + }
  545 +
  546 + if (StringUtils.isEmpty(lineId)) {
  547 + return null;
  548 + }
  549 +
  550 + for (Map.Entry<String, Line> entry : basicData.nbbm2LineMap.entrySet()) {
  551 + if (StringUtils.equalsIgnoreCase(lineId, String.valueOf(entry.getValue().getId()))) {
  552 + return entry.getValue();
  553 + }
  554 + }
  555 +
  556 + return null;
  557 +
  558 + }
  559 +
  560 +
337 561 }
... ...
src/main/java/com/bsth/service/video/VideoService.java
... ... @@ -18,6 +18,10 @@ public interface VideoService {
18 18  
19 19 List<VideoTree> combinationTree();
20 20  
  21 + List<VideoTree> combinationTreeOfCar(String code);
  22 +
  23 + List<VideoTree> searchTreeDataByCarNo(String carNo);
  24 +
21 25 List<Map<String, Object>> getVideoChannel(String carNo)throws Exception;
22 26  
23 27 List<Map<String,Object>> getVideoChannelHistoryList(String device,String channel,String dateStr,String token) throws Exception;
... ...
src/main/resources/static/pages/video/video.html
... ... @@ -16,7 +16,7 @@
16 16  
17 17 <div class="row">
18 18 <div class="col-md-4" style="padding-right: 0px;width: 20%">
19   - <div class="portlet light bordered" style="min-height: 715px;">
  19 + <div class="portlet light bordered" style="height: 715px;overflow:scroll">
20 20 <div class="portlet-body">
21 21 <div id="video_tree"></div>
22 22  
... ... @@ -25,8 +25,8 @@
25 25 </div>
26 26  
27 27 <div class="col-md-6" style="padding-left: 0px;width: 76%">
28   - <div class="portlet light bordered" style="height: 715px;">
29   - <div class="portlet-body" style="min-height: 701px;">
  28 + <div class="portlet light bordered" >
  29 + <div class="portlet-body">
30 30 <div class="layui-inline">
31 31 <input type="text" placeholder="请输入车辆编号" autocomplete="off" class="layui-input" id="carCode_like" style="display:inline-block;width: 200px"/>
32 32 <input type="text" placeholder="请输入内部编号" autocomplete="off" class="layui-input" id="insideCode_like" style="display:inline-block;width: 200px"/>
... ... @@ -35,7 +35,25 @@
35 35 <button type="button" class="layui-btn layui-btn-primary" lay-on="get-vercode" onclick="queryTreeTable()">查询</button>
36 36 </div>
37 37  
38   - <table class="layui-hide" id="treeTable"></table>
  38 + <div class="layui-tab layui-tab-card">
  39 + <ul class="layui-tab-title">
  40 + <li class="layui-this">直播</li>
  41 + <li>历史数据</li>
  42 + </ul>
  43 + <div class="layui-tab-content">
  44 + <div class="layui-tab-item layui-show" id="live_broadcastDiv" style="height: 572px;100%">
  45 + <div>分屏:
  46 + <a href="#" class="layui-btn layui-btn-primary layui-btn-xs" onclick="skeyewebplayerOne()">□</a>
  47 + <a href="#" class="layui-btn layui-btn-primary layui-btn-xs" onclick="skeyewebplayerFour()">▤</a>
  48 + <a href="#" class="layui-btn layui-btn-primary layui-btn-xs" onclick="skeyewebplayerNine()">▦</a>
  49 + </div>
  50 + <div id="skeyewebplayerDivContent" >
  51 +
  52 + </div>
  53 + </div>
  54 + <div class="layui-tab-item" style="height: 572px;width: 100%"></div>
  55 + </div>
  56 + </div>
39 57 </div>
40 58 </div>
41 59 </div>
... ...
src/main/resources/static/pages/video/video.js
... ... @@ -16,20 +16,100 @@ $(document).ready(function () {
16 16 function initTree(data) {
17 17 layui.use(function () {
18 18 var tree = layui.tree;
  19 + var opt = initTreeOpt(data, tree);
19 20 // 渲染
20   - tree.render({
21   - elem: '#video_tree',
22   - data: data,
23   - onlyIconControl: true, // 是否仅允许节点左侧图标控制展开收缩
24   - showLine: true, // 是否开启连接线
25   - click: function (node) {
26   - initTable(node);
27   - }
28   - });
  21 + var treeObj = tree.render(opt);
29 22 closeLoading();
30 23 });
31 24 }
32 25  
  26 +function initTreeOpt(data, tree) {
  27 +
  28 + var opt = {
  29 + elem: '#video_tree',
  30 + id: "video_tree",
  31 + data: data,
  32 + onlyIconControl: true, // 是否仅允许节点左侧图标控制展开收缩
  33 + showLine: true, // 是否开启连接线
  34 + click: function (node) {
  35 + loading = loadingFunction();
  36 + if (node.data.type < 400) {
  37 + lasyCarNo(node, tree, data);
  38 + node.initChild = true;
  39 + } else {
  40 + playWvpVideo1(node);
  41 + closeLoading();
  42 + }
  43 +
  44 + }, dblClick: function (node) {
  45 + // lasyCarNo(node,tree,data);
  46 + }
  47 + };
  48 + return opt;
  49 +}
  50 +
  51 +function lasyCarNo(node, tree, oldData) {
  52 + if (isEmpty(node.initChild) || false === node.initChild) {
  53 + if (node.data.type < 200) {
  54 + $.getJSON("/video/tree/carNo/" + node.data.code, function (data) {
  55 + if (oldData) {
  56 + $.each(oldData, function (index, d) {
  57 + layCarNoConcatArr(d, node, data);
  58 + initTable(node);
  59 + });
  60 + closeLoading();
  61 + tree.reload('video_tree', {data: oldData});
  62 +
  63 + }
  64 + });
  65 + } else if (node.data.type > 300) {
  66 + $.getJSON("/video/car/channel/tree/" + node.data.sourceId, function (data) {
  67 + $.each(oldData, function (index, d) {
  68 + layCarNoConcatArr(d, node, data.data, data);
  69 + initTable(node);
  70 +
  71 + });
  72 +
  73 + tree.reload('video_tree', {data: oldData});
  74 + closeLoading();
  75 + });
  76 + } else {
  77 + closeLoading();
  78 + }
  79 +
  80 + }
  81 +
  82 +}
  83 +
  84 +function layCarNoChildren(oldData, node, data, result) {
  85 + if (oldData) {
  86 + $.each(oldData, function (index, d) {
  87 + layCarNoConcatArr(d, node, data, result);
  88 + });
  89 + }
  90 +}
  91 +
  92 +function layCarNoConcatArr(d, node, data, result) {
  93 + if (d.id === node.data.id && d.type === node.data.type) {
  94 + if (isEmpty(d.children)) {
  95 + d.children = [];
  96 + }
  97 + d.spread = true;
  98 + if (result) {
  99 + $.each(data, function (index, d1) {
  100 + d1.wvpLiveBroadcast = result.wvpLiveBroadcast;
  101 + })
  102 + }
  103 +
  104 + d.children = d.children.concat(data);
  105 + if (result) {
  106 + d.wvpLiveBroadcast = result.wvpLiveBroadcast;
  107 + }
  108 + } else {
  109 + layCarNoChildren(d.children, node, data, result);
  110 + }
  111 +}
  112 +
33 113  
34 114 function initTable(treeNode) {
35 115 var queryURL = "/video/tree/table?1=1";
... ... @@ -70,29 +150,29 @@ function initTable(treeNode) {
70 150 });
71 151 }
72 152  
73   -function queryTreeTable(){
74   - let url = treeURL;
75   - if(!isEmpty($("#carCode_like").val())){
76   - url += "&carCode_like="+$("#carCode_like").val();
  153 +function queryTreeTable() {
  154 + let url = treeURL;
  155 + if (!isEmpty($("#carCode_like").val())) {
  156 + url += "&carCode_like=" + $("#carCode_like").val();
77 157 }
78 158  
79   - if(!isEmpty($("#insideCode_like").val())){
80   - url += "&insideCode_like="+$("#insideCode_like").val();
  159 + if (!isEmpty($("#insideCode_like").val())) {
  160 + url += "&insideCode_like=" + $("#insideCode_like").val();
81 161 }
82 162  
83   - if(!isEmpty($("#equipmentCode_like").val())){
84   - url += "&equipmentCode_like="+$("#equipmentCode_like").val();
  163 + if (!isEmpty($("#equipmentCode_like").val())) {
  164 + url += "&equipmentCode_like=" + $("#equipmentCode_like").val();
85 165 }
86 166  
87   - if(!isEmpty($("#carPlate_like").val())){
88   - url += "&carPlate_like="+$("#carPlate_like").val();
  167 + if (!isEmpty($("#carPlate_like").val())) {
  168 + url += "&carPlate_like=" + $("#carPlate_like").val();
89 169 }
90 170 option.url = url;
91 171 var treeTable = layui.treeTable;
92 172 treeTable.render(option);
93 173 }
94 174  
95   -function isEmpty(val){
  175 +function isEmpty(val) {
96 176 return null == val || undefined == val || "" == val;
97 177 }
98 178  
... ... @@ -102,10 +182,10 @@ function initTreeTableOption(queryURL) {
102 182 url: queryURL,
103 183 loading: true,
104 184 treeColIndex: 1,
105   - even:true,
  185 + even: true,
106 186 treeSpid: 0,
107   - limit:5,
108   - limits :[5,10,20,50],
  187 + limit: 5,
  188 + limits: [5, 10, 20, 50],
109 189 maxHeight: '701px',
110 190 cols: [[
111 191 {field: 'name', title: '车辆编号', width: 140},
... ... @@ -189,7 +269,7 @@ function getBigSnap(imageURL, deviceId, channelId) {
189 269 function playWvpVideo(playURL, deviceId, channelId) {
190 270 var idDiv = "video_" + (Date.now());
191 271 var html = "'<div id='" + idDiv + "' style='padding-top: 0;'></div>'";
192   - playURL = playURL.replace("{device}",deviceId).replace("{channel}",channelId);
  272 + playURL = playURL.replace("{device}", deviceId).replace("{channel}", channelId);
193 273  
194 274  
195 275 var index = layer.open({
... ... @@ -204,11 +284,16 @@ function playWvpVideo(playURL, deviceId, channelId) {
204 284  
205 285 }
206 286  
207   -function playVideo(url, ID,time) {
  287 +function playWvpVideo1(node) {
  288 + let url = node.data.wvpLiveBroadcast.replace("{device}", node.data.sourceId).replace("{channel}", node.data.id);
  289 + $("#live_broadcastDiv").html("<iframe src='"+url+"' style='width: 100%;height: 100%' frameborder='0' boder='0'/>");
  290 +}
  291 +
  292 +function playVideo(url, ID, time) {
208 293 return new WebMediaPlayer(url, ID, function () {
209 294 }, {
210 295 autoplay: 1,
211   - currentTime:time
  296 + currentTime: time
212 297 }).play();
213 298 }
214 299  
... ... @@ -220,7 +305,7 @@ function playVideo1(url, ID) {
220 305 }
221 306  
222 307 function playVideo2(url, jqeruyObj, style) {
223   - console.log(url);
  308 +
224 309 let html = " <video id=\"video\" controls=\"\" src=\"" + url + "\" style=\"width:100%; height:100%; object-fit: fill\" autoplay></video>";
225 310 jqeruyObj.html(html);
226 311 }
... ... @@ -282,10 +367,10 @@ function deviceVidemoQueryHistory(device, channel, $deviceVideoDiv, idDiv) {
282 367 if (resp.status === "SUCCESS") {
283 368 var html = "<tr>";
284 369 $.each(resp.data, function (index, node) {
285   - if(isEmpty(node.filePath)){
286   - node.filePath=node.startTime+"_"+index;
  370 + if (isEmpty(node.filePath)) {
  371 + node.filePath = node.startTime + "_" + index;
287 372 }
288   - html += "<td><button class=\"layui-btn layui-btn-primary layui-border\" onclick=\"playDeviceVidemoQueryHistory('" + idDiv + "','" + resp.wvpPlayURL + "','" + device + "','" + channel + "','" + node.startTime + "','" + node.endTime + "','" + resp.token + "')\" title='"+ node.filePath+"'>" + node.filePath + "</button></td>";
  373 + html += "<td><button class=\"layui-btn layui-btn-primary layui-border\" onclick=\"playDeviceVidemoQueryHistory('" + idDiv + "','" + resp.wvpPlayURL + "','" + device + "','" + channel + "','" + node.startTime + "','" + node.endTime + "','" + resp.token + "')\" title='" + node.filePath + "'>" + node.filePath + "</button></td>";
289 374 if (index % 2 === 1) {
290 375 html += "</tr><tr>";
291 376 }
... ... @@ -293,7 +378,7 @@ function deviceVidemoQueryHistory(device, channel, $deviceVideoDiv, idDiv) {
293 378  
294 379 $("#deviceVideoTbody", $deviceVideoDiv).html(html);
295 380 closeLoading();
296   - }else{
  381 + } else {
297 382 closeLoading();
298 383 }
299 384 });
... ... @@ -305,12 +390,12 @@ function playDeviceVidemoQueryHistory(idDiv, url, device, channel, startTime, en
305 390 }
306 391 startTime = startTime.replace("-", "").replace("-", "").replace(":", "").replace(":", "").replace(" ", "");
307 392 endTime = endTime.replace("-", "").replace("-", "").replace(":", "").replace(":", "").replace(" ", "");
308   - console.log(startTime);
  393 +
309 394 url = url + device + "_" + channel + "_" + startTime + "_" + endTime + ".live.mp4";
310   - console.log(url);
  395 +
311 396 var idDiv1 = "device_video_play_" + (Date.now());
312 397 $("#videoPlay", $("#" + idDiv)).html("<div id='" + idDiv1 + "' style='height:550px;width:99%'></div>")
313   - player = playVideo(url, idDiv1,0);
  398 + player = playVideo(url, idDiv1, 0);
314 399  
315 400 }
316 401  
... ... @@ -361,16 +446,16 @@ function skeywebPlayerChannel($skeyewebplayer, carNo) {
361 446 });
362 447 }
363 448  
364   -function skeyewebplayerChannelClick(playURL, btn,deviceId,channelId) {
  449 +function skeyewebplayerChannelClick(playURL, btn, deviceId, channelId) {
365 450 let children = $("#skeyewebplayerDivContent", $("#skeyewebplayer")).children();
366 451 let length = children.length;
367 452 if (length === 1) {
368   - displaySkeyewebplayerChannel(children[0], playURL, btn,deviceId,channelId);
  453 + displaySkeyewebplayerChannel(children[0], playURL, btn, deviceId, channelId);
369 454 } else if (length > 1) {
370 455 for (let i = 0; i < length; i++) {
371 456 let classCss = $(children[i]).attr("class");
372 457 if (classCss.indexOf("skeyewebplayerDivContent_play_selected") > -1) {
373   - displaySkeyewebplayerChannel(children[i], playURL, btn,deviceId,channelId);
  458 + displaySkeyewebplayerChannel(children[i], playURL, btn, deviceId, channelId);
374 459 break;
375 460 }
376 461 }
... ... @@ -379,48 +464,48 @@ function skeyewebplayerChannelClick(playURL, btn,deviceId,channelId) {
379 464  
380 465 }
381 466  
382   -function displaySkeyewebplayerChannel(htmlNode, playURL, btn,deviceId,channelId) {
  467 +function displaySkeyewebplayerChannel(htmlNode, playURL, btn, deviceId, channelId) {
383 468 loading = loadingFunction();
384 469 let $htmlNode = $(htmlNode);
385 470 let $btn = $(btn);
386 471 deviceId = $btn.attr("deviceId");
387   - channelId = $btn.attr("channelId");
  472 + channelId = $btn.attr("channelId");
388 473  
389 474  
390   - let htmlObj = $("div[class='skeyewebplayerDiv_play_content']", $htmlNode);
  475 + let htmlObj = $("div[class='skeyewebplayerDiv_play_content']", $htmlNode);
391 476  
392 477 htmlObj.html("");
393 478 $("div[class='skeyewebplayerDiv_title']", $htmlNode).html($btn.attr("channelNode"));
394   - playURL = playURL.replace("{device}",deviceId).replace("{channel}",channelId);
395   - let playURL1 = "<iframe style='width:100%;height:100%;' src ='"+playURL+"'/>";
  479 + playURL = playURL.replace("{device}", deviceId).replace("{channel}", channelId);
  480 + let playURL1 = "<iframe style='width:100%;height:100%;' src ='" + playURL + "'/>";
396 481  
397 482 htmlObj.html(playURL1);
398 483 closeLoading();
399 484 }
400 485  
401 486 function skeyewebplayerOne() {
402   - skeyWebPlayer(1, "skeyewebplayer");
  487 + skeyWebPlayer(1, "live_broadcastDiv");
403 488 }
404 489  
405 490 function skeyewebplayerFour() {
406   - skeyWebPlayer(4, "skeyewebplayer");
  491 + skeyWebPlayer(4, "live_broadcastDiv");
407 492 }
408 493  
409 494 function skeyewebplayerNine() {
410   - skeyWebPlayer(9, "skeyewebplayer");
  495 + skeyWebPlayer(9, "live_broadcastDiv");
411 496 }
412 497  
413 498 function skeyWebPlayer(len, parentId) {
414   - var $skeyewebplayerDivContent = $("#skeyewebplayerDivContent", $("#" + parentId));
  499 + var $skeyewebplayerDivContent = $("#skeyewebplayerDivContent123", $("#" + parentId));
415 500 var classCss = "skeyewebplayerDivContent_one";
416   - let width = $(window).width();
  501 + let width = $(window).width()*0.75;
417 502 width = width - width * 0.1;
418   - $skeyewebplayerDivContent.attr("style", "width:" + width + "px;height:98%;float:right");
419   - skeyWebPlayer_myVar = setInterval(function () {
420   - width = $(window).width();
421   - width = width - width * 0.1;
422   - $skeyewebplayerDivContent.attr("style", "width:" + width + "px;height:98%;float:right");
423   - }, 1000);
  503 + // $skeyewebplayerDivContent.attr("style", "width:100%;height:98%;float:right");
  504 + // skeyWebPlayer_myVar = setInterval(function () {
  505 + // width = $(window).width();
  506 + // width = width - width * 0.1;
  507 + // // $skeyewebplayerDivContent.attr("style", "width:100%;height:98%;float:right");
  508 + // }, 1000);
424 509  
425 510 if (len === 4) {
426 511 classCss = "skeyewebplayerDivContent_Four";
... ... @@ -428,6 +513,7 @@ function skeyWebPlayer(len, parentId) {
428 513 classCss = "skeyewebplayerDivContent_nine";
429 514 }
430 515  
  516 + console.log($skeyewebplayerDivContent)
431 517 var html = "";
432 518 for (let i = 0; i < len; i++) {
433 519 html += "<div class='" + classCss + "' id='skeyewebplayerDivContent_play_" + i + "' onclick=\"skeyewebplayerDivContent_play_click(this)\"><div class='skeyewebplayerDiv_title'>";
... ...
src/main/resources/static/pages/video/videoPage.html
1 1 <script type="text/javascript">
2 2 var url = window.location.href;
3   - url= url.substring(0,url.indexOf("/pages/"))+"/video/video.html";
  3 + url= url.substring(0,url.indexOf("/pages/"))+"/other/video/video.html";
4 4 window.location.href=url;
5 5 </script>
... ...