|
@@ -2184,7 +2184,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
|
|
|
@Override
|
|
|
// @SystemServiceLog(description = "保存场景热点")
|
|
|
- public ResultData saveHot(SaveHotParamVO param) throws Exception {
|
|
|
+ public ResultData tagSave(SaveHotParamVO param) throws Exception {
|
|
|
|
|
|
ScenePro scenePro = this.findBySceneNum(param.getNum());
|
|
|
if (scenePro == null)
|
|
@@ -2638,67 +2638,57 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
|
|
|
@Override
|
|
|
// @SystemServiceLog(description = "保存热点可见性的数据")
|
|
|
- public ResultData saveHotVisible(SceneEditParamVO base) throws Exception {
|
|
|
- if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getNum())){
|
|
|
- throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
|
|
|
- }
|
|
|
+ public ResultData saveTagsVisible(SaveTagsVisibleParamVO param) throws Exception {
|
|
|
|
|
|
- ScenePro scenePro = findBySceneNum(base.getNum());
|
|
|
+ ScenePro scenePro = findBySceneNum(param.getNum());
|
|
|
if (scenePro == null ) {
|
|
|
return ResultData.error(ErrorCode.FAILURE_CODE_5005);
|
|
|
}
|
|
|
+ JSONArray visiblePanos = JSONArray.parseArray(param.getData());
|
|
|
|
|
|
- JSONArray visiblePanos = JSONArray.parseArray(base.getData());
|
|
|
-
|
|
|
- StringBuffer dataBuf = new StringBuffer()
|
|
|
- .append("data").append(File.separator)
|
|
|
- .append("data").append(scenePro.getNum())
|
|
|
- .append(File.separator);
|
|
|
- StringBuffer imagesBuf = new StringBuffer()
|
|
|
- .append("images").append(File.separator)
|
|
|
- .append("images").append(scenePro.getNum())
|
|
|
- .append(File.separator);
|
|
|
-
|
|
|
- StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
|
|
|
- StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
|
|
|
+ //从缓存中获取热点数据,如果为空,抛出异常
|
|
|
+ String key = String.format(RedisKey.SCENE_HOT_DATA, param.getNum());
|
|
|
+ Map<String, String> map = redisUtil.hmget(key);
|
|
|
+ List<Entry<String, String>> allTags = map.entrySet().stream().filter(item -> {
|
|
|
+ if (StrUtil.isBlank(item.getValue())) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
|
- File file = new File(dataBuffer.toString() + "hot.json");
|
|
|
- if (!file.exists()) {
|
|
|
- throw new BusinessException(ErrorCode.FAILURE_CODE_3018);
|
|
|
+ if (CollUtil.isEmpty(allTags)) {
|
|
|
+ throw new BusinessException(ErrorCode.FAILURE_CODE_7005);
|
|
|
}
|
|
|
|
|
|
- String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
|
|
|
- JSONArray hots = JSONArray.parseArray(str);
|
|
|
- for (int i = 0; i < hots.size(); ++i) {
|
|
|
- JSONObject hot = hots.getJSONObject(i);
|
|
|
- for (int j = 0; j < visiblePanos.size(); ++j) {
|
|
|
- if (hot.getString("sid").equals(((JSONObject) visiblePanos.get(j)).getString("sid"))) {
|
|
|
- hot.put("visiblePanos", ((JSONObject) visiblePanos.get(j)).getJSONArray("value"));
|
|
|
+ allTags.stream().forEach(entry->{
|
|
|
+ JSONObject hot = JSON.parseObject(entry.getValue());
|
|
|
+ visiblePanos.stream().forEach(item->{
|
|
|
+ if (hot.getString("sid").equals(((JSONObject) item).getString("sid"))) {
|
|
|
+ hot.put("visiblePanos", ((JSONObject) item).getJSONArray("value"));
|
|
|
+ entry.setValue(hot.toJSONString());
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
|
|
|
- JSONObject scenejson = new JSONObject();
|
|
|
- if(strsceneInfos!=null){
|
|
|
- scenejson = JSONObject.parseObject(strsceneInfos);
|
|
|
- }
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
- scenejson.put("version", scenejson.getIntValue("version") + 1);
|
|
|
- FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
|
|
|
+ //更新版本号
|
|
|
+ SceneEditInfo editInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
|
|
|
+ sceneEditInfoService.upgradeVersionById(editInfo.getId());
|
|
|
|
|
|
- SceneProEdit sceneProEdit = sceneProEditService.findByProId(scenePro.getId());
|
|
|
- sceneProEdit.setVersion(sceneProEdit.getVersion() + 1);
|
|
|
- sceneProEdit.setUpdateTime(Calendar.getInstance().getTime());
|
|
|
- sceneProEditService.updateById(sceneProEdit);
|
|
|
+ //放入缓存
|
|
|
+ Map<String, String> finalMap = new HashMap<>();
|
|
|
+ allTags.stream().forEach(entry->{
|
|
|
+ finalMap.put(entry.getKey(), entry.getValue());
|
|
|
+ });
|
|
|
+
|
|
|
+ //从新放入缓存
|
|
|
+ redisUtil.hmset(key, finalMap);
|
|
|
|
|
|
- FileUtils.deleteFile(dataBuffer.toString() + "hot.json");
|
|
|
- FileUtils.writeFile(dataBuffer.toString() + "hot.json", hots.toString());
|
|
|
return ResultData.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
// @SystemServiceLog(description = "漫游可行")
|
|
|
- public ResultData saveLinkPano(SaveRoamParamVO param) throws Exception {
|
|
|
+ public ResultData saveRoam(SaveRoamParamVO param) throws Exception {
|
|
|
|
|
|
ScenePro scenePro = this.findBySceneNum(param.getNum());
|
|
|
if (scenePro == null ) {
|
|
@@ -2757,9 +2747,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
editInfo.setSceneProId(scenePro.getId());
|
|
|
sceneEditInfoService.save(editInfo);
|
|
|
}else{
|
|
|
- sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
|
|
|
- .setSql("version=version+" + 1)
|
|
|
- .eq(SceneEditInfo::getId, editInfo.getId()));
|
|
|
+ sceneEditInfoService.upgradeVersionById(editInfo.getId());
|
|
|
}
|
|
|
|
|
|
|