package com.fdkankan.scene.controller; import cn.hutool.core.util.StrUtil; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.web.response.ResultData; import com.fdkankan.scene.bean.RequestRebuildVedioScene; import com.fdkankan.scene.bean.RequestSceneCooperation; import com.fdkankan.scene.bean.ResponseVideoSceneProgress; import com.fdkankan.scene.entity.ScenePro; import com.fdkankan.scene.service.IPicSceneProgressService; import com.fdkankan.scene.service.ISceneProService; import com.fdkankan.scene.service.ISceneService; import com.fdkankan.scene.service.IVideoSceneProgressService; import com.fdkankan.web.controller.BaseController; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("/api/scene") public class SceneController extends BaseController { @Autowired private ISceneService sceneService; @Autowired private ISceneProService sceneProService; @Autowired private IVideoSceneProgressService videoSceneProgressService; @Autowired private IPicSceneProgressService picSceneProgressService; /** * 是否已登录 * @return */ @PostMapping(value = "/isLogin") public ResultData isLogin(@RequestParam("num") String num) throws Exception{ return sceneService.isLogin(num, this.getSsoUserV3()); } /** * 协作者根据场景码获取场景资源集合 * @return */ @RequestMapping(value = "/sceneResourceBySceneNum", method = RequestMethod.POST) public ResultData sceneResourceBySceneNum(@RequestBody RequestSceneCooperation cooperation) throws Exception{ return sceneService.sceneResourceBySceneNum(cooperation, this.getSsoUserV3()); } /** * app录音获取录音文件版本 */ @RequestMapping(value = "/getVoiceSound") public ResultData getVoiceSound(HttpServletRequest request) throws Exception { String sceneNum = request.getParameter("num"); return sceneService.getVoiceSound(sceneNum); } /** * 获取场景详情 */ @RequestMapping(value = "/getInfo") public ResultData getInfo(HttpServletRequest request) throws Exception { String sceneNum = request.getParameter("num"); return sceneProService.getInfo(sceneNum); } /** * 场景模型重新计算 */ @RequestMapping(value = "/rebuildVideoScene", method = RequestMethod.POST) public ResultData rebuildVideoScene(@RequestBody RequestRebuildVedioScene requestRebuildVedioScene) throws Exception { return sceneService.rebuildVideoScene(requestRebuildVedioScene); } /** * 场景视频重新计算进度 */ @RequestMapping(value = "/rebuildVideoSceneProgress", method = RequestMethod.POST) public ResultData rebuildVideoSceneProgress(@RequestBody RequestRebuildVedioScene requestRebuildVedioScene) throws Exception { if(StringUtils.isEmpty(requestRebuildVedioScene.getSceneNum())){ throw new BusinessException(ErrorCode.FAILURE_CODE_3001); } ScenePro sceneProEntity = sceneProService.findBySceneNum(requestRebuildVedioScene.getSceneNum()); if(null == sceneProEntity){ throw new BusinessException(ErrorCode.FAILURE_CODE_5005); } return ResultData.ok(videoSceneProgressService.findVideoSceneProgress(requestRebuildVedioScene)); } /** * 场景图片重新计算 */ @RequestMapping(value = "/rebuildPicScene", method = RequestMethod.POST) public ResultData rebuildPicScene(@RequestBody RequestRebuildVedioScene requestRebuildVedioScene) throws Exception { return sceneService.rebuildPicScene(requestRebuildVedioScene); } /** * 场景图片重新计算进度 */ @RequestMapping(value = "/rebuildPicSceneProgress", method = RequestMethod.POST) public ResultData rebuildPicSceneProgress(@RequestBody RequestRebuildVedioScene requestRebuildVedioScene) throws Exception { if(StrUtil.isEmpty(requestRebuildVedioScene.getSceneNum())){ throw new BusinessException(ErrorCode.FAILURE_CODE_3001); } ScenePro sceneProEntity = sceneProService.findBySceneNum(requestRebuildVedioScene.getSceneNum()); if(null == sceneProEntity){ throw new BusinessException(ErrorCode.FAILURE_CODE_5005); } ResponseVideoSceneProgress picSceneProgress = picSceneProgressService.findPicSceneProgress(requestRebuildVedioScene); return ResultData.ok(picSceneProgress.getRebuildResult()); } }