package com.fdkankan.fusion.controller; import com.fdkankan.fusion.aop.PushJm; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.ResultData; import com.fdkankan.fusion.entity.CaseFusion; import com.fdkankan.fusion.entity.FusionNum; import com.fdkankan.fusion.entity.Model; import com.fdkankan.fusion.entity.ScenePlus; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.request.FusionParam; import com.fdkankan.fusion.response.CaseFusionVo; import com.fdkankan.fusion.response.SceneVo; 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.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; /** *

* 前端控制器 *

* * @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; @GetMapping("/list") public ResultData allList(@RequestParam(required = false) Integer caseId){ return ResultData.ok(fusionNumService.getListByCaseId(caseId,null)); } @GetMapping("/info") public ResultData info(@RequestParam(required = false) Integer fusionId){ CaseFusion caseFusion = caseFusionService.getById(fusionId); if(caseFusion == null){ throw new BusinessException(ResultCode.RECORD_NOT_EXIST); } CaseFusionVo vo = new CaseFusionVo(); BeanUtils.copyProperties(caseFusion,vo); List sceneVos = new ArrayList<>(); List fusionNumList = fusionNumService.getByFusionId(fusionId); List modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList()); List listByModelIds = modelService.getListByModelIds(modelIds); List numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList()); List scenePlusList = scenePlusService.getByNumList(numList); HashMap map = new HashMap<>(); scenePlusList.stream().forEach(e -> map.put(e.getNum(),e)); for (Model model : listByModelIds) { SceneVo sceneVo = new SceneVo(); BeanUtils.copyProperties(model,sceneVo); ScenePlus scenePlus = map.get(model.getNum()); if(model.getNum() != null && scenePlus != null){ BeanUtils.copyProperties(scenePlus,sceneVo); sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus()); sceneVo.setName(scenePlus.getTitle()); sceneVo.setSceneName(scenePlus.getTitle()); } if(model.getNum() == null){ sceneVo.setStatus(2); } sceneVos.add(sceneVo); } vo.setSceneVoList(sceneVos); return ResultData.ok(vo); } @PostMapping("/add") @PushJm(event_content = "添加模型") public ResultData add(@RequestBody FusionParam param){ if( param.getFusionId() == null || StringUtils.isNotBlank(param.getNum())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } ScenePlus scenePlus = scenePlusService.getByNum(param.getNum()); if(scenePlus == null){ throw new BusinessException(ResultCode.RECORD_NOT_EXIST); } return ResultData.ok(fusionNumService.add(param,scenePlus)); } /** * 修改模型相关信息 */ @PostMapping("/update") @PushJm(event_content = "修改模型") public ResultData update(@RequestBody FusionParam param){ fusionNumService.updateModel(param); return ResultData.ok(); } @PostMapping("/delete") @PushJm(event_content = "删除模型") public ResultData delete(@RequestBody FusionParam param){ if(param.getFusionNumId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } fusionNumService.deleteById(param.getFusionNumId()); return ResultData.ok(); } }