|
@@ -71,7 +71,10 @@ public class UploadSceneListener {
|
|
|
private ICommonService commonService;
|
|
private ICommonService commonService;
|
|
|
@Resource
|
|
@Resource
|
|
|
private RedisUtil redisUtil;
|
|
private RedisUtil redisUtil;
|
|
|
-
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISurveillanceService surveillanceService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISceneEvidenceService sceneEvidenceService;
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -237,110 +240,162 @@ public class UploadSceneListener {
|
|
|
sceneEditControls.setCreateTime(null);
|
|
sceneEditControls.setCreateTime(null);
|
|
|
sceneEditControlsService.save(sceneEditControls);
|
|
sceneEditControlsService.save(sceneEditControls);
|
|
|
|
|
|
|
|
|
|
+ //监控视频
|
|
|
|
|
+ surveillanceService.removeByNum(num);
|
|
|
|
|
+ String ossKey = String.format(UploadFilePath.USER_VIEW_PATH,num) + "surveillance.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String str = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ List<Surveillance> list = JSON.parseObject(str, List.class);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(list)){
|
|
|
|
|
+ list.stream().forEach(v->{
|
|
|
|
|
+ v.setId(null);
|
|
|
|
|
+ v.setNum(num);
|
|
|
|
|
+ });
|
|
|
|
|
+ surveillanceService.saveBatch(list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //痕迹物证
|
|
|
|
|
+ sceneEvidenceService.removeByNum(num);
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH,num) + "evidence.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String str = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ List<JSONObject> evidenceContents = JSON.parseObject(str, List.class);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(evidenceContents)){
|
|
|
|
|
+ List<SceneEvidence> sceneEvidenceList = evidenceContents.stream().map(v -> {
|
|
|
|
|
+ SceneEvidence sceneEvidence = new SceneEvidence();
|
|
|
|
|
+ sceneEvidence.setNum(num);
|
|
|
|
|
+ sceneEvidence.setSid(v.getString("sid"));
|
|
|
|
|
+ sceneEvidence.setEvidenceContent(v);
|
|
|
|
|
+ return sceneEvidence;
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ sceneEvidenceService.saveBatch(sceneEvidenceList);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
//马赛克
|
|
//马赛克
|
|
|
- String mosaicStr = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH,num) + "mosaic.json");
|
|
|
|
|
- JSONArray mosaicArr = JSON.parseArray(mosaicStr);
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_MOSAIC_DATA, num));
|
|
|
|
|
+ JSONArray mosaicArr = jsonObject.getJSONArray("mosaicList");
|
|
|
if(CollUtil.isNotEmpty(mosaicArr)){
|
|
if(CollUtil.isNotEmpty(mosaicArr)){
|
|
|
- Map<String, String> map = mosaicArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
|
|
+ Map<String, String> map = mosaicArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("panoId"), v->JSON.toJSONString(v)));
|
|
|
if(CollUtil.isNotEmpty(map)){
|
|
if(CollUtil.isNotEmpty(map)){
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_MOSAIC_DATA, num));
|
|
|
|
|
redisUtil.hmset(String.format(RedisKey.SCENE_MOSAIC_DATA, num), map);
|
|
redisUtil.hmset(String.format(RedisKey.SCENE_MOSAIC_DATA, num), map);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//热点
|
|
//热点
|
|
|
- String hotJsonStr = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH, num) + "hot.json");
|
|
|
|
|
- JSONArray hotJsonArr = JSON.parseArray(hotJsonStr);
|
|
|
|
|
- if(CollUtil.isNotEmpty(hotJsonArr)){
|
|
|
|
|
- Map<String, String> allTagsMap = hotJsonArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
- if(CollUtil.isNotEmpty(allTagsMap)){
|
|
|
|
|
- redisUtil.hmset(String.format(RedisKey.SCENE_HOT_DATA, num), allTagsMap);
|
|
|
|
|
-
|
|
|
|
|
- //热点图标
|
|
|
|
|
- List<JSONObject> tags = allTagsMap.entrySet().stream().map(entry -> JSON.parseObject(entry.getValue())).collect(Collectors.toList());
|
|
|
|
|
- Set<String> icons = tags.stream()
|
|
|
|
|
- .filter(v-> StrUtil.isNotEmpty(v.getString("icon")) && !v.getString("icon").contains("svg"))
|
|
|
|
|
- .map(v-> v.getString("icon"))
|
|
|
|
|
- .collect(Collectors.toSet());
|
|
|
|
|
- if(!icons.isEmpty()){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_HOT_ICONS, num));
|
|
|
|
|
- redisUtil.sSet(String.format(RedisKey.SCENE_HOT_ICONS, num), icons.toArray());
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_HOT_DATA, num));
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_HOT_ICONS, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH, num) + "hot.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String hotJsonStr = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ JSONArray hotJsonArr = JSON.parseArray(hotJsonStr);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(hotJsonArr)){
|
|
|
|
|
+ Map<String, String> allTagsMap = hotJsonArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
+ if(CollUtil.isNotEmpty(allTagsMap)){
|
|
|
|
|
+ redisUtil.hmset(String.format(RedisKey.SCENE_HOT_DATA, num), allTagsMap);
|
|
|
|
|
+
|
|
|
|
|
+ //热点图标
|
|
|
|
|
+ List<JSONObject> tags = allTagsMap.entrySet().stream().map(entry -> JSON.parseObject(entry.getValue())).collect(Collectors.toList());
|
|
|
|
|
+ Set<String> icons = tags.stream()
|
|
|
|
|
+ .filter(v-> StrUtil.isNotEmpty(v.getString("icon")) && !v.getString("icon").contains("svg"))
|
|
|
|
|
+ .map(v-> v.getString("icon"))
|
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
+ if(!icons.isEmpty()){
|
|
|
|
|
+ redisUtil.sSet(String.format(RedisKey.SCENE_HOT_ICONS, num), icons.toArray());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//场景关联
|
|
//场景关联
|
|
|
- String linkStr = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH,num) + "links.json");
|
|
|
|
|
- JSONArray LinkArr = JSON.parseArray(linkStr);
|
|
|
|
|
- if(CollUtil.isNotEmpty(LinkArr)){
|
|
|
|
|
- Map<String, String> map = LinkArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
- if(CollUtil.isNotEmpty(map)){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_LINKPAN_DATA, num));
|
|
|
|
|
- redisUtil.hmset(String.format(RedisKey.SCENE_LINKPAN_DATA, num), map);
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_LINKPAN_DATA, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH,num) + "links.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String linkStr = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ JSONArray LinkArr = JSON.parseArray(linkStr);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(LinkArr)){
|
|
|
|
|
+ Map<String, String> map = LinkArr.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
+ if(CollUtil.isNotEmpty(map)){
|
|
|
|
|
+ redisUtil.hmset(String.format(RedisKey.SCENE_LINKPAN_DATA, num), map);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- //{"createTime":1768997242023,"type":"enter","url":"enter-style-InWWW972225.jpg","sid":"InWWW972225"}
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//滤镜
|
|
//滤镜
|
|
|
- String fileContent = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH, num) + "filter.json");
|
|
|
|
|
- List<JSONObject> collect = JSON.parseObject(fileContent, ArrayList.class);
|
|
|
|
|
- if(CollUtil.isNotEmpty(collect)){
|
|
|
|
|
- List<String> list = collect.stream().map(v->JSON.toJSONString(v)).collect(Collectors.toList());
|
|
|
|
|
- if(!list.isEmpty()){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_filter_DATA, num));
|
|
|
|
|
- redisUtil.lLeftPushAll(String.format(RedisKey.SCENE_filter_DATA, num), list);
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_filter_DATA, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH, num) + "filter.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String fileContent = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ List<JSONObject> collect = JSON.parseObject(fileContent, ArrayList.class);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(collect)){
|
|
|
|
|
+ List<String> list = collect.stream().map(v->JSON.toJSONString(v)).collect(Collectors.toList());
|
|
|
|
|
+ if(!list.isEmpty()){
|
|
|
|
|
+ redisUtil.lLeftPushAll(String.format(RedisKey.SCENE_filter_DATA, num), list);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
//指示牌
|
|
//指示牌
|
|
|
- String billboardsStr = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH, num) + "billboards.json");
|
|
|
|
|
- JSONArray billboards = JSON.parseArray(billboardsStr);
|
|
|
|
|
- if(CollUtil.isNotEmpty(billboards)){
|
|
|
|
|
- Map<String, String> allTagsMap = billboards.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
- if(!allTagsMap.isEmpty()){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_BILLBOARDS, num));
|
|
|
|
|
- redisUtil.hmset(String.format(RedisKey.SCENE_BILLBOARDS, num), allTagsMap);
|
|
|
|
|
- }
|
|
|
|
|
- List<JSONObject> billboardList = allTagsMap.values().stream().map(str -> JSON.parseObject(str)).collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //指示牌图标
|
|
|
|
|
- List<String> sytlelist = billboardList.stream()
|
|
|
|
|
- .filter(v->StrUtil.isNotEmpty(v.getString("icon")) && !v.getString("icon").contains("style-"))
|
|
|
|
|
- .map(v-> {
|
|
|
|
|
- String url = v.getString("icon");
|
|
|
|
|
- String sid = FileUtil.getPrefix(url);
|
|
|
|
|
- JSONObject iconObj = new JSONObject();
|
|
|
|
|
- iconObj.put("url", url);
|
|
|
|
|
- iconObj.put("sid", sid);
|
|
|
|
|
- iconObj.put("createTime", Calendar.getInstance().getTimeInMillis());
|
|
|
|
|
- return iconObj.toJSONString();
|
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
- if(CollUtil.isNotEmpty(sytlelist)){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_BILLBOARDS_STYLES, num));
|
|
|
|
|
- redisUtil.sSet(String.format(RedisKey.SCENE_BILLBOARDS_STYLES, num), new HashSet<>(sytlelist).toArray());
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_BILLBOARDS, num));
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_BILLBOARDS_STYLES, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH, num) + "billboards.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String billboardsStr = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ JSONArray billboards = JSON.parseArray(billboardsStr);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(billboards)){
|
|
|
|
|
+ Map<String, String> allTagsMap = billboards.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
+ if(!allTagsMap.isEmpty()){
|
|
|
|
|
+ redisUtil.hmset(String.format(RedisKey.SCENE_BILLBOARDS, num), allTagsMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<JSONObject> billboardList = allTagsMap.values().stream().map(str -> JSON.parseObject(str)).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ //指示牌图标
|
|
|
|
|
+ List<String> sytlelist = billboardList.stream()
|
|
|
|
|
+ .filter(v->StrUtil.isNotEmpty(v.getString("icon")) && !v.getString("icon").contains("style-"))
|
|
|
|
|
+ .map(v-> {
|
|
|
|
|
+ String url = v.getString("icon");
|
|
|
|
|
+ String sid = FileUtil.getPrefix(url);
|
|
|
|
|
+ JSONObject iconObj = new JSONObject();
|
|
|
|
|
+ iconObj.put("url", url);
|
|
|
|
|
+ iconObj.put("sid", sid);
|
|
|
|
|
+ iconObj.put("createTime", Calendar.getInstance().getTimeInMillis());
|
|
|
|
|
+ return iconObj.toJSONString();
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ if(CollUtil.isNotEmpty(sytlelist)){
|
|
|
|
|
+ redisUtil.sSet(String.format(RedisKey.SCENE_BILLBOARDS_STYLES, num), new HashSet<>(sytlelist).toArray());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
//模型裁剪
|
|
//模型裁剪
|
|
|
- String cutModelStr = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH, num) + "cutModel.json");
|
|
|
|
|
- if(StrUtil.isNotEmpty(cutModelStr)){
|
|
|
|
|
- JSONArray cutModels = JSON.parseArray(cutModelStr);
|
|
|
|
|
- Map<String, String> map = cutModels.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
- if(!map.isEmpty()){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_CUT_MODEL, num));
|
|
|
|
|
- redisUtil.hmset(String.format(RedisKey.SCENE_CUT_MODEL, num), map);
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_CUT_MODEL, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH, num) + "cutModel.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String cutModelStr = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ if(StrUtil.isNotEmpty(cutModelStr)){
|
|
|
|
|
+ JSONArray cutModels = JSON.parseArray(cutModelStr);
|
|
|
|
|
+ Map<String, String> map = cutModels.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
+ if(!map.isEmpty()){
|
|
|
|
|
+ redisUtil.hmset(String.format(RedisKey.SCENE_CUT_MODEL, num), map);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//空间绘制
|
|
//空间绘制
|
|
|
- String sceneDrawFileContent = fYunFileService.getFileContent(String.format(UploadFilePath.USER_VIEW_PATH, num) + "sceneDraw.json");
|
|
|
|
|
- if(StrUtil.isNotEmpty(sceneDrawFileContent)){
|
|
|
|
|
- JSONArray objects = JSON.parseArray(sceneDrawFileContent);
|
|
|
|
|
- Map<String, String> map = objects.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
- if(!map.isEmpty()){
|
|
|
|
|
- redisUtil.del(String.format(RedisKey.SCENE_DRAW, num));
|
|
|
|
|
- redisUtil.hmset(String.format(RedisKey.SCENE_DRAW, num), map);
|
|
|
|
|
|
|
+ redisUtil.del(String.format(RedisKey.SCENE_DRAW, num));
|
|
|
|
|
+ ossKey = String.format(UploadFilePath.USER_VIEW_PATH, num) + "sceneDraw.json";
|
|
|
|
|
+ if(fYunFileService.fileExist(ossKey)){
|
|
|
|
|
+ String sceneDrawFileContent = fYunFileService.getFileContent(ossKey);
|
|
|
|
|
+ if(StrUtil.isNotEmpty(sceneDrawFileContent)){
|
|
|
|
|
+ JSONArray objects = JSON.parseArray(sceneDrawFileContent);
|
|
|
|
|
+ Map<String, String> map = objects.stream().collect(Collectors.toMap(v->((JSONObject)v).getString("sid"), v->JSON.toJSONString(v)));
|
|
|
|
|
+ if(!map.isEmpty()){
|
|
|
|
|
+ redisUtil.hmset(String.format(RedisKey.SCENE_DRAW, num), map);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|