SceneEditController.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649
  1. package com.fdkankan.scene.controller;
  2. import com.fdkankan.common.constant.SceneInfoReqType;
  3. import com.fdkankan.common.controller.BaseController;
  4. import com.fdkankan.scene.service.ISceneEditInfoService;
  5. import com.fdkankan.scene.service.ISceneProService;
  6. import com.fdkankan.scene.vo.*;
  7. import com.fdkankan.common.response.ResultData;
  8. import java.util.List;
  9. import lombok.extern.log4j.Log4j2;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.validation.annotation.Validated;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.multipart.MultipartFile;
  14. /**
  15. * 场景编辑管理
  16. */
  17. @Log4j2
  18. @RestController
  19. @RequestMapping("/api/scene/edit")
  20. public class SceneEditController extends BaseController {
  21. @Autowired
  22. private ISceneProService sceneProService;
  23. @Autowired
  24. private ISceneEditInfoService sceneEditInfoService;
  25. /**
  26. * <p>
  27. 保存编辑的数据
  28. * </p>
  29. * @author dengsixing
  30. * @date 2022/1/12
  31. * @param sceneEditParamVO
  32. * @return com.fdkankan.common.response.ResultData
  33. **/
  34. @PostMapping(value = "/saveSceneInfo")
  35. public ResultData saveSceneInfo(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
  36. return sceneProService.saveSceneInfo(sceneEditParamVO);
  37. }
  38. /**
  39. * <p>
  40. 保存场景编辑数据
  41. * </p>
  42. * @author dengsixing
  43. * @date 2022/1/12
  44. * @param param
  45. * @return com.fdkankan.common.response.ResultData
  46. **/
  47. @PostMapping(value = "/saveScene")
  48. public SceneEditInfoVO saveScene(@RequestBody @Validated SceneEditInfoParamVO param){
  49. return sceneEditInfoService.saveScene(param);
  50. }
  51. /**
  52. * <p>
  53. 发布场景数据
  54. * </p>
  55. * @author dengsixing
  56. * @date 2022/1/12
  57. * @param param
  58. * @return com.fdkankan.common.response.ResultData
  59. **/
  60. @PostMapping(value = "/publicScene")
  61. public ResultData publicScene(@RequestBody @Validated SceneEditInfoParamVO param) throws Exception {
  62. return sceneEditInfoService.publicScene(param);
  63. }
  64. /**
  65. * <p>
  66. 单独保存tourList
  67. * </p>
  68. * @author dengsixing
  69. * @date 2022/1/12
  70. * @param sceneEditParamVO
  71. * @return com.fdkankan.common.response.ResultData
  72. **/
  73. @PostMapping(value = "/saveTourList")
  74. public ResultData saveTourList(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
  75. return sceneProService.saveTourList(sceneEditParamVO);
  76. }
  77. /**
  78. * <p>
  79. 删除导览
  80. * </p>
  81. * @author dengsixing
  82. * @date 2022/1/12
  83. * @param sceneEditParamVO
  84. * @return com.fdkankan.common.response.ResultData
  85. **/
  86. @PostMapping(value = "/deleteScreencap")
  87. public ResultData deleteScreencap(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
  88. return sceneProService.deleteScreencap(sceneEditParamVO);
  89. }
  90. /**
  91. * <p>
  92. 删除录屏音频文件
  93. * </p>
  94. * @author dengsixing
  95. * @date 2022/1/12
  96. * @param sceneEditParamVO
  97. * @return com.fdkankan.common.response.ResultData
  98. **/
  99. @PostMapping(value = "/deleteScreencapVoiceNew")
  100. public ResultData deleteScreencapVoiceNew(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
  101. return sceneProService.deleteScreencapVoice(sceneEditParamVO);
  102. }
  103. /**
  104. * <p>
  105. 上传音频
  106. * </p>
  107. * @author dengsixing
  108. * @date 2022/1/12
  109. * @param param
  110. * @param file
  111. * @return com.fdkankan.common.response.ResultData
  112. **/
  113. @PostMapping(value = "/uploadScreencapVoiceNew")
  114. public ResultData uploadScreencapVoice(FileParamVO param,
  115. @RequestParam("file") MultipartFile file) throws Exception {
  116. return sceneProService.uploadScreencapVoiceNew(param, file);
  117. }
  118. /**
  119. * <p>
  120. 上传音频
  121. * </p>
  122. * @author dengsixing
  123. * @date 2022/1/12
  124. * @param param
  125. * @param file
  126. * @return com.fdkankan.common.response.ResultData
  127. **/
  128. @PostMapping(value = "/uploadScreencapVoiceNewV3")
  129. public ResultData uploadScreencapVoiceV3(FileParamVO param,
  130. @RequestParam("file") MultipartFile file) throws Exception {
  131. return sceneProService.uploadScreencapVoiceNewV3(param, file);
  132. }
  133. /**
  134. * <p>
  135. 删除音频
  136. * </p>
  137. * @author dengsixing
  138. * @date 2022/1/12
  139. * @param param
  140. * @return com.fdkankan.common.response.ResultData
  141. **/
  142. @PostMapping(value = "/deleteScreencapVoicePart")
  143. public ResultData deleteScreencapVoicePart(@RequestBody @Validated FileParamVO param) throws Exception {
  144. return sceneProService.deleteScreencapVoicePart(param);
  145. }
  146. /**
  147. * <p>
  148. 获取录屏的文件名称
  149. * </p>
  150. * @author dengsixing
  151. * @date 2022/1/12
  152. * @param param
  153. * @return com.fdkankan.common.response.ResultData
  154. **/
  155. @PostMapping(value = "/getScreencapVoice")
  156. public ResultData getScreencapVoice(@RequestBody SceneEditParamVO param) throws Exception {
  157. return sceneProService.getScreencapVoice(param);
  158. }
  159. /**
  160. * <p>
  161. 保存初始页面
  162. * </p>
  163. * @author dengsixing
  164. * @date 2022/1/12
  165. * @param param
  166. * @return com.fdkankan.common.response.ResultData
  167. **/
  168. @PostMapping(value = "/saveInitialPage")
  169. public ResultData saveInitialPage(@RequestBody SceneEditParamVO param) throws Exception {
  170. return sceneProService.saveInitialPage(param);
  171. }
  172. /**
  173. * <p>
  174. 保存背景音乐(只是编辑页面生效)
  175. * </p>
  176. * @author dengsixing
  177. * @date 2022/1/12
  178. * @param param
  179. * @return com.fdkankan.common.response.ResultData
  180. **/
  181. @PostMapping(value = "/saveBackgroundMusic")
  182. public ResultData saveBackgroundMusic(@RequestBody SceneEditParamVO param) throws Exception {
  183. return sceneProService.saveBackgroundMusic(param);
  184. }
  185. /**
  186. * <p>
  187. 保存地面logo
  188. * </p>
  189. * @author dengsixing
  190. * @date 2022/1/12
  191. * @param param
  192. * @return com.fdkankan.common.response.ResultData
  193. **/
  194. @PostMapping(value = "/saveFloorLogo")
  195. public ResultData saveFloorLogo(@RequestBody SceneEditParamVO param) throws Exception {
  196. return sceneProService.saveFloorLogo(param);
  197. }
  198. /**
  199. * <p>
  200. 保存场景热点
  201. * </p>
  202. * @author dengsixing
  203. * @date 2022/1/12
  204. * @param param
  205. * @return com.fdkankan.common.response.ResultData
  206. **/
  207. @PostMapping(value = "/tagSave")
  208. public ResultData tagSave(@RequestBody @Validated SaveHotParamVO param) throws Exception {
  209. return sceneProService.tagSave(param);
  210. }
  211. /**
  212. * <p>
  213. 保存场景热点
  214. * </p>
  215. * @author dengsixing
  216. * @date 2022/1/12
  217. * @param param
  218. * @return com.fdkankan.common.response.ResultData
  219. **/
  220. @PostMapping(value = "/saveShopHot")
  221. public ResultData saveShopHot(@RequestBody SceneEditParamVO param) throws Exception {
  222. return sceneProService.saveShopHot(param);
  223. }
  224. /**
  225. * <p>
  226. 保存场景热点
  227. * </p>
  228. * @author dengsixing
  229. * @date 2022/1/12
  230. * @param param
  231. * @return com.fdkankan.common.response.ResultData
  232. **/
  233. @PostMapping(value = "/saveOverlay")
  234. public ResultData saveOverlay(@RequestBody SceneEditParamVO param) throws Exception {
  235. return sceneProService.saveOverlay(param);
  236. }
  237. /**
  238. * <p>
  239. 保存导览静态数据
  240. * </p>
  241. * @author dengsixing
  242. * @date 2022/1/12
  243. * @param param
  244. * @return com.fdkankan.common.response.ResultData
  245. **/
  246. @PostMapping(value = "/saveScreencapData")
  247. public ResultData saveScreencapData(@RequestBody SceneEditParamVO param) throws Exception {
  248. return sceneProService.saveScreencapData(param);
  249. }
  250. /**
  251. * <p>
  252. 修改场景秘钥
  253. * </p>
  254. * @author dengsixing
  255. * @date 2022/1/12
  256. * @param param
  257. * @return com.fdkankan.common.response.ResultData
  258. **/
  259. @PostMapping(value = "/saveSceneKey")
  260. public ResultData saveSceneKey(@RequestBody SceneEditParamVO param) throws Exception {
  261. return sceneProService.saveSceneKey(param);
  262. }
  263. /**
  264. * <p>
  265. 增加热点媒体文件
  266. * </p>
  267. * @author dengsixing
  268. * @date 2022/1/12
  269. * @param param
  270. * @return com.fdkankan.common.response.ResultData
  271. **/
  272. @PostMapping(value = "/saveScreencapFile")
  273. public ResultData saveScreencapFile(@RequestBody SceneEditParamVO param) throws Exception {
  274. return sceneProService.saveScreencapFile(param);
  275. }
  276. /**
  277. * <p>
  278. 上传场景的热点媒体文件
  279. * </p>
  280. * @author dengsixing
  281. * @date 2022/1/12
  282. * @param param
  283. * @param file
  284. * @return com.fdkankan.common.response.ResultData
  285. **/
  286. @PostMapping(value = "/uploadHotMedia")
  287. public ResultData uploadHotMedia(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
  288. return sceneProService.uploadHotMedia(param, file);
  289. }
  290. /**
  291. * <p>
  292. 上传场景的Overlay媒体文件
  293. * </p>
  294. * @author dengsixing
  295. * @date 2022/1/12
  296. * @param param
  297. * @param file
  298. * @return com.fdkankan.common.response.ResultData
  299. **/
  300. @PostMapping(value = "/uploadOverlayMedia")
  301. public ResultData uploadOverlayMedia(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
  302. return sceneProService.uploadOverlayMedia(param, file);
  303. }
  304. /**
  305. * <p>
  306. 增加热点媒体文件
  307. * </p>
  308. * @author dengsixing
  309. * @date 2022/1/12
  310. * @param param
  311. * @return com.fdkankan.common.response.ResultData
  312. **/
  313. @PostMapping(value = "/addHotMediaInfo")
  314. public ResultData addHotMediaInfo(@RequestBody SceneEditParamVO param) throws Exception {
  315. return sceneProService.addHotMediaInfo(param);
  316. }
  317. /**
  318. * <p>
  319. 保存漫游可行
  320. * </p>
  321. * @author dengsixing
  322. * @date 2022/1/12
  323. * @param param
  324. * @return com.fdkankan.common.response.ResultData
  325. **/
  326. @PostMapping(value = "/saveRoam")
  327. public ResultData saveRoam(@RequestBody @Validated BaseDataParamVO param) throws Exception {
  328. return sceneProService.saveRoam(param);
  329. }
  330. /**
  331. * 保存热点可见性的数据
  332. * @return
  333. */
  334. @PostMapping(value = "/saveTagsVisible")
  335. public ResultData saveTagsVisible(@RequestBody @Validated SaveTagsVisibleParamVO param) throws Exception {
  336. return sceneProService.saveTagsVisible(param);
  337. }
  338. /**
  339. * 获取从浏览器的音频
  340. */
  341. @PostMapping(value = "/getRecordAudioFromBrowser")
  342. public ResultData getRecordAudioFromBrowser(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception{
  343. return sceneProService.getRecordAudioFromBrowser(param, file);
  344. }
  345. /**
  346. * 新增画墙重建模型(钟文)
  347. */
  348. @PostMapping(value = "/uploadFloorJson")
  349. public ResultData uploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception{
  350. return sceneProService.uploadFloorJson(param);
  351. }
  352. /**
  353. * 安居客
  354. */
  355. @PostMapping(value = "/uploadFloorJsonAjk")
  356. public ResultData uploadFloorJsonAjk(FileParamVO param, @RequestParam("file") MultipartFile[] file) throws Exception{
  357. return sceneProService.uploadFloorJsonAjk(param, file);
  358. }
  359. /**
  360. * 重置画墙重建模型
  361. * @return
  362. */
  363. @PostMapping(value = "/resetUploadFloorJson")
  364. public ResultData resetUploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception {
  365. return sceneProService.resetUploadFloorJson(param);
  366. }
  367. /**
  368. * 上传二维码和分享的logo
  369. * @return
  370. */
  371. @RequestMapping(value = "/uploadShareLogo", method = RequestMethod.POST)
  372. public ResultData uploadShareLogo(@RequestParam("num") String sceneNum, @RequestParam("file") MultipartFile file) throws Exception {
  373. SceneEditParamVO base = new SceneEditParamVO();
  374. base.setNum(sceneNum);
  375. return sceneProService.uploadShareLogo(base, file);
  376. }
  377. /**
  378. * 上传图片多媒体数据,直接到七牛云
  379. * @param file
  380. * @return
  381. */
  382. @PostMapping(value = "/uploadPic")
  383. public ResultData uploadPic(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
  384. return sceneProService.uploadPic(param, file);
  385. }
  386. /**
  387. * 直接上传hot.json到oss
  388. * @return
  389. */
  390. @PostMapping(value = "/uploadHotJsonToOss")
  391. public ResultData uploadHotJsonToOss(@RequestBody SceneEditParamVO param) throws Exception {
  392. return sceneProService.uploadHotJsonToOss(param);
  393. }
  394. /**
  395. * 删除oss的数据
  396. * @return
  397. */
  398. @PostMapping(value = "/deleteOss")
  399. public ResultData deleteOss(@RequestBody FileParamVO param) throws Exception {
  400. return sceneProService.deleteOss(param);
  401. }
  402. /**
  403. * 上传图片多媒体数据,直接到七牛云
  404. * @param file
  405. * @return
  406. */
  407. @PostMapping(value = "/uploadFloorplanPng")
  408. public ResultData uploadFloorplanPng(FileParamVO param, @RequestParam("file") MultipartFile[] file) throws Exception {
  409. return sceneProService.uploadFloorplanPng(param, file);
  410. }
  411. /**
  412. * 检验视频网站url是否正确
  413. * @return
  414. */
  415. @PostMapping(value = "/checkVideoUrl")
  416. public ResultData checkVideoUrl(@RequestBody FileParamVO param){
  417. return sceneProService.checkVideoUrl(param);
  418. }
  419. /**
  420. * 肖安需求,下载场景obj和贴图
  421. */
  422. @PostMapping(value = "/downloadTexData")
  423. public ResultData downloadTexData(@RequestBody SceneEditParamVO param) throws Exception {
  424. return sceneProService.downloadTexData(param);
  425. }
  426. /**
  427. * 肖安需求,上传修改后的obj和贴图
  428. * @param file
  429. * @return
  430. */
  431. // @SystemControllerLog(description = "上传修改后的obj和贴图")
  432. @PostMapping(value = "/uploadObjAndImg")
  433. public ResultData uploadObjAndImg(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
  434. return sceneProService.uploadObjAndImg(param, file);
  435. }
  436. /**
  437. * 修改logoBottom状态
  438. * @param
  439. * @return
  440. */
  441. @PostMapping(value = "/uploadLogoBottomStatus")
  442. public ResultData uploadLogoBottomStatus(@RequestBody FileParamVO param) throws Exception {
  443. return sceneProService.uploadLogoBottomStatus(param);
  444. }
  445. /**
  446. * 保存通用json数据
  447. */
  448. @PostMapping(value = "/saveJsonData")
  449. public ResultData saveJsonData(@RequestBody FileParamVO param) throws Exception{
  450. return sceneProService.saveJsonData(param);
  451. }
  452. /**
  453. * 下载点位全景图或视频
  454. */
  455. @PostMapping(value = "/downloadPanoramaOrVideo")
  456. public ResultData downloadPanoramaOrVideo(@RequestBody FileParamVO param) throws Exception{
  457. return sceneProService.downloadPanoramaOrVideo(param);
  458. }
  459. /**
  460. * 上传点位全景图或视频
  461. */
  462. @PostMapping(value = "/uploadPanoramaOrVideo")
  463. public ResultData uploadPanoramaOrVideo(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception{
  464. return sceneProService.uploadPanoramaOrVideo(param, file);
  465. }
  466. /**
  467. * 上传绿幕抠图视频
  468. */
  469. @PostMapping(value = "/uploadROIVideo")
  470. public ResultData uploadROIVideo(FileParamVO param, @RequestParam(name = "file", required = false) MultipartFile file) throws Exception{
  471. return sceneProService.uploadROIVideo(param, file);
  472. }
  473. /**
  474. * 删除绿幕抠图视频
  475. */
  476. @PostMapping(value = "/deleteROIVideo")
  477. public ResultData deleteROIVideo(@RequestBody FileParamVO param) throws Exception{
  478. return sceneProService.deleteROIVideo(param);
  479. }
  480. /**
  481. * 上传场景背景音乐
  482. */
  483. @PostMapping(value = "/uploadBgMusic")
  484. public ResultData uploadBgMusic(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception{
  485. return sceneProService.uploadBgMusic(param, file);
  486. }
  487. /**
  488. * 删除上传的场景背景音乐
  489. */
  490. @PostMapping(value = "/deleteUploadBgMusic")
  491. public ResultData deleteUploadBgMusic(@RequestBody FileParamVO param) throws Exception{
  492. return sceneProService.deleteUploadBgMusic(param);
  493. }
  494. /**
  495. * 保存关联全景图
  496. */
  497. @PostMapping(value = "/savePanorama")
  498. public ResultData savePanorama(FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception{
  499. return sceneProService.savePanorama(param, file);
  500. }
  501. /**
  502. * 保存关联全景图
  503. */
  504. @PostMapping(value = "/savePanoramaJson")
  505. public ResultData savePanoramaJson(@RequestBody FileParamVO param) throws Exception{
  506. return sceneProService.savePanoramaJson(param);
  507. }
  508. /**
  509. * 保存关联全景图json
  510. */
  511. @PostMapping(value = "/copyAndUpdateFloorJson")
  512. public ResultData copyAndUpdateFloorJson(@RequestBody FileParamVO param) throws Exception{
  513. return sceneProService.copyAndUpdateFloorJson(param);
  514. }
  515. /**
  516. * 保存关联全景图json
  517. */
  518. @PostMapping(value = "/updateFloorJson")
  519. public ResultData updateFloorJson(@RequestBody FileParamVO param) throws Exception{
  520. return sceneProService.updateFloorJson(param);
  521. }
  522. /**
  523. * 下载点位数据
  524. */
  525. @PostMapping(value = "/downloadVisionData")
  526. public ResultData downloadVisionData(@RequestBody SceneEditParamVO param) throws Exception{
  527. return sceneProService.downloadVisionData(param);
  528. }
  529. /**
  530. * 下载全景图数据
  531. */
  532. @PostMapping(value = "/downloadPanoramaData")
  533. public ResultData downloadPanoramaData(@RequestBody SceneEditParamVO param) throws Exception{
  534. return sceneProService.downloadPanoramaData(param);
  535. }
  536. /**
  537. * <p>
  538. 上传后保存
  539. * </p>
  540. * @author dengsixing
  541. * @date 2022/1/20
  542. * @param param
  543. * @return com.fdkankan.common.response.ResultData
  544. **/
  545. @PostMapping(value = "/saveUpload")
  546. public ResultData saveUpload(@RequestBody @Validated SaveUploadParamVO param) throws Exception{
  547. return sceneEditInfoService.saveUpload(param);
  548. }
  549. /**
  550. * <p>
  551. 上传后保存
  552. * </p>
  553. * @author dengsixing
  554. * @date 2022/1/20
  555. * @param param
  556. * @return com.fdkankan.common.response.ResultData
  557. **/
  558. @PostMapping(value = "/save/cad")
  559. public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{
  560. return sceneEditInfoService.saveCad(param);
  561. }
  562. /**
  563. * 获取场景详情
  564. */
  565. @GetMapping(value = "/getInfo")
  566. public SceneInfoVO getInfo(@Validated SceneInfoParamVO param){
  567. param.setReqType(SceneInfoReqType.EDIT.code());
  568. return sceneEditInfoService.getSceneInfo(param);
  569. }
  570. /**
  571. * <p>
  572. 批量上传全景照片
  573. * </p>
  574. * @author dengsixing
  575. * @date 2022/2/16
  576. * @param num
  577. * @param file
  578. * @return java.util.List<java.lang.String>
  579. **/
  580. @PostMapping(value = "/uploadPanorama")
  581. public List<String> uploadPanorama(@RequestParam(value = "num") String num,
  582. @RequestParam("file") MultipartFile file) throws Exception {
  583. return sceneEditInfoService.uploadPanorama(num, file);
  584. }
  585. }