瀏覽代碼

modeling service 完善

lyhzzz 3 年之前
父節點
當前提交
6d779725b0

+ 14 - 122
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/entity/Scene.java

@@ -16,7 +16,7 @@ import java.util.Date;
  * </p>
  *
  * @author dengsixing
- * @since 2021-12-23
+ * @since 2021-12-30
  */
 @Getter
 @Setter
@@ -53,16 +53,10 @@ public class Scene implements Serializable {
     private String thumb;
 
     /**
-     * 创建时间
-     */
-    @TableField("create_time")
-    private Date createTime;
-
-    /**
      * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
      */
-    @TableField("status")
-    private Integer status;
+    @TableField("scene_status")
+    private Integer sceneStatus;
 
     /**
      * 原始的大场景数据(七牛)
@@ -97,8 +91,8 @@ public class Scene implements Serializable {
     /**
      * 大场景序号
      */
-    @TableField("num")
-    private String num;
+    @TableField("scene_code")
+    private String sceneCode;
 
     /**
      * 大场景的密钥
@@ -149,130 +143,28 @@ public class Scene implements Serializable {
     private Integer floorLogoSize;
 
     /**
-     * 要上传的热点的id集合,用逗号隔开
-     */
-    @TableField("hots_ids")
-    private String hotsIds;
-
-    /**
-     * 表示初始点信息
-     */
-    @TableField("entry")
-    private String entry;
-
-    /**
-     * 拍摄数量
-     */
-    @TableField("shoot_count")
-    private Integer shootCount;
-
-    /**
-     * 风格
-     */
-    @TableField("style")
-    private Integer style;
-
-    /**
-     * 要gps定位
-     */
-    @TableField("gps")
-    private String gps;
-
-    /**
-     * 方案:1是双目,2是转台,3是六目,4是八目
-     */
-    @TableField("scene_scheme")
-    private Integer sceneScheme;
-
-    /**
-     * 背景音乐名称
-     */
-    @TableField("bg_music")
-    private String bgMusic;
-
-    /**
      * 记录的状态,A: 生效,I: 禁用
      */
     @TableField("rec_status")
     private String recStatus;
 
     /**
-     * 更新时间
-     */
-    @TableField("update_time")
-    private Date updateTime;
-
-    /**
-     * 普通录屏文件地址
-     */
-    @TableField("screencap_voice_src")
-    private String screencapVoiceSrc;
-
-    /**
-     * 旧版录屏数据地址
-     */
-    @TableField("screencap_music")
-    private String screencapMusic;
-
-    /**
-     * 录屏文件个数
-     */
-    @TableField("screencap_len")
-    private Integer screencapLen;
-
-    /**
-     * 录音文件地址
-     */
-    @TableField("screencap_voice_sound")
-    private String screencapVoiceSound;
-
-    /**
-     * 选择的类型,sound为screencapVoiceSound,file为screencapVoiceSrc
-     */
-    @TableField("screencap_voice_type")
-    private String screencapVoiceType;
-
-    /**
-     * 录屏文件地址
-     */
-    @TableField("play_data")
-    private String playData;
-
-    /**
-     * 算法类型
-     */
-    @TableField("algorithm")
-    private String algorithm;
-
-    /**
-     * oss服务商
-     */
-    @TableField("oss")
-    private String oss;
-
-    /**
-     * 重新建模的版本
-     */
-    @TableField("floor_edit_ver")
-    private Integer floorEditVer;
-
-    /**
-     * 正式发布重新建模的版本
+     * 创建时间
      */
-    @TableField("floor_publish_ver")
-    private Integer floorPublishVer;
+    @TableField("create_time")
+    private Date createTime;
 
     /**
-     * 使用容量
+     * 更新时间
      */
-    @TableField("space")
-    private Long space;
+    @TableField("update_time")
+    private Date updateTime;
 
     /**
-     * 录屏图片存放文件
+     * 0-有效,1-删除
      */
-    @TableField("screencap_thumb")
-    private String screencapThumb;
+    @TableField("tb_status")
+    private Integer tbStatus;
 
 
 }

+ 13 - 13
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/receiver/BuildSceneReceiver.java

@@ -15,6 +15,7 @@ import com.fdkankan.modeling.service.ISceneFileBuildService;
 import com.fdkankan.modeling.service.ISceneProExtService;
 import com.fdkankan.modeling.service.ISceneProService;
 import com.fdkankan.modeling.service.ISceneService;
+import com.fdkankan.modeling.utils.DingDingUtils;
 import com.fdkankan.modeling.utils.PushMsgUtil;
 import com.fdkankan.mq.message.BuildSceneMqMessage;
 import com.fdkankan.oss.UploadUtils;
