InnerServiceImpl.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.fdkankan.common.constant.ErrorCode;
  5. import com.fdkankan.common.exception.BusinessException;
  6. import com.fdkankan.common.util.JwtUtil;
  7. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  8. import com.fdkankan.redis.constant.RedisKey;
  9. import com.fdkankan.redis.util.RedisUtil;
  10. import com.fdkankan.ucenter.common.Result;
  11. import com.fdkankan.ucenter.common.constants.ConstantFilePath;
  12. import com.fdkankan.ucenter.common.constants.ResultCode;
  13. import com.fdkankan.ucenter.entity.ScenePlus;
  14. import com.fdkankan.ucenter.entity.ScenePlusExt;
  15. import com.fdkankan.ucenter.entity.ScenePro;
  16. import com.fdkankan.ucenter.entity.User;
  17. import com.fdkankan.ucenter.service.*;
  18. import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
  19. import lombok.extern.slf4j.Slf4j;
  20. import org.apache.commons.lang3.ObjectUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import java.io.File;
  24. import java.util.Objects;
  25. /**
  26. * <p>
  27. * TODO
  28. * </p>
  29. *
  30. * @author dengsixing
  31. * @since 2022/9/27
  32. **/
  33. @Slf4j
  34. @Service
  35. public class InnerServiceImpl implements IInnerService {
  36. @Autowired
  37. private ISceneProService sceneProService;
  38. @Autowired
  39. private IScenePlusService scenePlusService;
  40. @Autowired
  41. private IScenePlusExtService scenePlusExtService;
  42. @Autowired
  43. private IUserService userService;
  44. @Autowired
  45. private RedisUtil redisUtil;
  46. @Autowired
  47. private FYunFileServiceInterface fYunFileService;
  48. @Override
  49. public Result createTokenByNum(String num) {
  50. Long userId = null;
  51. ScenePro scenePro = sceneProService.getByNum(num);
  52. if(Objects.nonNull(scenePro)){
  53. userId = scenePro.getUserId();
  54. }else{
  55. ScenePlus scenePlus = scenePlusService.getByNum(num);
  56. if(Objects.isNull(scenePlus)){
  57. return Result.failure("场景为空");
  58. }
  59. userId = scenePlus.getUserId();
  60. }
  61. User user = userService.getById(userId);
  62. String token = JwtUtil.createJWT(-1, user.getUserName(), "user");
  63. String redisKey = String.format(RedisKey.TOKEN_V3,token);
  64. redisUtil.set(redisKey, JSON.toJSONString(user), RedisKey.EXPIRE_TIME_2_HOUR);
  65. JSONObject object = new JSONObject();
  66. object.put("token", token);
  67. return Result.success(object);
  68. }
  69. @Override
  70. public String getSceneNumVersion(String num) {
  71. String version = null;
  72. ScenePro scenepro = sceneProService.getByNum(num);
  73. if(scenepro == null){
  74. ScenePlus plus = scenePlusService.getByNum(num);
  75. if(plus != null){
  76. version = "V4";
  77. }
  78. }else {
  79. version = "V3";
  80. }
  81. return version;
  82. }
  83. @Override
  84. public String querySceneDataSource(String num) {
  85. String dataSource = null;
  86. ScenePro scenePro = sceneProService.getByNum(num);
  87. if(Objects.isNull(scenePro)){
  88. ScenePlus scenePlus = scenePlusService.getByNum(num);
  89. if(Objects.isNull(scenePlus)){
  90. return Result.failure(ErrorCode.FAILURE_CODE_5005.code(), ErrorCode.FAILURE_CODE_5005.message()).toString();
  91. }
  92. ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
  93. dataSource = scenePlusExt.getDataSource();
  94. }else{
  95. dataSource = scenePro.getDataSource();
  96. }
  97. return dataSource;
  98. }
  99. @Override
  100. public Result downloadCapture(String num) {
  101. ScenePro scenePro = sceneProService.getByNum(num);
  102. ScenePlus scenePlus = scenePlusService.getByNum(num);
  103. if (ObjectUtils.isEmpty(scenePlus) && ObjectUtils.isEmpty(scenePro)) {
  104. return Result.failure("场景为空");
  105. }
  106. String dataSource = null;
  107. if(!ObjectUtils.isEmpty(scenePlus)){
  108. ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
  109. dataSource = scenePlusExt.getDataSource();
  110. }else{
  111. dataSource = scenePro.getDataSource();
  112. }
  113. String ossPath = ConstantFilePath.OSS_PREFIX
  114. + dataSource.replace(ConstantFilePath.BUILD_MODEL_PATH, "")
  115. .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "");
  116. if (!ossPath.endsWith("/")) {
  117. ossPath = ossPath.concat("/");
  118. }
  119. fYunFileService.downloadFileByCommand(dataSource + File.separator + "capture", ossPath);
  120. return Result.success();
  121. }
  122. @Override
  123. public Result querySceneNum(String path) {
  124. ScenePro scenePro = sceneProService.findByFileId(path);
  125. if (!ObjectUtils.isEmpty(scenePro)) {
  126. return Result.success(scenePro.getNum());
  127. }
  128. ScenePlusExt scenePlusExt = scenePlusExtService.getByUnicode(path);
  129. if (!ObjectUtils.isEmpty(scenePlusExt)) {
  130. return Result.success(scenePlusService.getById(scenePlusExt.getPlusId()).getNum());
  131. }
  132. return null;
  133. }
  134. @Override
  135. public LaserSceneInfoVo getSceneInfo(String num) {
  136. LaserSceneInfoVo vo = new LaserSceneInfoVo();
  137. ScenePro scenepro = sceneProService.getByNum(num);
  138. if(scenepro != null){
  139. vo.setNum(scenepro.getNum());
  140. vo.setVersion("V3");
  141. vo.setSceneSource(scenepro.getSceneSource());
  142. vo.setSceneScheme(scenepro.getSceneScheme());
  143. vo.setSceneKind(null);
  144. vo.setSceneResolution(null);
  145. vo.setObjScenePath(scenepro.getWebSite());
  146. vo.setIsObj(scenepro.getIsObj());
  147. vo.setAlgorithmTime(scenepro.getCreateTime());
  148. return vo;
  149. }
  150. ScenePlus plus = scenePlusService.getByNum(num);
  151. if(plus != null){
  152. ScenePlusExt plusExt = scenePlusExtService.getByPlusId(plus.getId());
  153. if(plusExt != null){
  154. vo.setNum(plus.getNum());
  155. vo.setVersion("V4");
  156. vo.setSceneSource(plus.getSceneSource());
  157. vo.setSceneScheme(plusExt.getSceneScheme());
  158. vo.setSceneKind(plusExt.getSceneKind());
  159. vo.setSceneResolution(plusExt.getSceneResolution());
  160. vo.setObjScenePath(plusExt.getWebSite());
  161. vo.setIsObj(plusExt.getIsObj());
  162. vo.setAlgorithmTime(plusExt.getAlgorithmTime());
  163. return vo;
  164. }
  165. }
  166. throw new BusinessException(ResultCode.FAILURE_CODE_400002,ResultCode.FAILURE_MSG_400002);
  167. }
  168. }