Bladeren bron

下载场景

lyhzzz 11 maanden geleden
bovenliggende
commit
2e7bd37b71

+ 6 - 0
src/main/java/com/fdkankan/openApi/constant/JmgaConstant.java

@@ -28,5 +28,11 @@ public class JmgaConstant {
     public static final String API_GET_AUTH_SCENE_LIST = "/service/manage/inner/getAuthSceneList";
 
 
+    public static final String API_GET_CHECK_DOWNLOAD = "/service/manage/inner/checkDownLoad";
+    public static final String API_GET_DOWN_SCENE = "/service/manage/inner/downScene";
+    public static final String API_GET_DOWNLOAD_PROCESS = "/service/manage/inner/downloadProcess";
+
+
+
 
 }

+ 35 - 0
src/main/java/com/fdkankan/openApi/controller/www/DownSceneController.java

@@ -0,0 +1,35 @@
+package com.fdkankan.openApi.controller.www;
+
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import com.fdkankan.openApi.aop.RedisLimit;
+import com.fdkankan.openApi.aop.ValidateApi;
+import com.fdkankan.openApi.service.www.IDownSceneService;
+import com.fdkankan.web.response.ResultData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@RestController
+@RequestMapping("/downScene")
+public class DownSceneController {
+
+    @Autowired
+    IDownSceneService downSceneService;
+
+    /**
+     * 获取场景离线包
+     */
+    @SaIgnore
+    @GetMapping("/getSceneOfflinePage/{num}")
+    @RedisLimit(name = "downScene/getSceneOfflinePage", limitCount = 1, period = 30)
+    @ValidateApi(method = "downScene:getSceneOfflinePage")
+    public ResultData getSceneOfflinePage(@PathVariable String num)  {
+
+        return ResultData.ok(downSceneService.getSceneOfflinePage(num));
+    }
+}

+ 20 - 0
src/main/java/com/fdkankan/openApi/dto/www/DownSceneDto.java

@@ -0,0 +1,20 @@
+package com.fdkankan.openApi.dto.www;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+public class DownSceneDto {
+    private String url;
+    private Integer percent;
+
+    public DownSceneDto(String url) {
+        this.url = url;
+        this.percent = 100;
+    }
+
+    public DownSceneDto(String url,Integer percent) {
+        this.url = url;
+        this.percent = percent;
+    }
+}

+ 4 - 0
src/main/java/com/fdkankan/openApi/httpclient/client/JmgaClient.java

@@ -19,4 +19,8 @@ public interface JmgaClient {
     ResultData post(@Var("url") String url, @JSONBody Object param);
 
 
+    @Get(
+            url="{url}"
+    )
+    ResultData get(@Var("url") String url);
 }

+ 7 - 0
src/main/java/com/fdkankan/openApi/service/www/IDownSceneService.java

@@ -0,0 +1,7 @@
+package com.fdkankan.openApi.service.www;
+
+import com.fdkankan.openApi.dto.www.DownSceneDto;
+
+public interface IDownSceneService {
+    DownSceneDto getSceneOfflinePage(String num);
+}

+ 56 - 0
src/main/java/com/fdkankan/openApi/service/www/impl/DownSceneServiceImpl.java

@@ -0,0 +1,56 @@
+package com.fdkankan.openApi.service.www.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.openApi.constant.JmgaConstant;
+import com.fdkankan.openApi.dto.www.DownSceneDto;
+import com.fdkankan.openApi.httpclient.client.FdKKClient;
+import com.fdkankan.openApi.httpclient.client.JmgaClient;
+import com.fdkankan.openApi.service.www.IDownSceneService;
+import com.fdkankan.web.response.ResultData;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+
+@Service
+public class DownSceneServiceImpl implements IDownSceneService {
+
+    @Autowired
+    JmgaClient jmgaClient;
+
+
+    @Override
+    public DownSceneDto getSceneOfflinePage(String num) {
+        if(StringUtils.isBlank(num)){
+            throw new BusinessException(ErrorCode.PARAM_ERROR);
+        }
+        ResultData checkResult = jmgaClient.get(JmgaConstant.API_GET_CHECK_DOWNLOAD + "?num=" + num);
+        if(checkResult.getCode() != 0 || checkResult.getData() == null){
+            throw new BusinessException(checkResult.getCode(),checkResult.getMessage());
+        }
+        JSONObject checkObject = JSONObject.parseObject(JSONObject.toJSONString(checkResult.getData()));
+        String checkUrl = checkObject.getString("downloadUrl");
+        if(StringUtils.isNotBlank(checkUrl)){
+            return new DownSceneDto(checkUrl);
+        }
+        ResultData downResult = jmgaClient.get(JmgaConstant.API_GET_DOWN_SCENE + "?num=" + num);
+        if(downResult.getCode() != 0 || downResult.getData() == null){
+            throw new BusinessException(downResult.getCode(),downResult.getMessage());
+        }
+
+        ResultData processResult = jmgaClient.get(JmgaConstant.API_GET_DOWNLOAD_PROCESS + "?num=" + num);
+        if(processResult.getCode() != 0 || processResult.getData() == null){
+            throw new BusinessException(processResult.getCode(),processResult.getMessage());
+        }
+
+        JSONObject processObj = JSONObject.parseObject(JSONObject.toJSONString(checkResult.getData()));
+        String processUrl = processObj.getString("url");
+        Integer percent = processObj.getInteger("percent");
+
+        return new DownSceneDto(processUrl,percent);
+    }
+}