@@ -24,6 +25,7 @@ import com.fdkankan.utils.constant.ConstantUrl;
 import com.fdkankan.utils.utils.CreateObjUtil;
 import com.fdkankan.utils.utils.FileUtil;
 import com.fdkankan.utils.utils.FileUtils;
+import com.taobao.api.ApiException;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@@ -39,10 +41,9 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.client.RestTemplate;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
+import java.io.*;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.time.Duration;
 import java.time.temporal.ChronoUnit;
 import java.util.Date;
@@ -146,7 +147,7 @@ public class BuildSceneReceiver implements MessageListenerConcurrently {
                 }
             } catch (Exception e) {
                 e.printStackTrace();
-                sceneProService.updateStatus(message.getSceneNum(), -1);
+                sceneService.updateStatus(message.getSceneNum(), -1);
                 BuildSceneReceiver.this.handFail("计算失败", message);
             }
             log.info("场景生成好了***");
@@ -494,7 +495,7 @@ public class BuildSceneReceiver implements MessageListenerConcurrently {
                 }
                 if (sceneFileBuildEntity != null){
                     sceneFileBuildEntity.setBuildStatus(3);
-                    sceneFileBuildService.update(sceneFileBuildEntity);
+                    sceneFileBuildService.updateById(sceneFileBuildEntity);
                 }
 
                 //根据data.fdage推送计算完成的消息
@@ -612,10 +613,9 @@ public class BuildSceneReceiver implements MessageListenerConcurrently {
         } catch(Exception e){
             log.error("计算大场景失败"+projectNum);
             sceneService.updateStatus(projectNum, -1);
-            sceneProService.updateStatus(projectNum, -1);
             if (sceneFileBuildEntity != null){
                 sceneFileBuildEntity.setBuildStatus(-1);
-                sceneFileBuildService.update(sceneFileBuildEntity);
+                sceneFileBuildService.updateById(sceneFileBuildEntity);
             }
             e.printStackTrace();
             StringWriter trace=new StringWriter();
@@ -665,11 +665,11 @@ public class BuildSceneReceiver implements MessageListenerConcurrently {
         // 释放缓存锁
         redisTemplate.delete(RedisKey.SCENE_BUILDING + num);
         CompletableFuture.runAsync(() -> {
-//            try {
-//                DingDingUtils.sendMsgToDingRobot(reason,serverPath,num);
-//            } catch (ApiException | UnsupportedEncodingException | NoSuchAlgorithmException | InvalidKeyException apiException) {
-//                apiException.printStackTrace();
-//            }
+            try {
+                DingDingUtils.sendMsgToDingRobot(reason,serverPath,num);
+            } catch (ApiException | UnsupportedEncodingException | NoSuchAlgorithmException | InvalidKeyException apiException) {
+                apiException.printStackTrace();
+            }
         });
     }
 }

+ 0 - 1
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/ISceneFileBuildService.java

@@ -15,5 +15,4 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
     SceneFileBuild findByFileId(String fileId);
 
-    void update(SceneFileBuild sceneFileBuildEntity);
 }

+ 0 - 2
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/ISceneProService.java

@@ -15,8 +15,6 @@ import java.util.List;
  */
 public interface ISceneProService extends IService<ScenePro> {
 
-    void updateStatus(String str, int i);
-
     ScenePro findBySceneNum(String projectNum);
 
     void updateTime(String projectNum, Long space, int payStatus, String toJSONString, long computeTime);

+ 2 - 0
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/ISceneService.java

@@ -16,4 +16,6 @@ public interface ISceneService extends IService<Scene> {
     void updateTime(String projectNum, Long space, int payStatus);
 
     void updateStatus(String projectNum, int i);
+
+    Scene findBySceneNum(String projectNum);
 }

+ 13 - 5
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/impl/SceneFileBuildServiceImpl.java

@@ -1,11 +1,14 @@
 package com.fdkankan.modeling.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.modeling.entity.SceneFileBuild;
 import com.fdkankan.modeling.mapper.ISceneFileBuildMapper;
 import com.fdkankan.modeling.service.ISceneFileBuildService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 场景文件建模表 服务实现类
@@ -19,11 +22,16 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
     @Override
     public SceneFileBuild findByFileId(String fileId) {
-        return null;
+        QueryWrapper<SceneFileBuild> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SceneFileBuild::getFileId,fileId);
+        queryWrapper.lambda().eq(SceneFileBuild::getRecStatus,"A");
+        queryWrapper.lambda().orderByDesc(SceneFileBuild::getCreateTime);
+        queryWrapper.last("LIMIT 1");
+        List<SceneFileBuild> list = this.list(queryWrapper);
+        if(list == null || list.size() <=0){
+            return null;
+        }
+        return list.get(0);
     }
 
