|
@@ -1,10 +1,6 @@
|
|
|
package com.fdkk.sxz.webApi.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
-import cn.hutool.core.io.FileUtil;
|
|
|
-import cn.hutool.core.io.watch.SimpleWatcher;
|
|
|
-import cn.hutool.core.io.watch.WatchMonitor;
|
|
|
-import cn.hutool.core.io.watch.Watcher;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -15,11 +11,10 @@ import com.fdkk.sxz.entity.ComponentModelUploadEntity;
|
|
|
import com.fdkk.sxz.entity.ModelUploadEntity;
|
|
|
import com.fdkk.sxz.entity.custuom.CustomComponentEntity;
|
|
|
import com.fdkk.sxz.entity.custuom.CustomProductEntity;
|
|
|
-import com.fdkk.sxz.entity.custuom.CustomProductFirstclassifyEntity;
|
|
|
import com.fdkk.sxz.exception.BusinessException;
|
|
|
+import com.fdkk.sxz.other.mq.TopicRabbitConfig;
|
|
|
import com.fdkk.sxz.util.CreateObjUtil;
|
|
|
import com.fdkk.sxz.util.OkHttpUtils;
|
|
|
-import com.fdkk.sxz.util.SnowFlakeUUidUtils;
|
|
|
import com.fdkk.sxz.util.UploadToOssUtil;
|
|
|
import com.fdkk.sxz.vo.request.RequestModelCustomUpload;
|
|
|
import com.fdkk.sxz.vo.response.ResponseModelCustom;
|
|
@@ -30,15 +25,13 @@ import com.fdkk.sxz.webApi.service.custom.ICustomComponentService;
|
|
|
import com.fdkk.sxz.webApi.service.custom.ICustomProductService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import net.oschina.j2cache.CacheChannel;
|
|
|
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.nio.file.Path;
|
|
|
-import java.nio.file.WatchEvent;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -83,18 +76,20 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
@Value("${max.obj.url}")
|
|
|
private String maxObjUrl;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ RabbitTemplate rabbitTemplate; //使用RabbitTemplate,这提供了接收/发送等等方
|
|
|
|
|
|
@Autowired
|
|
|
private CacheChannel cacheChannel;
|
|
|
|
|
|
@Override
|
|
|
public boolean removeById(Long id) {
|
|
|
- ModelUploadEntity entity= findById(id);
|
|
|
- boolean removeById=super.removeById(id);
|
|
|
- if (removeById){
|
|
|
- cacheChannel.evict("ModelUploadEntity","id::"+id);
|
|
|
+ ModelUploadEntity entity = findById(id);
|
|
|
+ boolean removeById = super.removeById(id);
|
|
|
+ if (removeById) {
|
|
|
+ cacheChannel.evict("ModelUploadEntity", "id::" + id);
|
|
|
if (ObjectUtil.isNotNull(entity)) {
|
|
|
- cacheChannel.evict("ModelUploadEntity","fileId::"+entity.getFileId());
|
|
|
+ cacheChannel.evict("ModelUploadEntity", "fileId::" + entity.getFileId());
|
|
|
}
|
|
|
}
|
|
|
return removeById;
|
|
@@ -102,25 +97,24 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
|
|
|
@Override
|
|
|
public ModelUploadEntity findById(Long id) {
|
|
|
- ModelUploadEntity entity=super.findById(id);
|
|
|
- if (ObjectUtil.isNotNull(entity)){
|
|
|
- cacheChannel.set("ModelUploadEntity","id::"+entity.getId(),entity,60*30 );
|
|
|
+ ModelUploadEntity entity = super.findById(id);
|
|
|
+ if (ObjectUtil.isNotNull(entity)) {
|
|
|
+ cacheChannel.set("ModelUploadEntity", "id::" + entity.getId(), entity, 60 * 30);
|
|
|
}
|
|
|
return super.findById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public boolean updateById(ModelUploadEntity entity) {
|
|
|
- boolean updateById=super.updateById(entity);
|
|
|
- if (updateById){
|
|
|
- cacheChannel.set("ModelUploadEntity","id::"+entity.getId(),entity,60*30 );
|
|
|
- cacheChannel.set("ModelUploadEntity","fileId::"+entity.getFileId(),entity,60*30 );
|
|
|
+ boolean updateById = super.updateById(entity);
|
|
|
+ if (updateById) {
|
|
|
+ cacheChannel.set("ModelUploadEntity", "id::" + entity.getId(), entity, 60 * 30);
|
|
|
+ cacheChannel.set("ModelUploadEntity", "fileId::" + entity.getFileId(), entity, 60 * 30);
|
|
|
}
|
|
|
return updateById;
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = BusinessException.class)
|
|
|
public Result saveOrUpdateCustomUpload(RequestModelCustomUpload param) throws Exception {
|
|
@@ -128,7 +122,7 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
//判断保存或者修改
|
|
|
if (ObjectUtil.isNull(param.getModelId())) {
|
|
|
//保存
|
|
|
- log.info("保存成品");
|
|
|
+ ModelUploadServiceImpl.log.info("保存成品");
|
|
|
|
|
|
ModelUploadEntity modelUploadEntity = modelUploadService.findById(param.getId());
|
|
|
if (ObjectUtil.isNotNull(modelUploadEntity)) {
|
|
@@ -148,7 +142,7 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
entity.setUserId(param.getUserId());
|
|
|
JSONArray ids = new JSONArray();
|
|
|
//处理配件
|
|
|
- log.info("保存配件");
|
|
|
+ ModelUploadServiceImpl.log.info("保存配件");
|
|
|
if (ObjectUtil.isNotNull(param.getComponentSlots())) {
|
|
|
for (RequestModelCustomUpload.Component componentSlot : param.getComponentSlots()) {
|
|
|
ComponentModelUploadEntity componentModel = componentModelUploadService.findById(componentSlot.getId());
|
|
@@ -165,7 +159,7 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
customComponentEntity.setName(componentSlot.getTitle());
|
|
|
customComponentEntity.setFileId(componentModel.getFileId());
|
|
|
customComponentEntity.setCreateTime(new DateTime());
|
|
|
- log.info("处理缩略图");
|
|
|
+ ModelUploadServiceImpl.log.info("处理缩略图");
|
|
|
|
|
|
//先执行python-NewResortForOne脚本,处理obj文件
|
|
|
CreateObjUtil.objHandle(buildPath + componentModel.getObjPath());
|
|
@@ -174,65 +168,53 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
|
|
|
customComponentEntity.setThumbnailSrc(prefix + "domain/eHome/furniture/models/" + componentModel.getFileId() + "_preview.jpg");
|
|
|
|
|
|
- log.info("配件obj转换成mview格式");
|
|
|
- Map<String, String> paramsMap = new HashMap<>();
|
|
|
- paramsMap.put("uuid",componentModel.getFileId());
|
|
|
- paramsMap.put("inObj",buildPath +componentModel.getObjPath());
|
|
|
- paramsMap.put("outFilePath",buildPath + componentModel.getObjPath().replace(".obj", ""));
|
|
|
- OkHttpUtils.httpPostForm(maxObjUrl+"toToolbag",paramsMap);
|
|
|
- log.info("上传开始");
|
|
|
- int count=4;
|
|
|
- boolean flag=true;
|
|
|
- while (flag){
|
|
|
- if(FileUtil.exist(buildPath + componentModel.getObjPath().replace(".obj", ".mview"))){
|
|
|
- log.info("文件存在");
|
|
|
- uploadToOssUtil.uploadTo4dTjw(buildPath + componentModel.getObjPath().replace(".obj", ".mview"), "domain/eHome/furniture/models/" + componentModel.getFileId() + ".mview");
|
|
|
- customComponentEntity.setMviewPath(prefix + "domain/eHome/furniture/models/" + componentModel.getFileId() + ".mview");
|
|
|
- flag=false;
|
|
|
- }else {
|
|
|
- Thread.sleep(1000);
|
|
|
- }
|
|
|
- if (count<=0){
|
|
|
- break;
|
|
|
- }
|
|
|
- count -= 1;
|
|
|
- }
|
|
|
-
|
|
|
- log.info("配件obj转换成mview格式结束{}",customComponentEntity.getMviewPath());
|
|
|
+ ModelUploadServiceImpl.log.info("配件obj转换成mview格式结束{}", customComponentEntity.getMviewPath());
|
|
|
//obj转换成glb格式
|
|
|
- log.info("配件obj转换成glb格式");
|
|
|
+ ModelUploadServiceImpl.log.info("配件obj转换成glb格式");
|
|
|
String glbPath = buildPath + componentModel.getObjPath().replace(".obj", ".glb");
|
|
|
- log.info("obj转换成glb格式路径-{}", glbPath);
|
|
|
+ ModelUploadServiceImpl.log.info("obj转换成glb格式路径-{}", glbPath);
|
|
|
CreateObjUtil.objToGlb(buildPath + componentModel.getObjPath(), glbPath);
|
|
|
uploadToOssUtil.uploadTo4dTjw(buildPath + componentModel.getObjPath().replace(".obj", ".glb"), "domain/eHome/furniture/models/" + componentModel.getFileId() + ".glb");
|
|
|
customComponentEntity.setTemplate(prefix + "domain/eHome/furniture/models/" + componentModel.getFileId() + ".glb");
|
|
|
//obj转换成glb格式
|
|
|
- log.info("上传obj到simpleObj-Mtl开始");
|
|
|
+ ModelUploadServiceImpl.log.info("上传obj到simpleObj-Mtl开始");
|
|
|
uploadToOssUtil.uploadTo4dTjw(buildPath + componentModel.getObjPath(),
|
|
|
- "domain/eHome/furniture/simpleObj-Mtl/"+componentModel.getFileId() +"/"+componentModel.getFileId()+ ".obj");
|
|
|
+ "domain/eHome/furniture/simpleObj-Mtl/" + componentModel.getFileId() + "/" + componentModel.getFileId() + ".obj");
|
|
|
//obj转换成glb格式
|
|
|
- log.info("上传obj到simpleObj-Mtl结束");
|
|
|
+ ModelUploadServiceImpl.log.info("上传obj到simpleObj-Mtl结束");
|
|
|
+ customComponentEntity.setMviewStatus(1);
|
|
|
Boolean componentSaveFlag = customComponentService.save(customComponentEntity);
|
|
|
if (componentSaveFlag) {
|
|
|
componentModel.setPartsDetailId(customComponentEntity.getId());
|
|
|
componentModelUploadService.updateById(componentModel);
|
|
|
ids.add(customComponentEntity.getId().toString());
|
|
|
+
|
|
|
+ ModelUploadServiceImpl.log.info("配件obj转换成mview格式MQ处理");
|
|
|
+ Map<String, String> paramsMap = new HashMap<>();
|
|
|
+ paramsMap.put("uuid", componentModel.getFileId());
|
|
|
+ paramsMap.put("inObj", buildPath + componentModel.getObjPath());
|
|
|
+ paramsMap.put("outFilePath", buildPath + componentModel.getObjPath().replace(".obj", ""));
|
|
|
+ OkHttpUtils.httpPostForm(maxObjUrl + "toToolbag", paramsMap);
|
|
|
+ ModelUploadServiceImpl.log.info("上传开始");
|
|
|
+ rabbitTemplate.convertAndSend(TopicRabbitConfig.TOPICE, TopicRabbitConfig.MVIEW,
|
|
|
+ customComponentEntity.getId() + ":;2:;" + buildPath + componentModel.getObjPath().replace(".obj", ".mview") + ":;" + componentModel.getFileId());
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- List<String> fileList=uploadToOssUtil.fileFolderTo4dTjw("domain/eHome/furniture/ue4data/"+modelUploadEntity.getFileId()+"/"+componentModel.getFileId());
|
|
|
- log.info("上传mtl+jpg 到simpleObj-Mtl开始");
|
|
|
+ List<String> fileList = uploadToOssUtil.fileFolderTo4dTjw("domain/eHome/furniture/ue4data/" + modelUploadEntity.getFileId() + "/" + componentModel.getFileId());
|
|
|
+ ModelUploadServiceImpl.log.info("上传mtl+jpg 到simpleObj-Mtl开始");
|
|
|
for (String s : fileList) {
|
|
|
//上传到simpleObj-Mtl
|
|
|
- String oldPath="domain/eHome/furniture/ue4data/"+modelUploadEntity.getFileId()+"/"+componentModel.getFileId()+"/";
|
|
|
- s=s.replace(oldPath,"");
|
|
|
- if (s.contains("_preview.jpg") || s.contains("-base.obj")){
|
|
|
+ String oldPath = "domain/eHome/furniture/ue4data/" + modelUploadEntity.getFileId() + "/" + componentModel.getFileId() + "/";
|
|
|
+ s = s.replace(oldPath, "");
|
|
|
+ if (s.contains("_preview.jpg") || s.contains("-base.obj")) {
|
|
|
continue;
|
|
|
}
|
|
|
uploadToOssUtil.copyTo4dTjw(
|
|
|
- oldPath+s
|
|
|
- ,"domain/eHome/furniture/simpleObj-Mtl/"+componentModel.getFileId()+"/"+s);
|
|
|
+ oldPath + s
|
|
|
+ , "domain/eHome/furniture/simpleObj-Mtl/" + componentModel.getFileId() + "/" + s);
|
|
|
}
|
|
|
- log.info("上传mtl+jpg 到simpleObj-Mtl结束");
|
|
|
+ ModelUploadServiceImpl.log.info("上传mtl+jpg 到simpleObj-Mtl结束");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -247,14 +229,14 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
return Result.failure("查询不到成品模型");
|
|
|
} else {
|
|
|
//修改
|
|
|
- log.info("修改成品");
|
|
|
+ ModelUploadServiceImpl.log.info("修改成品");
|
|
|
CustomProductEntity entity = customProductService.findById(param.getModelId());
|
|
|
if (ObjectUtil.isNotNull(entity)) {
|
|
|
- log.info("修改成品" + entity.getId());
|
|
|
+ ModelUploadServiceImpl.log.info("修改成品" + entity.getId());
|
|
|
entity.setName(param.getName());
|
|
|
entity.setParentId(param.getCustomTypeId());
|
|
|
if (ObjectUtil.isNotNull(param.getComponentSlots())) {
|
|
|
- log.info("修改配件");
|
|
|
+ ModelUploadServiceImpl.log.info("修改配件");
|
|
|
for (RequestModelCustomUpload.Component componentSlot : param.getComponentSlots()) {
|
|
|
CustomComponentEntity componentModel = customComponentService.findById(componentSlot.getModelId());
|
|
|
if (ObjectUtil.isNotNull(componentModel)) {
|
|
@@ -274,9 +256,9 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
|
|
|
@Override
|
|
|
public ModelUploadEntity findByFileId(String fileId) {
|
|
|
- ModelUploadEntity entity=modelUploadMapper.findByFileId(fileId);
|
|
|
- if (ObjectUtil.isNotNull(entity)){
|
|
|
- cacheChannel.set("ModelUploadEntity","fileId::"+fileId,entity,60*30 );
|
|
|
+ ModelUploadEntity entity = modelUploadMapper.findByFileId(fileId);
|
|
|
+ if (ObjectUtil.isNotNull(entity)) {
|
|
|
+ cacheChannel.set("ModelUploadEntity", "fileId::" + fileId, entity, 60 * 30);
|
|
|
}
|
|
|
return entity;
|
|
|
}
|
|
@@ -304,12 +286,12 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
responseModelCustomUpload.setProgress(entity.getProgress());
|
|
|
responseModelCustomUpload.setThumPath(entity.getThumPath());
|
|
|
responseModelCustomUpload.setThumStatus(entity.getThumStatus());
|
|
|
- if (ObjectUtil.isNotNull(entity.getPartsDetailId())){
|
|
|
- CustomProductEntity customProductEntity= customProductService.findById(entity.getPartsDetailId());
|
|
|
+ if (ObjectUtil.isNotNull(entity.getPartsDetailId())) {
|
|
|
+ CustomProductEntity customProductEntity = customProductService.findById(entity.getPartsDetailId());
|
|
|
responseModelCustomUpload.setName(customProductEntity.getName());
|
|
|
responseModelCustomUpload.setCustomTypeId(customProductEntity.getParentId());
|
|
|
responseModelCustomUpload.setModelId(customProductEntity.getId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
responseModelCustomUpload.setCustomTypeId(0L);
|
|
|
}
|
|
|
|
|
@@ -329,14 +311,14 @@ public class ModelUploadServiceImpl extends BaseServiceImpl<IModelUploadMapper,
|
|
|
json.put("name", componentModelUploadEntity.getFileId());
|
|
|
|
|
|
|
|
|
- if (ObjectUtil.isNotNull(componentModelUploadEntity.getPartsDetailId())){
|
|
|
- CustomComponentEntity componentEntity=customComponentService.findById(componentModelUploadEntity.getPartsDetailId());
|
|
|
- if (ObjectUtil.isNotNull(componentEntity)){
|
|
|
+ if (ObjectUtil.isNotNull(componentModelUploadEntity.getPartsDetailId())) {
|
|
|
+ CustomComponentEntity componentEntity = customComponentService.findById(componentModelUploadEntity.getPartsDetailId());
|
|
|
+ if (ObjectUtil.isNotNull(componentEntity)) {
|
|
|
json.put("customComponentTypeId", componentEntity.getComponentTypeId());
|
|
|
json.put("title", componentEntity.getName());
|
|
|
json.put("modelId", componentEntity.getId());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
json.put("customComponentTypeId", 0);
|
|
|
}
|
|
|
|