123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- package com.fdkankan.ucenter.controller;
- import cn.hutool.core.io.FileUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.aliyun.oss.OSSClient;
- import com.aliyun.oss.internal.OSSUtils;
- import com.fdkankan.common.util.JwtUtil;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.ucenter.common.BaseController;
- import com.fdkankan.ucenter.common.DownloadStatusEnum;
- import com.fdkankan.ucenter.common.Result;
- import com.fdkankan.ucenter.common.constants.ConstantFilePath;
- import com.fdkankan.ucenter.common.constants.NacosProperty;
- import com.fdkankan.ucenter.common.constants.ResultCode;
- import com.fdkankan.ucenter.common.constants.ResultCodeMsg;
- import com.fdkankan.ucenter.config.FyunConfig;
- import com.fdkankan.ucenter.entity.ScenePlus;
- import com.fdkankan.ucenter.entity.User;
- import com.fdkankan.ucenter.exception.BusinessException;
- import com.fdkankan.ucenter.httpClient.client.FdKKClient;
- import com.fdkankan.ucenter.httpClient.param.FdRoomVo;
- import com.fdkankan.ucenter.httpClient.param.UploadEditSceneParam;
- import com.fdkankan.ucenter.service.*;
- import com.fdkankan.ucenter.service.impl.TakeLookService;
- import com.fdkankan.ucenter.vo.request.RequestScene;
- import com.fdkankan.ucenter.vo.request.SceneParam;
- import com.fdkankan.ucenter.vo.response.DownloadProcessVo;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.codec.language.Nysiis;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.net.URL;
- import java.util.HashMap;
- import java.util.Objects;
- import java.util.UUID;
- /**
- * <p>
- * 场景表 前端控制器
- * </p>
- *
- * @author
- * @since 2022-07-04
- */
- @RestController
- @RequestMapping("/ucenter/user/scene")
- @Slf4j
- public class SceneController extends BaseController {
- @Autowired
- ISceneProService sceneProService;
- @Autowired
- IUserService userService;
- @Autowired
- IDownService downService;
- @Autowired
- ISceneUpgradeToV4Service sceneUpgradeToV4Service;
- @Autowired
- ISceneCooperationService sceneCooperationService;
- @Autowired
- ISceneService sceneService;
- @Autowired
- IScenePlusService scenePlusService;
- @Autowired
- TakeLookService takeLookService;
- @PostMapping("/findSceneNumber")
- public Result findSceneNumber(){
- return Result.success(sceneProService.findSceneNumber(getToken()));
- }
- @PostMapping("/getOldSceneList")
- public Result getOldSceneList(@RequestBody SceneParam param){
- User user = userService.getByToken(getToken());
- param.setUserId(user.getId());
- return Result.success(sceneService.pageList(param));
- }
- @PostMapping(value = "/list")
- public Result getScenes(@RequestBody RequestScene param) throws Exception {
- String username = JwtUtil.getUsername(getToken());
- return Result.success(sceneProService.getScenes(username, param));
- }
- @PostMapping("/newList")
- public Result newList(@RequestBody SceneParam param){
- String username = JwtUtil.getUsername(getToken());
- return Result.success(sceneProService.newList(param,username));
- }
- @PostMapping("/getOnlySceneList")
- public Result getOnlySceneList(@RequestBody SceneParam param){
- String username = JwtUtil.getUsername(getToken());
- param.setHasFolder(0);
- JSONObject jsonObject = sceneProService.newList(param, username);
- JSONObject pageInfo = jsonObject.getJSONObject("pageInfo");
- pageInfo.put("endRow",0);
- pageInfo.put("firstPage",param.getPageNum());
- pageInfo.put("hasNextPage",false);
- pageInfo.put("isLastPage",0);
- pageInfo.put("size",pageInfo.get("total"));
- Integer pages = pageInfo.getInteger("total") / param.getPageSize();
- pageInfo.put("pages",pageInfo.getInteger("total") % param.getPageSize() == 0 ? pages : pages + 1);
- return Result.success(pageInfo);
- }
- /**
- * 获取场景详情
- */
- @RequestMapping(value = "/detail", method = RequestMethod.POST)
- public Result getSceneDetail(@RequestBody SceneParam param) throws Exception {
- return Result.success(sceneProService.getSceneDetail(param.getSceneNum()));
- }
- @PostMapping("/copyScene")
- public Result copyScene(@RequestBody SceneParam param) throws Exception {
- String username = JwtUtil.getUsername(getToken());
- sceneProService.copyScene(param.getSceneNum(),username);
- return Result.success();
- }
- @PostMapping("/delete")
- public Result delete(@RequestBody SceneParam param) throws Exception {
- sceneProService.delete(param.getSceneNum(),getUserId(),param.getPlatform());
- return Result.success();
- }
- /**
- * 校验该场景有无下载资格
- */
- @PostMapping("/checkDownload")
- public Result checkDownload(@RequestBody SceneParam param) throws Exception {
- return Result.success( downService.checkDownLoad(param.getSceneNum(),param.getIsObj()) );
- }
- /**
- * 校验该场景有无下载资格
- * @param param
- * @return
- */
- @PostMapping("/downloadScene")
- public Result downloadScene(@RequestBody SceneParam param) throws Exception{
- String username = JwtUtil.getUsername(getToken());
- return Result.success(downService.down(param.getSceneNum(),username,param.getIsObj()));
- }
- /**
- * 获取下载进度
- * @param param
- * @return
- */
- @PostMapping("/downloadProcess")
- public Result downloadProcess(@RequestBody SceneParam param) throws Exception{
- User user = userService.getByUserName(JwtUtil.getUsername(this.getToken()));
- DownloadProcessVo downloadProcessVo = downService.downloadProcess(user.getId(), param.getSceneNum(),param.getIsObj());
- if(downloadProcessVo.getStatus() == DownloadStatusEnum.DOWNLOAD_FAILED_CODE){
- return Result.failure("下载失败!");
- }
- return Result.success(downloadProcessVo);
- }
- /**
- * 检查下载
- * num 场景码
- */
- @GetMapping("/checkDownLoadE57")
- public Result checkDownLoadE57(@RequestParam(required = false) String num){
- String username = JwtUtil.getUsername(getToken());
- return Result.success(downService.checkDownLoadE57(num,username));
- }
- /**
- * 下载场景
- * num 场景码
- */
- @GetMapping("/downSceneE57")
- public Result downSceneE57(@RequestParam(required = false) String num){
- String username = JwtUtil.getUsername(getToken());
- return Result.success(downService.downE57(num,username));
- }
- /**
- * 下载场景进度条
- * num 场景码
- */
- @GetMapping("/downloadProcessE57")
- public Result downloadProcessE57(@RequestParam(required = false) String num){
- String username = JwtUtil.getUsername(getToken());
- return Result.success(downService.downloadProcessE57(num,username));
- }
- /**
- *
- * 场景升级V4接口
- */
- @GetMapping("/upgradeToV4")
- public Result upgradeToV4(String num) throws Exception{
- return sceneUpgradeToV4Service.upgrade(num);
- }
- /**
- *
- * 场景升级进度查询接口
- */
- @GetMapping("/getUpgradeToV4Progress")
- public Result getUpgradeToV4Progress(String num) throws Exception{
- return sceneUpgradeToV4Service.getUpgradeToV4Progress(num);
- }
- /**
- *
- * 分页查询存在houseType文件的场景
- */
- @PostMapping("/pageSceneWithHouseType")
- public Result pageSceneWithHouseType(@RequestBody RequestScene param){
- return scenePlusService.pageSceneWithHouseType(param,this.getToken());
- }
- /**
- *
- * 根据场景码返回ar路径
- */
- @GetMapping("/getArPathByNum")
- public Result getArPathByNum(@RequestParam(value = "num") String num){
- return scenePlusService.getArPathByNum(num);
- }
- /**
- * 发起带看获取带看房间号
- */
- @GetMapping("/getTakeLookRoomId")
- public Result getTakeLookRoomId(@RequestParam(value = "num") String num){
- ScenePlus scenePlus = scenePlusService.getByNum(num);
- if(scenePlus == null){
- throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400002, ResultCodeMsg.FAILURE_MSG_400002);
- }
- if(scenePlus.getSceneStatus() != -2){
- throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400009, ResultCodeMsg.FAILURE_MSG_400009);
- }
- FdRoomVo fdRoomVo = takeLookService.getRoomIdByNum(num, scenePlus.getTitle(), getToken());
- takeLookService.openRoom(fdRoomVo.getRoomId(),getToken());
- return Result.success(fdRoomVo);
- }
- @GetMapping("/removePortrait")
- public Result removePortrait(@RequestParam(value = "num") String num){
- sceneProService.removePortrait(num);
- return Result.success();
- }
- @Autowired
- FYunFileServiceInterface fYunFileServiceInterface;
- @Autowired
- FdKKClient fdKKClient;
- @PostMapping("/uploadE57")
- public Result uploadE57(@RequestParam("file") MultipartFile file,
- @RequestParam(value = "isObj",required = false)Integer isObj,
- @RequestParam(value = "title",required = false)String title) {
- String originalFilename = file.getOriginalFilename();
- String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
- if(!suffix.equals(".e57")){
- throw new BusinessException(ResultCode.UPLOAD_ERROR2);
- }
- File targetFile = null;
- try {
- String newFileName = UUID.randomUUID().toString().replace("-","");
- String filePath = ConstantFilePath.MANAGE_PATH + "e57" + File.separator + newFileName +suffix;
- targetFile = new File(filePath);
- if(!targetFile.getParentFile().exists()){
- targetFile.getParentFile().mkdirs();
- }
- file.transferTo(targetFile);
- fYunFileServiceInterface.uploadFile(filePath,filePath.replace(ConstantFilePath.MANAGE_PATH,"ucenter/"));
- UploadEditSceneParam editSceneParam = new UploadEditSceneParam();
- editSceneParam.setTitle(title);
- editSceneParam.setUserId(getUser().getId());
- editSceneParam.setPath(filePath.replace(ConstantFilePath.MANAGE_PATH,"ucenter/"));
- editSceneParam.setIsObj(isObj);
- editSceneParam.setOtherType("E57_V4");
- JSONObject jsonObject = fdKKClient.reverseScene(editSceneParam);
- Integer code = jsonObject.getInteger("code");
- if(code != 0){
- log.info("调用失败-toFdCreateScene:{}",jsonObject);
- throw new BusinessException(ResultCode.UPLOAD_ERROR);
- }
- }catch (Exception e){
- log.info("调用失败-toFdCreateScene:",e);
- throw new BusinessException(ResultCode.UPLOAD_ERROR);
- }finally {
- if(targetFile != null){
- try {
- FileUtil.del(targetFile);
- }catch (Exception e){
- log.info("删除文件失败:{}",targetFile.getPath());
- }
- }
- }
- return Result.success();
- }
- @Autowired
- FyunConfig fyunConfig;
- @PostMapping("/getUploadUrl")
- public Result getUploadUrl( @RequestParam(value = "fileName",required = false)String fileName) {
- String newFileName = UUID.randomUUID().toString().replace("-","");
- String suffix = fileName.substring(fileName.lastIndexOf("."));
- URL presignedUrl = fyunConfig.getPresignedUrl("ucenter/e57/" + newFileName + suffix);
- HashMap<String, Object> map = new HashMap<>();
- map.put("newFileName",newFileName + suffix);
- map.put("url",presignedUrl.toString());
- return Result.success(map);
- }
- @PostMapping("/relevanceE57")
- public Result relevanceE57( @RequestParam(value = "isObj",required = false)Integer isObj,
- @RequestParam(value = "title",required = false)String title,
- @RequestParam(value = "newFileName",required = false)String newFileName ){
- UploadEditSceneParam editSceneParam = new UploadEditSceneParam();
- editSceneParam.setTitle(title);
- editSceneParam.setUserId(getUser().getId());
- editSceneParam.setPath("ucenter/e57/"+newFileName);
- editSceneParam.setIsObj(isObj);
- editSceneParam.setOtherType("E57_V4");
- JSONObject jsonObject = fdKKClient.reverseScene(editSceneParam);
- Integer code = jsonObject.getInteger("code");
- if(code != 0){
- log.info("调用失败-toFdCreateScene:{}",jsonObject);
- throw new BusinessException(ResultCode.UPLOAD_ERROR);
- }
- return Result.success();
- }
- }
|