|
@@ -19,14 +19,11 @@ import com.fdkankan.fusion.service.ICaseService;
|
|
|
import com.fdkankan.fusion.service.IFusionNumService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fdkankan.fusion.service.IModelService;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -63,24 +60,38 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<FusionNumVo> getListByCaseId(Integer caseId, String token) {
|
|
|
- List<CaseFusion> fusionList = caseFusionService.getListByCaseId(caseId);
|
|
|
- if(fusionList.size()<=0){
|
|
|
+ public List<FusionNumVo> getListByCaseId(Integer caseId, Integer fusionNumId,String token) {
|
|
|
+ List<FusionNum> fusionNumList = new ArrayList<>();
|
|
|
+ if(fusionNumId!=null){
|
|
|
+ FusionNum fusionNum = this.getById(fusionNumId);
|
|
|
+ if(fusionNum!=null){
|
|
|
+ fusionNumList = Collections.singletonList(fusionNum);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ List<CaseFusion> fusionList = caseFusionService.getListByCaseId(caseId);
|
|
|
+ if(fusionList.size()<=0){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<Integer> fusionIdList = fusionList.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList());
|
|
|
+ fusionNumList = getListByFusionIdList(fusionIdList);
|
|
|
+ }
|
|
|
+ if(fusionNumList.size() <=0){
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
- List<Integer> fusionIdList = fusionList.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList());
|
|
|
- List<FusionNum> listByFusionIdList = getListByFusionIdList(fusionIdList);
|
|
|
CaseParam param =new CaseParam();
|
|
|
- HashMap<Integer, List<String>> typeMap = this.getTypeMap(listByFusionIdList);
|
|
|
+ HashMap<Integer, List<String>> typeMap = this.getTypeMap(fusionNumList);
|
|
|
param.setTypeMap(typeMap);
|
|
|
param.setCaseId(caseId);
|
|
|
List<SceneVo> sceneVos = caseService.sceneList(param, token);
|
|
|
HashMap<Integer,SceneVo> sceneMap = new HashMap<>();
|
|
|
sceneVos.forEach(entity -> sceneMap.put(entity.getModelId(),entity));
|
|
|
+
|
|
|
List<FusionNumVo> numVoList = new ArrayList<>();
|
|
|
- for (FusionNum fusionNum : listByFusionIdList) {
|
|
|
+ for (FusionNum fusionNum : fusionNumList) {
|
|
|
FusionNumVo fusionNumVo = new FusionNumVo();
|
|
|
BeanUtils.copyProperties(fusionNum,fusionNumVo);
|
|
|
+ Transform transform = JSONObject.parseObject(fusionNum.getTransform(), Transform.class);
|
|
|
+ fusionNumVo.setTransform(transform);
|
|
|
fusionNumVo.setSceneData(sceneMap.get(fusionNum.getModelId()));
|
|
|
numVoList.add(fusionNumVo);
|
|
|
}
|
|
@@ -92,9 +103,6 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
|
|
|
List<Integer> modelIds = list.parallelStream().map(FusionNum::getModelId).collect(Collectors.toList());
|
|
|
List<Model> modelList = modelService.getListByModelIds(modelIds);
|
|
|
for (Model model : modelList) {
|
|
|
- if(model.getType() == 3){ //用户上传模型跳过
|
|
|
- continue;
|
|
|
- }
|
|
|
List<String> numList ;
|
|
|
if(typeMap.get(model.getType()) == null){
|
|
|
numList = new ArrayList<>();
|
|
@@ -108,10 +116,14 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void add(FusionParam param) {
|
|
|
+ public FusionNumVo add(FusionParam param) {
|
|
|
if(param.getModelId()==null || param.getCaseId() == null){
|
|
|
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
}
|
|
|
+ Model model = modelService.getById(param.getModelId());
|
|
|
+ if(model == null){
|
|
|
+ throw new BusinessException(ResultCode.MODEL_NOT_EXIST);
|
|
|
+ }
|
|
|
List<CaseFusion> list = caseFusionService.getListByCaseId(param.getCaseId());
|
|
|
CaseFusion caseFusion = null;
|
|
|
if(list.size() <=0){
|
|
@@ -124,10 +136,13 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
|
|
|
FusionNum fusionNum = new FusionNum();
|
|
|
BeanUtils.copyProperties(param,fusionNum);
|
|
|
fusionNum.setFusionId(caseFusion.getFusionId());
|
|
|
- if(StringUtils.isEmpty(fusionNum.getTransform())){
|
|
|
- fusionNum.setTransform(JSONObject.toJSONString(new Transform()));
|
|
|
- }
|
|
|
+ fusionNum.setTransform(JSONObject.toJSONString(param.getTransform()));
|
|
|
this.save(fusionNum);
|
|
|
+ List<FusionNumVo> numVoList = this.getListByCaseId(param.getCaseId(), fusionNum.getFusionNumId(), param.getToken());
|
|
|
+ if(numVoList.size()<=0){
|
|
|
+ throw new BusinessException(ResultCode.ERROR);
|
|
|
+ }
|
|
|
+ return numVoList.get(0);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -138,8 +153,8 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
|
|
|
LambdaUpdateWrapper<FusionNum> wrapper = new LambdaUpdateWrapper<>();
|
|
|
wrapper.eq(FusionNum::getFusionNumId,param.getFusionNumId());
|
|
|
|
|
|
- if(StringUtils.isNotBlank(param.getTransform())){
|
|
|
- wrapper.set(FusionNum::getTransform,param.getTransform());
|
|
|
+ if(param.getTransform()!=null){
|
|
|
+ wrapper.set(FusionNum::getTransform,JSONObject.toJSONString(param.getTransform()));
|
|
|
}
|
|
|
if(param.getOpacity()!=null){
|
|
|
wrapper.set(FusionNum::getOpacity,param.getOpacity());
|