Explorar o código

添加场景是场景模型

lyhzzz %!s(int64=3) %!d(string=hai) anos
pai
achega
33d42fc39c

+ 0 - 3
src/main/java/com/fdkankan/fusion/entity/CaseNumEntity.java

@@ -35,7 +35,4 @@ public class CaseNumEntity implements Serializable {
     @TableField("num")
     private String num;
 
-    @TableField("glb_url")
-    private String glbUrl;
-
 }

+ 12 - 0
src/main/java/com/fdkankan/fusion/entity/Model.java

@@ -64,6 +64,18 @@ public class Model implements Serializable {
     @TableField("user_name")
     private String userName;
 
+    @TableField("model_type")
+    private String modelType;
+
+    @TableField("transform")
+    private String transform;
+
+    @TableField("opacity")
+    private String opacity;
+
+    @TableField("num")
+    private String num;
+
     @TableField("tb_status")
     @TableLogic
     private Integer tbStatus;

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IModelService.java

@@ -27,4 +27,6 @@ public interface IModelService extends IService<Model> {
     void delete(Integer modelId);
 
     List<Model> getListByModeId(List<String> numList);
+
+    void deleteByNum(List<String> numList);
 }

+ 24 - 2
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.common.util.OBJToGLBUtil;
 import com.fdkankan.fusion.entity.CaseNumEntity;
+import com.fdkankan.fusion.entity.Model;
 import com.fdkankan.fusion.mapper.ICaseNumMapper;
 import com.fdkankan.fusion.request.SceneNumParam;
 import com.fdkankan.fusion.service.ICaseNumService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.IModelService;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -38,6 +40,8 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     private String GLB_PATH;
     @Value("${upload.query-path}")
     private String queryPath;
+    @Autowired
+    IModelService modelService;
 
     @Override
     public List<CaseNumEntity> getByCaseId(Integer caseId) {
@@ -53,20 +57,33 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         this.deleteByCaseId(caseId);
 
         List<CaseNumEntity> newCaseNums = new ArrayList<>();
+        List<Model> modelList = new ArrayList<>();
         for (SceneNumParam param : sceneNumParam) {
             for (String num : param.getNumList()) {
                 CaseNumEntity caseNumEntity = new CaseNumEntity();
                 caseNumEntity.setCaseId(caseId);
                 caseNumEntity.setNumType(param.getType());
                 caseNumEntity.setNum(num);
-                caseNumEntity.setGlbUrl(getGlbUrl(param.getType(),num));
                 newCaseNums.add(caseNumEntity);
+
+                Model model = new Model();
+                model.setModelDateType("obj");
+                model.setType(param.getType());
+                model.setModelObjUrl(String.format(OBJ_PATH ,num) +"/mesh.obj");
+                model.setModelGlbUrl(getGlbUrl(param.getType(),num));
+                model.setModelType("glb");
+                model.setNum(num);
+                model.setCreateStatus(1);
+                modelList.add(model);
             }
         }
 
         if(newCaseNums.size() >0){
             this.saveBatch(newCaseNums);
         }
+        if(modelList.size() >0){
+            modelService.saveBatch(modelList);
+        }
     }
 
     private String getGlbUrl(Integer type, String num) {
@@ -95,7 +112,12 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     public void deleteByCaseId(Integer caseId) {
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CaseNumEntity::getCaseId,caseId);
-        this.remove(wrapper);
+        List<CaseNumEntity> list = this.list(wrapper);
+        if(list.size() >0){
+            List<String> numList = list.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
+            modelService.deleteByNum(numList);
+            this.remove(wrapper);
+        }
     }
 
     @Override

+ 8 - 0
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -79,6 +79,7 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
         Model model = new Model();
         model.setModelTitle(modelName);
         model.setModelDateType("obj");
+        model.setModelType("glb");
         model.setModelSize(file.getSize());
         model.setUserName(username);
         this.save(model);
@@ -145,4 +146,11 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
         wrapper.in(Model::getModelId,numList);
         return this.list(wrapper);
     }
+
+    @Override
+    public void deleteByNum(List<String> numList) {
+        LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Model::getNum,numList);
+        this.remove(wrapper);
+    }
 }