Jelajahi Sumber

修复bug 35546 计算接口没有生成t_scene_edit_info_ext表记录,导致再次上传时,报空指针

dsx 2 tahun lalu
induk
melakukan
73fbf0d08e

+ 9 - 4
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -855,8 +855,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 sceneEditInfo.setScenePassword(sceneKey);
                 sceneEditControls.setShowLock((int) CommonStatus.YES.code());
             }
-
             sceneEditInfoService.save(sceneEditInfo);
+
+            sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
+            sceneEditInfoExt.setScenePlusId(scenePlus.getId());
+            sceneEditInfoExtService.save(sceneEditInfoExt);
+
             sceneEditControls.setEditInfoId(sceneEditInfo.getId());
             sceneEditControlsService.save(sceneEditControls);
 
@@ -913,11 +917,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             sceneEditInfo.setVersion(oldSceneEditInfo.getVersion() + 1);
             sceneEditInfoService.updateById(sceneEditInfo);
 
-            sceneEditInfoExt.setId(oldSceneEditeIinfoExt.getId());
+            if(Objects.nonNull(oldSceneEditeIinfoExt)){
+                sceneEditInfoExt.setId(oldSceneEditeIinfoExt.getId());
+            }
             sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
             sceneEditInfoExt.setScenePlusId(scenePlus.getId());
-            sceneEditInfoExtService.updateById(sceneEditInfoExt);
-
+            sceneEditInfoExtService.saveOrUpdate(sceneEditInfoExt);
         }
 
         BeanUtil.copyProperties(scenePlusExt, scenePlusVO);