-    @Override
-    public void update(SceneFileBuild sceneFileBuildEntity) {
-
-    }
 }

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

@@ -7,11 +7,13 @@ import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.modeling.entity.Scene;
 import com.fdkankan.modeling.entity.ScenePro;
 import com.fdkankan.modeling.entity.SceneProExt;
 import com.fdkankan.modeling.mapper.ISceneProMapper;
 import com.fdkankan.modeling.service.ISceneProExtService;
 import com.fdkankan.modeling.service.ISceneProService;
+import com.fdkankan.modeling.service.ISceneService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,11 +34,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Autowired
     private ISceneProExtService sceneProExtService;
-
-    @Override
-    public void updateStatus(String str, int i) {
-
-    }
+    @Autowired
+    private ISceneService sceneService;
 
     @Override
     public ScenePro findBySceneNum(String projectNum) {
@@ -51,8 +50,25 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public void updateTime(String projectNum, Long space, int payStatus, String toJSONString, long computeTime) {
+    public void updateTime(String projectNum, Long space, int payStatus, String videos, long computeTime) {
+        Scene scene = sceneService.findBySceneNum(projectNum);
+        ScenePro scenePro = this.findBySceneNum(projectNum);
+        if(scenePro == null){
+            return;
+        }
+        SceneProExt sceneProExt = sceneProExtService.getBySceneProId(scenePro.getId());
+        if(scene == null || sceneProExt == null){
+            return;
+        }
+        scene.setSceneStatus(-2);
+        sceneService.updateById(scene);
+
+        scenePro.setVideos(videos);
+        this.updateById(scenePro);
 
+        sceneProExt.setSpace(space);
+        sceneProExt.setComputeTime(computeTime);
+        sceneProExtService.updateById(sceneProExt);
     }
 
     @Override

+ 44 - 0
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/impl/SceneServiceImpl.java

@@ -1,24 +1,68 @@
 package com.fdkankan.modeling.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.modeling.entity.Scene;
+import com.fdkankan.modeling.entity.ScenePro;
+import com.fdkankan.modeling.entity.SceneProExt;
 import com.fdkankan.modeling.mapper.ISceneMapper;
+import com.fdkankan.modeling.service.ISceneProExtService;
+import com.fdkankan.modeling.service.ISceneProService;
 import com.fdkankan.modeling.service.ISceneService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+
 @Slf4j
 @Service
 public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implements ISceneService {
 
+    @Autowired
+    private ISceneProService sceneProService;
+    @Autowired
+    private ISceneProExtService sceneProExtService;
 
     @Override
     public void updateTime(String projectNum, Long space, int payStatus) {
+        UpdateWrapper<Scene> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(Scene::getCreateTime,new Date());
+        updateWrapper.lambda().set(Scene::getSceneStatus,-2);
+        updateWrapper.lambda().set(Scene::getPayStatus,payStatus);
+        updateWrapper.lambda().eq(Scene::getSceneCode,projectNum);
+        this.update(updateWrapper);
 
+        ScenePro scenePro = sceneProService.findBySceneNum(projectNum);
+        if(scenePro != null){
+            SceneProExt sceneProExt = sceneProExtService.getBySceneProId(scenePro.getId());
+            if(sceneProExt != null){
+                sceneProExt.setSpace(space);
+                sceneProExtService.updateById(sceneProExt);
+            }
+        }
     }
 
     @Override
     public void updateStatus(String projectNum, int i) {
+        UpdateWrapper<Scene> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(Scene::getSceneStatus,i);
+        updateWrapper.lambda().eq(Scene::getSceneCode,projectNum);
+        this.update(updateWrapper);
+    }
 
+    @Override
+    public Scene findBySceneNum(String projectNum) {
+        QueryWrapper<Scene> sceneQueryWrapper = new QueryWrapper<>();
+        sceneQueryWrapper.lambda().eq(Scene::getSceneCode,projectNum);
+        sceneQueryWrapper.lambda().eq(Scene::getRecStatus,"A");
+        List<Scene> list = this.list(sceneQueryWrapper);
+        if(CollUtil.isEmpty(list)){
+            return null;
+        }
+        return list.get(0);
     }
 }

+ 1 - 1
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/utils/DingDingUtils.java

@@ -56,7 +56,7 @@ public class DingDingUtils {
 
     public static void sendMsgToDingRobot(String reason,String serverPath,String num) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
         String content = String.format(msgPattern,environment, SysConstants.hostName,reason,num,serverPath,num,num);
-        sendMsgToDingRobot(content);
+        //sendMsgToDingRobot(content);
     }
 
     public static void sendMsgToDingRobot(String content) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {