|
@@ -11,8 +11,10 @@ import com.gis.common.util.*;
|
|
|
import com.gis.domain.dto.PageDto;
|
|
|
import com.gis.domain.dto.SomeDataDto;
|
|
|
import com.gis.domain.dto.WorkDto;
|
|
|
+import com.gis.domain.entity.FodderEntity;
|
|
|
import com.gis.domain.entity.WorkEntity;
|
|
|
import com.gis.mapper.*;
|
|
|
+import com.gis.service.FodderService;
|
|
|
import com.gis.service.SceneService;
|
|
|
import com.gis.service.WorkService;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
@@ -68,6 +70,9 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
@Autowired
|
|
|
RedisUtil redisUtil;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ FodderService fodderService;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -252,7 +257,6 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
WorkEntity entity = findByIdForUpdate(id);
|
|
|
if (entity == null) {
|
|
|
log.error("作品已被删除,无法编辑, id: " + id);
|
|
|
-// throw new BaseRuntimeException(MsgCode.e3006, "作品已被删除,无法编辑, id: " + id);
|
|
|
throw new BaseRuntimeException(ErrorEnum.FAILURE_SYS_3001.code(), "作品已被删除,无法编辑, id: " + id);
|
|
|
}
|
|
|
try {
|
|
@@ -263,7 +267,6 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
}
|
|
|
String userNameForToken = getUserNameForToken();
|
|
|
if (!userNameForToken.equals(entity.getUserId())) {
|
|
|
-// return Result.failure(MsgCode.e3005, "当前无操作权限");
|
|
|
return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
|
|
|
}
|
|
|
|
|
@@ -274,18 +277,50 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
}
|
|
|
|
|
|
log.info("更新作品完成");
|
|
|
+ JSONObject someDataToJson = someDataToJson(param);
|
|
|
// 保存someData.json
|
|
|
editSomeData(param);
|
|
|
|
|
|
+ // 更新跟目录tour.xml 2022-09-15
|
|
|
+ updateTour(someDataToJson, id);
|
|
|
+
|
|
|
return Result.success();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 更新作品实体信息
|
|
|
+ * 更新 tour.xml
|
|
|
+ * @param someDataToJson
|
|
|
+ * @param id
|
|
|
*/
|
|
|
- private boolean editEntity(SomeDataDto param, WorkEntity entity) {
|
|
|
+ private void updateTour(JSONObject someDataToJson, String id) {
|
|
|
+ String scenes = someDataToJson.getString("scenes");
|
|
|
+ BaseRuntimeException.isBlank(scenes, null, "someData的场景码参数未空");
|
|
|
+ List<FodderEntity> list = fodderService.batchBySceneCodes(getSceneCodesList(scenes));
|
|
|
+
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ for (FodderEntity entity : list) {
|
|
|
+ String tour = entity.getTour();
|
|
|
+ builder.append(tour).append("\r\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ String tourPath = configConstant.serverBasePath + id + "/tour.xml";
|
|
|
+ FileUtil.writeUtf8String(builder.toString(), tourPath);
|
|
|
+ log.info("作品tour.xml写入完成");
|
|
|
|
|
|
+ // 上传oss
|
|
|
+ BaseRuntimeException.isTrue(!FileUtil.isFile(tourPath), ErrorEnum.FAILURE_CODE_3103.code(), "服务器tour.xml文件不存在");
|
|
|
+
|
|
|
+ String ossKeyPath = configConstant.ossBasePath + id + "/tour.xml";
|
|
|
+ aliyunOssUtil.upload(tourPath, ossKeyPath);
|
|
|
+ log.info("tour.xml上传完成 : {}", ossKeyPath);
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新作品实体信息
|
|
|
+ */
|
|
|
+ private boolean editEntity(SomeDataDto param, WorkEntity entity) {
|
|
|
String someData = param.getSomeData();
|
|
|
JSONObject sd = JSONObject.parseObject(someData);
|
|
|
entity.setName(sd.getString("name"));
|
|
@@ -316,10 +351,32 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * someDataToJson
|
|
|
+ * @param param someDataStr
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private JSONObject someDataToJson(SomeDataDto param){
|
|
|
+ String someData = param.getSomeData();
|
|
|
+ JSONObject sd = JSONObject.parseObject(someData);
|
|
|
+ return sd;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 传入参数是一个数组json字符串
|
|
|
* @param param
|
|
|
*/
|
|
|
private String getSceneCodes(String param){
|
|
|
+ List<String> list = getSceneCodesList(param);
|
|
|
+ String join = StringUtils.join(list, ",");
|
|
|
+ return join;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 场景码字符串转list
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<String> getSceneCodesList(String param){
|
|
|
JSONArray array = JSONArray.parseArray(param);
|
|
|
List<String> list = new ArrayList<>();
|
|
|
for (Object o : array) {
|
|
@@ -327,12 +384,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
String sceneCode = parse.getString("sceneCode");
|
|
|
list.add(sceneCode);
|
|
|
}
|
|
|
-
|
|
|
- String join = StringUtils.join(list, ",");
|
|
|
-
|
|
|
- return join;
|
|
|
-
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -370,7 +422,6 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
|
|
|
|
|
|
// 保存oss
|
|
|
if (!FileUtil.isFile(saveSomeDataPath)) {
|
|
|
-// Result.failure("服务器someData.json文件不存在");
|
|
|
Result.failure(ErrorEnum.FAILURE_CODE_3103.code(), "服务器someData.json文件不存在");
|
|
|
}
|
|
|
|