package com.fdkankan.fusion.controller; import com.alibaba.fastjson.JSONArray; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.ResultData; import com.fdkankan.fusion.common.util.FileWriterUtil; import com.fdkankan.fusion.entity.*; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.request.FusionPageParam; import com.fdkankan.fusion.request.FusionParam; import com.fdkankan.fusion.service.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** *

* 前端控制器 *

* * @author * @since 2022-08-04 */ @RestController @RequestMapping("/caseFusion") public class CaseFusionController extends BaseController{ @Autowired ICaseFusionService caseFusionService; @Autowired IFusionNumService fusionNumService; @Autowired IFusionMeterService fusionMeterService; @Autowired ICaseTagPointService caseTagPointService; @Autowired IModelService modelService; @Autowired IScenePlusService scenePlusService; @Autowired IScenePlusExtService scenePlusExtService; @Autowired ICommonUploadService commonUploadService; @GetMapping("/list") public ResultData allList(@RequestParam(required = false) Integer fusionId){ return ResultData.ok(caseFusionService.getSceneListVo(fusionId)); } @PostMapping("/pageList") public ResultData pageList(@RequestBody FusionPageParam param) { return ResultData.ok(caseFusionService.pageList(param)); } @GetMapping("/info") public ResultData info(@RequestParam(required = false) Integer fusionId){ CaseFusion caseFusion = caseFusionService.getById(fusionId); if(caseFusion == null){ throw new BusinessException(ResultCode.RECORD_NOT_EXITS); } return ResultData.ok(caseFusion); } @PostMapping("/add") public ResultData add(@RequestBody FusionParam param){ if( param.getFusionId() == null ){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } if((param.getIsObj() == null || StringUtils.isBlank(param.getNum())) && param.getUploadId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } if(param.getUploadId() != null){ CommonUpload commonUpload = commonUploadService.getById(param.getUploadId()); if(commonUpload == null || StringUtils.isBlank(commonUpload.getFileUrl())){ throw new BusinessException(ResultCode.MEDIO_NOT_EXIT); } Model model = modelService.getByUploadId(commonUpload.getId()); if(model == null){ model = new Model(); model.setModelTitle(commonUpload.getFileName()); model.setModelSize(FileWriterUtil.setFileSize(Long.valueOf(commonUpload.getFileSize()))); model.setModelDateType(commonUpload.getFileFormat()); model.setModelType(commonUpload.getResultFileFormat()); model.setWgs84(commonUpload.getWgs84()); model.setGcj02(commonUpload.getGcj02()); model.setConvertType(commonUpload.getConvertType()); JSONArray jsonArray = new JSONArray(); jsonArray.add(commonUpload.getFileUrl()); model.setModelGlbUrl(jsonArray.toJSONString()); model.setType(3); model.setCreateStatus(1); model.setUploadId(commonUpload.getId()); modelService.save(model); } return ResultData.ok(fusionNumService.addModel(param,model.getModelId(),model.getModelTitle())); } ScenePlus scenePlus = scenePlusService.getByNum(param.getNum()); ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId()); scenePlus.setScenePlusExt(scenePlusExt); return ResultData.ok(fusionNumService.add(param,scenePlus,param.getIsObj())); } @PostMapping("/updateInfo") public ResultData updateInfo(@RequestBody CaseFusion caseFusion){ if(caseFusion.getFusionId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } caseFusion.setUpdateTime(null); caseFusionService.updateById(caseFusion); return ResultData.ok(); } /** * 修改模型相关信息 */ @PostMapping("/update") public ResultData update(@RequestBody FusionParam param){ fusionNumService.updateModel(param); return ResultData.ok(); } @PostMapping("/delete") public ResultData delete(@RequestBody FusionParam param){ if(param.getFusionNumId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } fusionNumService.deleteById(param.getFusionNumId()); return ResultData.ok(); } }