package com.fdkankan.scene.controller; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.constant.SceneInfoReqType; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.scene.annotation.CheckPermit; import com.fdkankan.scene.annotation.SaveLog; import com.fdkankan.scene.service.*; import com.fdkankan.scene.vo.*; import com.fdkankan.web.controller.BaseController; import com.fdkankan.web.response.ResultData; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; /** * 场景编辑管理 */ @Log4j2 @RestController @RequestMapping("/service/scene/edit") public class SceneEditController extends JmgaBaseController { @Value("${spring.profiles.active}") private String env; @Autowired private ISceneProService sceneProService; @Autowired private ISceneEditInfoService sceneEditInfoService; @Autowired private ISceneUploadService sceneUploadService; @Autowired private ISceneEditService sceneEditService; @Autowired private IDownloadTourVideoService downloadTourVideoService; @Autowired private ISurveillanceService surveillanceService; @Autowired private IBoxModelService boxModelService; @Autowired private IScenePlusService scenePlusService; @Autowired private ISceneAsynOperLogService sceneAsynOperLogService; @Autowired private ISceneEditInfoExtService sceneEditInfoExtService; @Autowired private ICutModelService cutModelService; @Autowired private IVisionService visionService; /** *
保存场景编辑数据 *
* @author dengsixing * @date 2022/1/12 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/base/save") public SceneEditInfoVO saveScene(@RequestBody @Validated SceneEditInfoParamVO param){ return sceneEditInfoService.saveScene(param); } /** *发布场景数据 *
* @author dengsixing * @date 2022/1/12 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/publicScene") public ResultData publicScene(@RequestBody @Validated SceneEditInfoParamVO param) throws Exception { return sceneEditInfoService.publicScene(param); } /** *保存初始页面 *
* @author dengsixing * @date 2022/1/12 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/saveInitialPage") public ResultData saveInitialPage(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception { return sceneProService.saveInitialPage(param); } /** *新增或修改场景热点 *
* @author dengsixing * @date 2022/1/12 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/tag/save") public ResultData saveTag(@RequestBody @Validated SaveTagsParamVO param) throws Exception { return sceneProService.addOrUpdateTag(param); } /** *删除热点 *
* @author dengsixing * @date 2022/2/16 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/tag/delete") public ResultData deleteTag(@RequestBody @Validated DeleteHotParamVO param) throws Exception { return sceneProService.deleteTag(param); } /** *热点列表 *
* @author dengsixing * @date 2022/8/1 * @param num * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/tag/list") public ResultData listTags(@RequestParam(value = "num") String num) throws Exception { return sceneProService.listTags(num); } /** *删除热点 *
* @author dengsixing * @date 2022/2/16 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/icons/delete") public ResultData deleteIcons(@RequestBody @Validated DeleteHotIconParamVO param) throws Exception { return sceneProService.deleteIcons(param); } /** *保存漫游可行 *
* @author dengsixing * @date 2022/1/12 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/saveRoam") public ResultData saveRoam(@RequestBody @Validated BaseDataParamVO param) throws Exception { return sceneProService.saveRoam(param); } /** *保存热点可见性的数据 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/saveTagsVisible") public ResultData saveTagsVisible(@RequestBody @Validated SaveTagsVisibleParamVO param) throws Exception { return sceneProService.saveTagsVisible(param); } /** *下载模型 *
* @author dengsixing * @date 2022/8/1 * @param num * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/downloadModel") public ResultData downloadModel(@RequestParam("num") String num) throws Exception { return sceneProService.downloadModel(num); } /** *上传模型 *
* @author dengsixing * @date 2022/8/1 * @param num * @param file * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/uploadModel") public ResultData uploadModel(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception { return sceneProService.uploadModel(num, file); } /** *保存关联全景图 *
* @author dengsixing * @date 2022/8/1 * @param num * @param sid * @param fileName * @param file * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/linkPan/upload") public ResultData uploadLinkPan( @RequestParam(value = "num") String num, @RequestParam(value = "sid") String sid, @RequestParam(value = "fileName") String fileName, @RequestParam("file") MultipartFile file) throws Exception{ return sceneEditInfoService.uploadLinkPan(num, sid, fileName, file); } /** *保存关联全景图 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/linkPan/save") public ResultData saveLinkPan(@RequestBody @Validated SaveLinkPanParamVO param) throws Exception{ return sceneEditInfoService.saveLinkPan(param); } /** *删除场景关联 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/linkPan/delete") public ResultData deleteLinkPan(@RequestBody @Validated DeleteLinkPanParamVO param) throws Exception { return sceneEditInfoService.deleteLinkPan(param); } /** *删除场景关联图标 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/styles/delete") public ResultData deleteStyles(@RequestBody @Validated DeleteStylesParamVO param) throws Exception { return sceneEditInfoService.deleteStyles(param); } /** *场景关联列表 *
* @author dengsixing * @date 2022/8/1 * @param num * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/linkPan/list") public ResultData listLinkPan(@RequestParam(value = "num") String num) throws Exception { return sceneEditInfoService.listLinkPan(num); } /** *保存户型图 *
* @author dengsixing * @date 2022/1/20 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/cad/save") public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{ return sceneEditInfoService.saveCad(param); } /** *保存户型图 *
* @author dengsixing * @date 2022/1/20 * @param param * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @GetMapping(value = "/cad/dxf/download") public ResultData saveCadDxf(@RequestParam String num) throws Exception{ return sceneEditInfoService.downloadDxf(num); } /** *保存户型图 *
* @author dengsixing * @date 2022/1/20 * @param param * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/cad/dxf/upload") public ResultData uploadDxf(@RequestParam MultipartFile file, @RequestParam String num) throws Exception{ return sceneEditInfoService.uploadDxf(file, num); } /** *重置户型图 *
* @author dengsixing * @date 2022/2/16 * @param num * @return **/ @SaveLog @CheckPermit @PostMapping(value = "/cad/reset") public ResultData resetCad(@RequestParam(value = "num") String num) throws Exception { return sceneEditInfoService.resetCad(num); } /** *楼层户型重命名 *
* @author dengsixing * @date 2022/2/16 * @return **/ @SaveLog @CheckPermit @PostMapping(value = "/cad/rename") public ResultData renameCad(@RequestBody @Validated RenameCadParamVO param) throws IOException { return sceneEditInfoService.renameCad(param); } /** *获取场景详情 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.scene.vo.SceneInfoVO **/ @CheckPermit @GetMapping(value = "/getInfo") public SceneInfoVO getInfo(@Validated SceneInfoParamVO param) throws Exception{ param.setReqType(SceneInfoReqType.EDIT.code()); return sceneEditInfoService.getSceneInfo(param, request); } /** *上传全景图 *
* @author dengsixing * @date 2022/2/16 * @param num * @param file * @return java.util.List下载全景图 *
* @author dengsixing * @date 2022/2/16 * @return java.util.List保存视频盒子 *
* @author dengsixing * @date 2022/2/18 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/video/box/save") public ResultData saveVideoBox(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception { return sceneEditInfoService.saveVideoBox(param); } /** *删除视频盒子 *
* @author dengsixing * @date 2022/2/18 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/video/box/delete") public ResultData deleteVideoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception { return sceneEditInfoService.deleteVideoBox(param); } /** *保存空间贴图 *
* @author dengsixing * @date 2022/2/18 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/photo/box/save") public ResultData savePhotoBox(@RequestBody @Validated BaseDataParamVO param) throws Exception { return sceneEditInfoService.saveBoxPhoto(param); } /** *删除空间贴图 *
* @author dengsixing * @date 2022/2/18 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/photo/box/delete") public ResultData deletePhotoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception { return sceneEditInfoService.deleteBoxPhoto(param); } /** *下载视频 *
* @author dengsixing * @date 2022/2/23 * @param param * @return com.fdkankan.scene.vo.DownloadVO **/ @CheckPermit @PostMapping(value = "/downloadBallScreenVideo") public DownloadVO downloadBallScreenVideo(@RequestBody @Validated BallScreenVideoParamVO param){ return sceneEditInfoService.downloadBallScreenVideo(param); } /** *上传视频 *
* @author dengsixing * @date 2022/2/23 * @param num * @param fileName * @param file * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/uploadBallScreenVideo") public ResultData uploadBallScreenVideo( @RequestParam("num") String num, @RequestParam("fileName") String fileName, @RequestParam("file") MultipartFile file) throws Exception { return sceneEditInfoService.uploadBallScreenVideo(num, fileName, file); } /** *上传文件 *
* @author dengsixing * @date 2022/8/1 * @param base64 * @param fileName * @param bizType * @param files * @param num * @param type * @param uploadPath * @return java.lang.String **/ @CheckPermit @RequestMapping(value = "/upload/files", method = RequestMethod.POST) public String uploads(@RequestParam(value = "base64",required = false) String base64, @RequestParam(value = "fileName",required = false) String fileName, @RequestParam(value = "bizType",required = false) String bizType, @RequestParam(value = "files",required = false) MultipartFile[] files, @RequestParam(value = "num",required = false) String num, @RequestParam(value = "type",required = false,defaultValue = "1") Integer type, @RequestParam(value = "uploadPath",required = false) String uploadPath) throws Exception { return sceneUploadService.uploads(base64,fileName,bizType,files,num,type,getToken(),uploadPath); } /** *用户自定义上传文本内容上传 *
* @author dengsixing * @date 2022/8/1 * @param param * @return java.lang.String **/ @RequestMapping(value = "/upload/content", method = RequestMethod.POST) public String uploadContent(@RequestBody @Validated UploadContentParamVO param) throws Exception { return sceneUploadService.uploadContent(param); } /** *删除文件 *
* @author dengsixing * @date 2022/2/23 * @param paramVO * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping("/delete/file") public ResultData delete(@RequestBody @Validated DeleteFileParamVO paramVO) throws Exception{ return sceneUploadService.delete(paramVO); } /** *场景同步 *
* @author dengsixing * @date 2022/8/1 * @param num * @param type * @param floorPlanJson * @param ajkJson * @param cameraJson * @param files * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/sceneSync") public ResultData sceneSync( @RequestParam("num") String num, @RequestParam(value = "type", defaultValue = "ajk") String type, @RequestParam("floorPlanJson") String floorPlanJson, @RequestParam("ajkJson") String ajkJson, @RequestParam("cameraJson") String cameraJson, @RequestParam("files") MultipartFile[] files) throws Exception{ return sceneEditInfoService.sceneSync(num, type, floorPlanJson, ajkJson, cameraJson, files); } /** *获取场景权限 *
* @author dengsixing * @date 2022/8/1 * @param num * @return com.fdkankan.scene.vo.SceneAuthVO **/ @CheckPermit @PostMapping(value = "/getAuth") public SceneAuthVO getAuth(@RequestParam("num") String num) throws Exception{ SceneAuthVO sceneAuthVO = sceneEditService.getAuth(num, this.getSsoUser()); sceneAuthVO.setIsVip(true); sceneAuthVO.setSourceExpired(false); sceneAuthVO.setIsExpired(false); return sceneAuthVO; } /** *上传国际化文件 *
* @author dengsixing * @date 2022/4/11 * @param param * @return com.fdkankan.web.response.ResultData **/ @PostMapping(value = "/locales") public ResultData locales(@RequestBody @Validated LocalesParamVO param) throws Exception { if("pro".equals(env)){ throw new BusinessException(ErrorCode.HAVE_NO_RIGHT); } return sceneEditService.locales(param); } /** *保存导览 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/tour/save") public ResultData saveTour(@RequestBody @Validated BaseDataParamVO param) throws Exception{ return sceneEditService.saveTour(param); } /** *删除导览 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/tour/delete") public ResultData deleteTour(@RequestBody @Validated BaseSceneParamVO param) throws Exception{ return sceneEditService.deleteTour(param); } @SaveLog @CheckPermit @PostMapping(value = "/tour/video/upload") public ResultData uploadTourVideo(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception { return downloadTourVideoService.uploadTourVideo(num, file); } @CheckPermit @PostMapping(value = "/tour/video/download") public ResultData downloadTourVideo(@RequestParam("num") String num) throws Exception { return downloadTourVideoService.downloadTourVideo(num); } /** *添加马赛克 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/mosaics/add") public ResultData addMosaics(@RequestBody @Validated BaseDataParamVO param) throws Exception{ return sceneEditInfoService.addMosaics(param); } /** *删除马赛克 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/mosaics/delete") public ResultData deleteMosaics(@RequestBody @Validated DeleteMosaicParamVO param) throws Exception{ return sceneEditInfoService.deleteMosaics(param); } /** *马赛克列表 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @CheckPermit @PostMapping(value = "/mosaics/list") public ResultData getMosaicList(@RequestBody @Validated BaseSceneParamVO param) throws Exception{ return ResultData.ok(sceneEditInfoService.getMosaicList(param.getNum())); } /** *添加水印 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/waterMark/add") public ResultData addWaterMark(@RequestBody @Validated BaseFileParamVO param) throws Exception{ return sceneEditInfoService.addWaterMark(param); } /** *删除水印 *
* @author dengsixing * @date 2022/8/1 * @param param * @return com.fdkankan.web.response.ResultData **/ @SaveLog @CheckPermit @PostMapping(value = "/waterMark/delete") public ResultData deleteWaterMark(@RequestBody @Validated BaseFileParamVO param) throws Exception{ return sceneEditInfoService.deleteWaterMark(param); } /** * 删除水印 * @param param * @return * @throws Exception */ @SaveLog @CheckPermit @PostMapping(value = "/filter/save") public ResultData saveFilter(@RequestBody @Validated SaveFiltersParamVO param) throws Exception{ return sceneEditInfoService.saveFilter(param); } /** * 删除水印 * @param param * @return * @throws Exception */ @CheckPermit @PostMapping(value = "/filter/list") public ResultData listFilter(@RequestBody @Validated BaseSceneParamVO param) throws Exception{ return sceneEditInfoService.listFilter(param); } /** *添加监控 *
* @author dengsixing * @date 2022/9/20 * @param param * @return com.fdkankan.common.response.ResultData **/ @SaveLog @CheckPermit @PostMapping("/surveillance/save") ResultData saveSurveillance(@RequestBody @Validated SurveillanceParamVO param) throws Exception { return surveillanceService.saveSurveillance(param); } @SaveLog @CheckPermit @PostMapping("/surveillance/delete") public ResultData deleteSurveillance(@RequestBody @Validated BaseSidParamVO param) throws IOException { return surveillanceService.deleteSurveillance(param); } @CheckPermit @PostMapping("/surveillance/list") public ResultData listSurveillance(@RequestBody @Validated BaseSceneParamVO param){ return ResultData.ok(surveillanceService.listSurveillance(param.getNum())); } /** *上传空间模型 *
* @author dengsixing * @date 2022/10/19 * @param num * @param sid * @param file * @return com.fdkankan.common.response.ResultData **/ @SaveLog @CheckPermit @PostMapping("/model/box/upload") public ResultData uploadBoxModel( @RequestParam(value = "num") String num, @RequestParam(value = "sid") String sid, @RequestParam(value = "file") MultipartFile file) throws Exception { return boxModelService.uploadBoxModel(num, sid, file); } /** *保存空间模型 *
* @author dengsixing * @date 2022/10/19 * @param param * @return com.fdkankan.common.response.ResultData **/ @SaveLog @CheckPermit @PostMapping("/model/box/save") public ResultData saveBoxModel(@RequestBody @Validated BaseJsonDataParamVO param) throws Exception { return boxModelService.saveBoxModel(param); } /** *删除空间模型 *
* @author dengsixing * @date 2022/10/19 * @param param * @return com.fdkankan.common.response.ResultData **/ @SaveLog @CheckPermit @PostMapping("/model/box/delete") public ResultData delBoxModel(@RequestBody @Validated DeleteSidParamVO param) throws Exception { return boxModelService.deleteBoxModel(param); } /** * 上传二维码和分享的logo * @return */ @SaveLog @CheckPermit @PostMapping(value = "/uploadShareLogo") public ResultData uploadShareLogo(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception { return scenePlusService.uploadShareLogo(num, file); } /** * 获取编辑器版本信息 * @return */ @GetMapping("/getServiceUpTip") public ResultData getServiceUpTip(){ return sceneEditService.getServiceUpTip(); } /** * 保存或者修改指示牌 * @param param * @return * @throws Exception */ @SaveLog @CheckPermit @PostMapping("/billboards/save") public ResultData saveBillboards(@RequestBody @Validated BaseJsonArrayParamVO param) throws Exception { return sceneEditInfoExtService.saveBillboards(param); } /** * 删除指示牌 * @param param * @return * @throws Exception */ @SaveLog @CheckPermit @PostMapping("/billboards/delete") public ResultData deleteBillboards(@RequestBody @Validated DeleteSidListParamVO param) throws Exception { return sceneEditInfoExtService.deleteBillboards(param); } /** * 获取指示牌列表 * @param param * @return * @throws Exception */ @CheckPermit @PostMapping("/billboards/list") public ResultData deleteBillboards(@RequestBody @Validated BaseSceneParamVO param) throws Exception { return ResultData.ok(sceneEditInfoExtService.listBillboards(param)); } /** * 获取指示牌列表 * @param param * @return * @throws Exception */ @SaveLog @CheckPermit @PostMapping("/billboards/styles/delete") public ResultData deleteBillboards(@RequestBody @Validated DeleteStylesParamVO param) throws Exception { return ResultData.ok(sceneEditInfoExtService.deleteBillboardsStyles(param)); } @CheckPermit @PostMapping(value = "/cutModel/save") public ResultData saveCutModel(@RequestBody @Validated BaseJsonArrayParamVO param) throws Exception { return cutModelService.saveCutModel(param); } @CheckPermit @PostMapping(value = "/cutModel/list") public ResultData listCutModel(@RequestBody @Validated BaseSceneParamVO param) throws Exception { return ResultData.ok(cutModelService.listCutModel(param)); } @CheckPermit @PostMapping(value = "/cutModel/delete") public ResultData deleteCutModel(@RequestBody @Validated DeleteSidListParamVO param) throws Exception { return cutModelService.deleteCutModel(param); } @CheckPermit @GetMapping(value = "/point/getLatAndLon") public ResultData getPointLatAndLon(@RequestParam String num) throws Exception { return ResultData.ok(visionService.getPointLatAndLon(num)); } }