|
@@ -5,12 +5,16 @@ import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.fdkankan.common.constant.CommonStatus;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
import com.fdkankan.image.MatrixToImageWriterUtil;
|
|
import com.fdkankan.image.MatrixToImageWriterUtil;
|
|
|
|
+import com.fdkankan.model.utils.CreateObjUtil;
|
|
import com.fdkankan.ucenter.common.OssPath;
|
|
import com.fdkankan.ucenter.common.OssPath;
|
|
import com.fdkankan.ucenter.common.PageInfo;
|
|
import com.fdkankan.ucenter.common.PageInfo;
|
|
|
|
+import com.fdkankan.ucenter.common.Result;
|
|
import com.fdkankan.ucenter.common.constants.ConstantFilePath;
|
|
import com.fdkankan.ucenter.common.constants.ConstantFilePath;
|
|
import com.fdkankan.ucenter.common.constants.UploadFilePath;
|
|
import com.fdkankan.ucenter.common.constants.UploadFilePath;
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
@@ -22,12 +26,16 @@ import com.fdkankan.ucenter.mapper.IScenePlusMapper;
|
|
import com.fdkankan.ucenter.service.*;
|
|
import com.fdkankan.ucenter.service.*;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import com.fdkankan.ucenter.util.RoamingPointUtil;
|
|
import com.fdkankan.ucenter.vo.ResponseScene;
|
|
import com.fdkankan.ucenter.vo.ResponseScene;
|
|
import com.fdkankan.ucenter.vo.SceneEditControlsVO;
|
|
import com.fdkankan.ucenter.vo.SceneEditControlsVO;
|
|
import com.fdkankan.ucenter.vo.request.RequestScene;
|
|
import com.fdkankan.ucenter.vo.request.RequestScene;
|
|
|
|
+import com.fdkankan.ucenter.vo.response.SceneVo;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -47,6 +55,9 @@ import javax.annotation.Resource;
|
|
@Slf4j
|
|
@Slf4j
|
|
public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
|
|
public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
|
|
|
|
|
|
|
|
+ @Value("${fyun.host}")
|
|
|
|
+ private String fyunHost;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private IScenePlusExtService scenePlusExtService;
|
|
private IScenePlusExtService scenePlusExtService;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -300,4 +311,48 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
|
|
});
|
|
});
|
|
return scenePlus.getId();
|
|
return scenePlus.getId();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result pageSceneWithHouseType(RequestScene param) {
|
|
|
|
+ Page<ScenePlus> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()),
|
|
|
|
+ new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getHouseType, CommonStatus.YES.code().intValue()));
|
|
|
|
+ List<SceneVo> records = null;
|
|
|
|
+ if(page.getRecords().size() > 0){
|
|
|
|
+ records = page.getRecords().parallelStream().map(plus -> {
|
|
|
|
+ return SceneVo.builder().createTime(plus.getCreateTime())
|
|
|
|
+ .id(plus.getId()).roamingPointUrl(this.createRoamingPoint(plus.getNum())).sceneName(plus.getTitle())
|
|
|
|
+ .num(plus.getNum()).updateTime(plus.getUpdateTime()).userId(plus.getUserId()).build();
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ PageInfo pageInfo = PageInfo.PageInfo(page);
|
|
|
|
+ pageInfo.setList(records);
|
|
|
|
+
|
|
|
|
+ return Result.success(pageInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String createRoamingPoint(String num){
|
|
|
|
+ String roamingPointOssPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "roamingPoint.json";
|
|
|
|
+ String url = null;
|
|
|
|
+ try {
|
|
|
|
+ if(!fYunFileServiceInterface.fileExist(roamingPointOssPath)){
|
|
|
|
+ String visionModeldataPath = ConstantFilePath.SCENE_V4_PATH + num + File.separator + "vision.modeldata";
|
|
|
|
+ String visionModeldataOssPath = String.format(UploadFilePath.IMG_VIEW_PATH, num) + "vision.modeldata";
|
|
|
|
+ fYunFileServiceInterface.downloadFile(visionModeldataOssPath, visionModeldataPath);
|
|
|
|
+ String visionTxtLocalPath = ConstantFilePath.SCENE_V4_PATH + num + File.separator + "vision.txt";
|
|
|
|
+ CreateObjUtil.convertVisionmodeldataToTxt(visionModeldataPath, visionTxtLocalPath);
|
|
|
|
+ String roamingPoint = RoamingPointUtil.createRoamingPoint(num, visionTxtLocalPath);
|
|
|
|
+ if (StrUtil.isNotEmpty(roamingPoint)) {
|
|
|
|
+ fYunFileServiceInterface.uploadFile(roamingPoint.getBytes(StandardCharsets.UTF_8), roamingPointOssPath);
|
|
|
|
+ url = fyunHost + roamingPointOssPath;
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ url = fyunHost + roamingPointOssPath;
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ log.warn("生成roamingPointJson出错,num:" + num, e);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return url;
|
|
|
|
+ }
|
|
}
|
|
}
|