SceneController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. package com.fdkankan.scene.controller;
  2. import cn.hutool.core.lang.UUID;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.fdkankan.common.constant.SceneInfoReqType;
  6. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  7. import com.fdkankan.model.constants.UploadFilePath;
  8. import com.fdkankan.scene.annotation.CheckPermit;
  9. import com.fdkankan.scene.entity.SceneEditInfo;
  10. import com.fdkankan.scene.entity.ScenePlus;
  11. import com.fdkankan.scene.service.ISceneDynamicPanelService;
  12. import com.fdkankan.scene.service.ISceneService;
  13. import com.fdkankan.web.response.ResultData;
  14. import com.fdkankan.scene.service.ISceneEditInfoService;
  15. import com.fdkankan.scene.service.IScenePlusService;
  16. import com.fdkankan.scene.vo.BaseSceneParamVO;
  17. import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
  18. import com.fdkankan.scene.vo.SceneInfoParamVO;
  19. import com.fdkankan.scene.vo.SceneInfoVO;
  20. import com.fdkankan.web.controller.BaseController;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.*;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import javax.websocket.server.PathParam;
  26. import java.util.List;
  27. /**
  28. * <p>
  29. * 场景表 前端控制器
  30. * </p>
  31. *
  32. * @author dengsixing
  33. * @since 2021-12-23
  34. */
  35. @RestController
  36. @RequestMapping("/service/scene")
  37. public class SceneController extends BaseController {
  38. @Autowired
  39. private ISceneEditInfoService sceneEditInfoService;
  40. @Autowired
  41. private IScenePlusService scenePlusService;
  42. @Autowired
  43. private ISceneService sceneService;
  44. @Autowired
  45. private FYunFileServiceInterface fYunFileService;
  46. @Autowired
  47. private ISceneDynamicPanelService sceneDynamicPanelService;
  48. /**
  49. * <p>
  50. 获取场景详情
  51. * </p>
  52. * @author dengsixing
  53. * @date 2022/8/1
  54. * @param param
  55. * @return com.fdkankan.scene.vo.SceneInfoVO
  56. **/
  57. @GetMapping(value = "/getInfo")
  58. public SceneInfoVO getInfo(@Validated SceneInfoParamVO param) throws Exception{
  59. param.setReqType(SceneInfoReqType.VIEW.code());
  60. return sceneEditInfoService.getSceneInfo(param);
  61. }
  62. /**
  63. * <p>
  64. 根据场景密码打开场景
  65. * </p>
  66. * @author dengsixing
  67. * @date 2022/8/1
  68. * @param param
  69. * @return com.fdkankan.web.response.ResultData
  70. **/
  71. @PostMapping(value = "/check/key")
  72. public ResultData checkKey(@RequestBody @Validated SceneCheckKeyParamVO param) throws Exception {
  73. return sceneEditInfoService.checkKey(param);
  74. }
  75. /**
  76. * <p>
  77. 获取数据对接下载信息
  78. * </p>
  79. * @author dengsixing
  80. * @date 2022/8/1
  81. * @return com.fdkankan.web.response.ResultData
  82. **/
  83. @GetMapping(value = "/downLoadZSData")
  84. public ResultData downLoadZSData(String sceneNum) throws Exception{
  85. return scenePlusService.downLoadZSData(sceneNum);
  86. }
  87. /**
  88. * 上传人体抠图原图
  89. * @param num
  90. * @param file
  91. * @return
  92. * @throws Exception
  93. */
  94. @PostMapping(value = "/uploadBodySegment")
  95. public ResultData uploadBodySegment(@RequestParam("file") MultipartFile file,
  96. @RequestParam(value = "rotate", required = false) Integer rotate) throws Exception {
  97. return sceneService.uploadBodySegment(file, rotate);
  98. }
  99. /**
  100. * 获取人体抠图提取状态
  101. * @return ResultData
  102. * @throws Exception
  103. */
  104. @PostMapping(value = "/getBodySegmentStatus")
  105. public ResultData getBodySegmentStatus(@RequestParam(value = "serialNum") String uuid) throws Exception {
  106. return sceneService.getBodySegmentStatus(uuid);
  107. }
  108. @GetMapping("/jd")
  109. public ResultData jd(String path){
  110. fYunFileService.restoreFolder("test-4dkk-bak", path, 2);
  111. return ResultData.ok();
  112. }
  113. @GetMapping("/dj")
  114. public ResultData dj(String path){
  115. fYunFileService.copyFileToArchive("test-4dkankan", path, "test-4dkk-bak", path);
  116. return ResultData.ok();
  117. }
  118. @GetMapping("/checkGd")
  119. public ResultData checkGd(String path){
  120. return ResultData.ok(fYunFileService.checkStore("test-4dkk-bak", path));
  121. }
  122. /**
  123. * 查询是否有动态面板数据
  124. * @param num
  125. * @return
  126. */
  127. @GetMapping("/checkDynamicPanel")
  128. public ResultData checkDynamicPanel(@RequestParam("num") String num){
  129. return ResultData.ok(sceneDynamicPanelService.checkDynamicPanel(num));
  130. }
  131. @GetMapping("copyBoxModel/{num}/{count}")
  132. public ResultData copyBoxModel(@PathVariable("num") String num, @PathVariable("count") int count){
  133. ScenePlus scenePlusByNum = scenePlusService.getScenePlusByNum(num);
  134. SceneEditInfo byScenePlusId = sceneEditInfoService.getByScenePlusId(scenePlusByNum.getId());
  135. String boxModels = byScenePlusId.getBoxModels();
  136. List<JSONObject> boxModelList = JSON.parseObject(boxModels, List.class);
  137. JSONObject jsonObject = boxModelList.get(0);
  138. String sid= jsonObject.getString("sid");
  139. String glbKYE = String.format(UploadFilePath.USER_EDIT_PATH, num) + "boxModels/" + sid + ".glb";
  140. for (int i = 0; i < count; i++){
  141. String newSid = UUID.randomUUID().toString().replace("-","");
  142. String newglbKYE = String.format(UploadFilePath.USER_EDIT_PATH, num) + "boxModels/" + newSid.concat(".glb");
  143. fYunFileService.copyFileInBucket(glbKYE, newglbKYE);
  144. String jsonString = JSON.toJSONString(jsonObject).replace(sid, newSid);
  145. JSONObject jsonObject1 = JSON.parseObject(jsonString);
  146. boxModelList.add(jsonObject1);
  147. }
  148. byScenePlusId.setBoxModels(JSON.toJSONString(boxModelList));
  149. sceneEditInfoService.updateById(byScenePlusId);
  150. return ResultData.ok();
  151. }
  152. }