package com.fdkankan.manage.controller; import cn.dev33.satoken.stp.StpUtil; import com.alibaba.fastjson.JSONObject; import com.fdkankan.manage.common.ResultCode; import com.fdkankan.manage.exception.BusinessException; import com.fdkankan.manage.common.ResultData; import com.fdkankan.manage.entity.ScenePlus; import com.fdkankan.manage.entity.ScenePro; import com.fdkankan.manage.httpClient.client.FdKKClient; import com.fdkankan.manage.httpClient.client.LaserClient; import com.fdkankan.manage.httpClient.param.LaserSceneParam; import com.fdkankan.manage.httpClient.vo.FdkkResponse; import com.fdkankan.manage.service.IDownService; import com.fdkankan.manage.service.IScenePlusService; import com.fdkankan.manage.service.ISceneProService; import com.fdkankan.manage.vo.request.SceneParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.HashMap; /** * 相机场景管理 */ @RestController @RequestMapping("/service/manage/scene") @Slf4j public class SceneController { @Autowired ISceneProService sceneProService; @Autowired IScenePlusService scenePlusService; @Autowired IDownService downService; @Autowired FdKKClient fdKKClient; @Autowired LaserClient laserClient; @PostMapping("/list") public ResultData list(@RequestBody SceneParam param){ return ResultData.ok(sceneProService.pageList(param)); } /** * 场景迁移 * num 迁移场景码 * snCode 迁移至相机snCode */ @PostMapping("/move") public ResultData move(@RequestBody SceneParam param){ if(StringUtils.isEmpty(param.getNum()) || StringUtils.isEmpty(param.getSnCode())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } sceneProService.move(param); return ResultData.ok(); } /** * 场景复制 * num 场景码 */ @PostMapping("/copy") public ResultData copy(@RequestBody SceneParam param) throws Exception { if(StringUtils.isEmpty(param.getNum())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } sceneProService.copy(param.getNum()); return ResultData.ok(); } /** * 场景删除 * num 场景码 */ @PostMapping("/delete") public ResultData delete(@RequestBody SceneParam param){ if(StringUtils.isEmpty(param.getNum())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } sceneProService.deleteByNum(param.getNum()); return ResultData.ok(); } /** * 检查下载 * num 场景码 */ @GetMapping("/checkDownLoad") public ResultData checkDownLoad(@RequestParam(required = false) String num){ return ResultData.ok(downService.checkDownLoad(num)); } /** * 下载场景 * num 场景码 */ @GetMapping("/downScene") public ResultData downScene(@RequestParam(required = false) String num){ return ResultData.ok(downService.down(num)); } /** * 下载场景进度条 * num 场景码 */ @GetMapping("/downloadProcess") public ResultData downloadProcess(@RequestParam(required = false) String num){ return ResultData.ok(downService.downloadProcess(num)); } /** * 场景重算 * num 场景码 */ @GetMapping("/rebuildScene") public ResultData rebuild(@RequestParam(required = false) String num){ ScenePro scenePro = sceneProService.getByNum(num); if(scenePro!=null && scenePro.getSceneSource() != 4){ throw new BusinessException(ResultCode.V3_SCENE_REBUILD); } ScenePlus scenePlus = scenePlusService.getByNum(num); if(scenePlus == null && scenePro == null){ throw new BusinessException(ResultCode.SCENE_NOT_EXIST); } HashMap paramMap = new HashMap<>(); paramMap.put("num",num); try { JSONObject jsonObject = fdKKClient.rebuildScene(paramMap); Integer code = jsonObject.getInteger("code"); if(code != 0){ log.error("场景重算失败:{},{}",num,jsonObject); throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR); } }catch (Exception e){ throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR); } return ResultData.ok(); } @PostMapping("/sceneDetail") public ResultData sceneDetail(@RequestBody LaserSceneParam param){ if(param.getId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } FdkkResponse fdkkResponse = laserClient.sceneDetail(param, StpUtil.getTokenValue()); if(fdkkResponse.getCode() != 200){ throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg()); } return ResultData.ok(fdkkResponse.getData()); } @PostMapping("/buildSceneObj") public ResultData buildSceneObj(@RequestBody LaserSceneParam param){ if(param.getId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } FdkkResponse fdkkResponse = laserClient.buildSceneObj(param, StpUtil.getTokenValue()); if(fdkkResponse.getCode() != 200){ throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg()); } return ResultData.ok(); } }