소스 검색

案件下载

lyhzzz 4 달 전
부모
커밋
4af622623f

+ 4 - 1
src/main/java/com/fdkankan/openApi/constant/JmgaConstant.java

@@ -33,6 +33,9 @@ public class JmgaConstant {
     public static final String API_GET_DOWNLOAD_PROCESS = "/service/manage/inner/downloadProcess";
 
 
-
+    public static final String API_GET_LIST_CASE = "/fusion/inner/caseList";
+    public static final String API_GET_CHECK_DOWNLOAD_CASE = "/fusion/inner/checkDown";
+    public static final String API_GET_DOWN_SCENE_CASE = "/fusion/inner/down";
+    public static final String API_GET_DOWNLOAD_PROCESS_CASE = "/fusion/inner/process";
 
 }

+ 51 - 0
src/main/java/com/fdkankan/openApi/controller/www/CaseController.java

@@ -0,0 +1,51 @@
+package com.fdkankan.openApi.controller.www;
+
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import com.dtflys.forest.annotation.JSONBody;
+import com.fdkankan.openApi.aop.RedisLimit;
+import com.fdkankan.openApi.aop.ValidateApi;
+import com.fdkankan.openApi.aop.ValidateIp;
+import com.fdkankan.openApi.service.fuison.CaseService;
+import com.fdkankan.openApi.service.www.IDownSceneService;
+import com.fdkankan.openApi.vo.www.CaseParam;
+import com.fdkankan.web.response.ResultData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Slf4j
+@RestController
+@RequestMapping("/case")
+public class CaseController {
+
+    @Autowired
+    CaseService caseService;
+
+
+    /**
+     * 获取案件列表
+     */
+    @SaIgnore
+    @PostMapping("/getCaseList")
+    @RedisLimit(name = "case/getCaseList", limitCount = 1, period = 30)
+    @ValidateApi(method = "case:getCaseList")
+    @ValidateIp
+    public ResultData getCaseOfflinePage(@RequestBody CaseParam param)  {
+
+        return caseService.caseList(param);
+    }
+
+    /**
+     * 获取案件离线包
+     */
+    @SaIgnore
+    @GetMapping("/getCaseOfflinePage/{caseId}")
+    @RedisLimit(name = "case/getCaseOfflinePage", limitCount = 1, period = 30)
+    @ValidateApi(method = "case:getCaseOfflinePage")
+    @ValidateIp
+    public ResultData getCaseOfflinePage(@PathVariable Integer caseId)  {
+
+        return ResultData.ok(caseService.getCaseOfflinePage(caseId));
+    }
+}

+ 60 - 0
src/main/java/com/fdkankan/openApi/service/fuison/CaseService.java

@@ -0,0 +1,60 @@
+package com.fdkankan.openApi.service.fuison;
+
+import com.alibaba.fastjson.JSONObject;
+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.JmgaClient;
+import com.fdkankan.openApi.vo.www.CaseParam;
+import com.fdkankan.web.response.ResultData;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CaseService {
+
+    @Autowired
+    JmgaClient jmgaClient;
+    public ResultData caseList(CaseParam param) {
+        return  jmgaClient.post(JmgaConstant.API_GET_LIST_CASE ,param);
+
+    }
+
+    public DownSceneDto getCaseOfflinePage(Integer caseId) {
+        if(caseId == null){
+            throw new BusinessException(ErrorCode.PARAM_ERROR);
+        }
+        ResultData checkResult = jmgaClient.get(JmgaConstant.API_GET_CHECK_DOWNLOAD_CASE + "?caseId=" + caseId );
+        if(checkResult.getCode() != 0 || checkResult.getData() == null){
+            throw new BusinessException(checkResult.getCode(),checkResult.getMessage());
+        }
+        JSONObject checkObject = JSONObject.parseObject(JSONObject.toJSONString(checkResult.getData()));
+        Integer checkStatus = checkObject.getInteger("downloadStatus");
+        String checkUrl = checkObject.getString("downloadUrl");
+        if(StringUtils.isNotBlank(checkUrl)){
+            return new DownSceneDto(checkUrl);
+        }
+        if(checkStatus !=1){
+            ResultData downResult = jmgaClient.get(JmgaConstant.API_GET_DOWN_SCENE_CASE + "?caseId=" + caseId );
+            if(downResult.getCode() != 0 || downResult.getData() == null){
+                throw new BusinessException(downResult.getCode(),downResult.getMessage());
+            }
+        }
+
+        ResultData processResult = jmgaClient.get(JmgaConstant.API_GET_DOWNLOAD_PROCESS_CASE + "?caseId=" + caseId );
+        if(processResult.getCode() != 0 || processResult.getData() == null){
+            throw new BusinessException(processResult.getCode(),processResult.getMessage());
+        }
+
+        JSONObject processObj = JSONObject.parseObject(JSONObject.toJSONString(processResult.getData()));
+        String processUrl = processObj.getString("url");
+        Integer percent = processObj.getInteger("percent");
+        Integer processStatus = processObj.getInteger("status");
+        if(processStatus == 1003){
+            return new DownSceneDto(processUrl,percent,-1);
+        }
+        return new DownSceneDto(processUrl,percent);
+    }
+}

+ 13 - 0
src/main/java/com/fdkankan/openApi/vo/www/CaseParam.java

@@ -0,0 +1,13 @@
+package com.fdkankan.openApi.vo.www;
+
+import com.fdkankan.web.request.RequestBase;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Data
+public class CaseParam extends RequestBase {
+    private Integer caseId;
+    private String caseTitle;
+}