Selaa lähdekoodia

保存初始画面接口

dengsixing 3 vuotta sitten
vanhempi
commit
fe2cce0dbd

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/SceneApplication.java

@@ -7,8 +7,10 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @SpringBootApplication
+@EnableTransactionManagement//开启事务
 @EnableFeignClients("com.fdkankan.*.api.feign")
 @EnableDiscoveryClient
 @EnableScheduling

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -132,4 +132,9 @@ public class SceneJsonBean {
      */
     private Integer floorPublishVer;
 
+    /**
+     * 初始点信息
+     */
+    private String entry;
+
 }

+ 2 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -184,7 +184,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveInitialPage")
-    public ResultData saveInitialPage(@RequestBody SceneEditParamVO param) throws Exception {
+    public ResultData saveInitialPage(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
         return sceneProService.saveInitialPage(param);
     }
 
@@ -719,7 +719,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/video/box/save")
-    public ResultData saveVideoBox(@RequestBody @Validated SaveVidoeBoxParamVO param) throws Exception {
+    public ResultData saveVideoBox(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
         return sceneEditInfoService.saveVideoBox(param);
     }
 

+ 4 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -127,8 +127,10 @@ public class TestController {
 //        folderService.updateById(byId);
 
 //        this.redisTemplate.opsForValue().setIfAbsent("test:lock:123", "123", (long)100000, TimeUnit.MILLISECONDS);
-        String key = String.format(RedisLockKey.LOCK_SCENE_SYNC, "123");
-        redisLockUtil.lock(key, 100000);
+//        String key = String.format(RedisLockKey.LOCK_SCENE_SYNC, "123");
+//        redisLockUtil.lock(key, 100000);
+
+
         return "123123";
 
     }

+ 6 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -146,6 +146,12 @@ public class SceneEditInfo implements Serializable {
     private Byte buildVideoStatus;
 
     /**
+     * 初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
      * 创建时间
      */
     @TableField("create_time")

+ 1 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.vo.*;
 import java.io.IOException;
 import java.util.List;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
@@ -41,7 +40,7 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     void saveTagsToSceneEditInfo(String num, Long sceneProId, SceneEditInfo sceneEditInfo);
 
-    ResultData saveVideoBox(SaveVidoeBoxParamVO param) throws Exception;
+    ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;
 
     ResultData deleteVideoBox(DeleteVidoeBoxParamVO param) throws Exception;
 

+ 2 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -6,6 +6,7 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.vo.DeleteHotParamVO;
+import com.fdkankan.scene.vo.FileNameAndDataParamVO;
 import com.fdkankan.scene.vo.SaveHotParamVO;
 import com.fdkankan.scene.vo.BaseDataParamVO;
 import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
@@ -66,7 +67,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception;
 
-    ResultData saveInitialPage(SceneEditParamVO base) throws Exception;
+    ResultData saveInitialPage(FileNameAndDataParamVO param) throws Exception;
 
     ResultData getScreencapVoice(SceneEditParamVO base) throws Exception;
 

+ 1 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -28,7 +28,6 @@ import com.fdkankan.scene.entity.SceneDataDownload;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.entity.SceneProEdit;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.MusicHandlerFactory;
@@ -670,7 +669,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData saveVideoBox(SaveVidoeBoxParamVO param) throws Exception {
+    public ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception {
 
         JSONObject boxVideo = JSONObject.parseObject(param.getData());
         String sid = boxVideo.getString("sid");

+ 21 - 22
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -844,37 +845,35 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return ResultData.ok();
     }
 
+    @Transactional
     @Override
-    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception{
-        if(StrUtil.isEmpty(base.getNum()) || StrUtil.isEmpty(base.getInitialPoint())){
-            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-        }
+    public ResultData saveInitialPage(FileNameAndDataParamVO param) throws Exception{
 
-        ScenePro scenePro = findBySceneNum(base.getNum());
+        ScenePro scenePro = this.findBySceneNum(param.getNum());
         if(scenePro == null){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
 
-        String imagesDirPath = String.format(ConstantFilePath.IMAGESBUFFER_FORMAT, base.getNum());
-        String path1 = imagesDirPath + "thumbBigImg.jpg";
-        String path2 = imagesDirPath + "thumbSmallImg.jpg";
+        //更新缩略图url
+        String thumbUrl = this.ossUrlPrefix + String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + param.getFileName();
+        scenePro.setThumb(thumbUrl);
+        this.updateById(scenePro);
+
+        SceneEditInfo sceneEditInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        if(sceneEditInfo == null){
+            sceneEditInfo = new SceneEditInfo();
+            sceneEditInfo.setSceneProId(scenePro.getId());
+            sceneEditInfo.setEntry(param.getData());
+            sceneEditInfoService.save(sceneEditInfo);
+        }else{
+            sceneEditInfoService.update(
+                new LambdaUpdateWrapper<SceneEditInfo>()
+                    .set(SceneEditInfo::getEntry, param.getData())
+                    .setSql("version = version + 1")
+                    .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
 
-        //生成缩略图
-        //按指定大小把图片进行缩和放(会遵循原图高宽比例)
-        //此处把图片压成1024×512的缩略图
-        Thumbnails.of(path1).size(1024,512).toFile(path2);//变为1024×512
 
-        String strsceneInfos = FileUtils.readFile(ConstantFilePath.SCENE_PATH + "data/data" + scenePro.getNum() + File.separator + "scene.json");
-        JSONObject scenejson = new JSONObject();
-        if(strsceneInfos!=null) {
-            scenejson = JSONObject.parseObject(strsceneInfos);
         }
-        String sceneJsonPath = String.format(ConstantFilePath.SCENE_PATH_FORMAT, scenePro.getNum());
-        Map map = new HashMap();
-        map.put("entry", JSONObject.parseObject(base.getInitialPoint()));
-        map.put("thumbImg", 1);
-        map.put("version", scenejson.getIntValue("version")+1);
-        FileUtils.writeJsonFile(sceneJsonPath, map);
 
         return ResultData.ok();
     }

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SaveVidoeBoxParamVO.java

@@ -12,7 +12,7 @@ import lombok.Data;
  * @since 2022/2/18
  **/
 @Data
-public class SaveVidoeBoxParamVO extends BaseDataParamVO{
+public class FileNameAndDataParamVO extends BaseDataParamVO{
 
     /**
      * 视频文件名

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -117,6 +117,11 @@ public class SceneInfoVO {
 
     private Integer floorPublishVer;
 
+    /**
+     * 初始点信息
+     */
+    private String entry;
+