|
@@ -1,18 +1,38 @@
|
|
|
package com.fdkankan.manage.httpClient.service;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fdkankan.common.util.JwtUtil;
|
|
|
import com.fdkankan.manage.common.Result;
|
|
|
+import com.fdkankan.manage.common.ResultCode;
|
|
|
+import com.fdkankan.manage.common.ShellUtil;
|
|
|
+import com.fdkankan.manage.config.FyunConfig;
|
|
|
+import com.fdkankan.manage.exception.BusinessException;
|
|
|
import com.fdkankan.manage.httpClient.client.OverallClient;
|
|
|
import com.fdkankan.manage.httpClient.param.WorkOfflineDTO;
|
|
|
import com.fdkankan.manage.httpClient.vo.OverallParam;
|
|
|
import com.fdkankan.manage.httpClient.vo.OverallVo;
|
|
|
+import com.fdkankan.manage.service.IDownService;
|
|
|
+import com.fdkankan.manage.vo.response.DownVo;
|
|
|
+import com.fdkankan.manage.vo.response.DownloadProcessVo;
|
|
|
+import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class OverallService {
|
|
|
@Autowired
|
|
|
OverallClient overallClient;
|
|
|
+ @Autowired
|
|
|
+ RabbitMqProducer rabbitMqProducer;
|
|
|
+ @Autowired
|
|
|
+ IDownService downService;
|
|
|
+ @Autowired
|
|
|
+ FyunConfig fyunConfig;
|
|
|
|
|
|
private static String appId ="BDA385EC848C1A425F746869011C8D23";
|
|
|
private static String key ="appId";
|
|
@@ -24,8 +44,56 @@ public class OverallService {
|
|
|
return overallClient.list(param,appId,key);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public void getSceneListByWorkId(String workId){
|
|
|
- Result offlineDetail = overallClient.getOfflineDetail(new WorkOfflineDTO(workId),appId,key);
|
|
|
+ try {
|
|
|
+
|
|
|
+ OverallVo offlineDetail = overallClient.getOfflineDetail(new WorkOfflineDTO(workId),appId,key);
|
|
|
+ if(offlineDetail == null || offlineDetail.getCode() !=0){
|
|
|
+ throw new BusinessException(ResultCode.OVERALL_VIEW_ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
+ Object data = offlineDetail.getData();
|
|
|
+
|
|
|
+ WorkOfflineDTO dto = JSONObject.parseObject(JSONObject.toJSONString(data),WorkOfflineDTO.class);
|
|
|
+ if(dto.getSceneCodes() != null && !dto.getSceneCodes().isEmpty()){ //下载场景mesh离线包
|
|
|
+ for (String sceneCode : dto.getSceneCodes()) {
|
|
|
+ log.info("下载mesh场景:{}",sceneCode);
|
|
|
+ DownVo downVo = downService.checkDownLoad(sceneCode, 1);
|
|
|
+ if(downVo.getDownloadStatus() == 3 && StringUtils.isNotBlank(downVo.getDownloadUrl())){
|
|
|
+ downScene(downVo.getDownloadUrl(),dto.getPath());
|
|
|
+ }else {
|
|
|
+ DownVo down = downService.down(sceneCode, 1);
|
|
|
+ if(down.getDownloadStatus() == 1){
|
|
|
+ DownloadProcessVo downloadProcessVo = downService.downloadProcess(sceneCode, 1);
|
|
|
+ if(downloadProcessVo.getStatus() == 1003){
|
|
|
+ log.info("下载场景失败:{}",sceneCode);
|
|
|
+ throw new BusinessException(ResultCode.DOWN_SCENE_ERROR);
|
|
|
+ }
|
|
|
+ while (downloadProcessVo.getStatus() != 1002 ){
|
|
|
+ downloadProcessVo = downService.downloadProcess(sceneCode, 1);
|
|
|
+ Thread.sleep(2000L);
|
|
|
+ }
|
|
|
+ downScene(downloadProcessVo.getUrl(),dto.getPath());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ rabbitMqProducer.sendByWorkQueue("qjkk-work-offline", BeanUtil.beanToMap(dto));
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("全景看看访问失败:{}",e);
|
|
|
+ throw new BusinessException(ResultCode.OVERALL_VIEW_ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+ private void downScene(String downloadUrl, String path) {
|
|
|
+ ShellUtil.yunDownload(downloadUrl.replace(fyunConfig.getFyunHost(), ""),path +"/mesh");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|