Bladeren bron

Dev yunapp

tsurumure 3 maanden geleden
bovenliggende
commit
f08613c6e8

+ 8 - 2
src/main/java/com/backendsys/modules/sdk/baidu/yunapp/controller/YunappController.java

@@ -2,6 +2,7 @@ package com.backendsys.modules.sdk.baidu.yunapp.controller;
 
 import com.backendsys.modules.common.config.security.annotations.Anonymous;
 import com.backendsys.modules.common.utils.Result;
+import com.backendsys.modules.sdk.baidu.yunapp.entity.AppOperateParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ExecuteScriptParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.TaskParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ScreenshotParams;
@@ -29,7 +30,7 @@ public class YunappController {
     }
 
     @Anonymous
-    @Operation(summary = "实例执行脚本查询")
+    @Operation(summary = "任务结果查询 (通用)")
     @PostMapping("/api/yunapp/executeScriptInfo")
     public Result executeScriptInfo(@RequestBody TaskParams taskParams) {
         return Result.success().put("data", yunappService.executeScriptInfo(taskParams.getTask_ids()));
@@ -49,6 +50,11 @@ public class YunappController {
         return Result.success().put("data", yunappService.screenshotInfo(taskParams.getTask_ids()));
     }
 
-
+    @Anonymous
+    @Operation(summary = "应用启停")
+    @PostMapping("/api/yunapp/appOperate")
+    public Result appOperate(@RequestBody AppOperateParams appOperateParams) {
+        return Result.success().put("data", yunappService.appOperate(appOperateParams));
+    }
 
 }

+ 18 - 0
src/main/java/com/backendsys/modules/sdk/baidu/yunapp/entity/AppOperateParams.java

@@ -0,0 +1,18 @@
+package com.backendsys.modules.sdk.baidu.yunapp.entity;
+
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppOperateParams {
+    @NotNull(message = "pad_codes 不能为空")
+    private List<String> pad_codes;
+    @NotEmpty(message = "operate_type 不能为空")
+    private String operate_type;
+    @NotEmpty(message = "package_name 不能为空")
+    private String package_name;
+
+}

+ 8 - 2
src/main/java/com/backendsys/modules/sdk/baidu/yunapp/service/YunappService.java

@@ -1,6 +1,7 @@
 package com.backendsys.modules.sdk.baidu.yunapp.service;
 
 import cn.hutool.json.JSONArray;
+import com.backendsys.modules.sdk.baidu.yunapp.entity.AppOperateParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ExecuteScriptParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ScreenshotParams;
 
@@ -11,7 +12,7 @@ public interface YunappService {
     // 实例执行脚本
     // https://yunapp.baidu.com/console/bgs/doc/?d=bgs-phone&p=PHONE_API_base_instance_execute_script
     JSONArray executeScript(ExecuteScriptParams executeScriptParams);
-    // 实例执行脚本
+    // 任务结果查询 (通用) (5-待执行, 6-执行中, 7-执行成功, 8-执行失败)
     // https://cloud.baidu.com/doc/ARMCM/s/2kei7tyr3#%E4%BB%BB%E5%8A%A1%E7%BB%93%E6%9E%9C%E6%9F%A5%E8%AF%A2
     JSONArray executeScriptInfo(List<Long> task_ids);
 
@@ -19,7 +20,12 @@ public interface YunappService {
     // 实例截图
     // https://yunapp.baidu.com/console/bgs/doc/?d=bgs-phone&p=PHONE_API_base_screenshot
     JSONArray screenshot(ScreenshotParams screenshotParams);
-    // 实例截图 查询结果
+    // 实例截图结果查询
     // https://yunapp.baidu.com/console/bgs/doc/?d=bgs-phone&p=PHONE_API_base_screenshot_info
     JSONArray screenshotInfo(List<Long> task_ids);
+
+
+    // 应用启停
+    // https://yunapp.baidu.com/console/bgs/doc/?d=bgs-phone&p=PHONE_API_base_app_start_and_stop
+    JSONArray appOperate(AppOperateParams appOperateParams);
 }

+ 38 - 1
src/main/java/com/backendsys/modules/sdk/baidu/yunapp/service/impl/YunappServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.backendsys.exception.CustException;
+import com.backendsys.modules.sdk.baidu.yunapp.entity.AppOperateParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ExecuteScriptParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.ScreenshotParams;
 import com.backendsys.modules.sdk.baidu.yunapp.entity.YuappSign;
@@ -124,7 +125,6 @@ public class YunappServiceImpl implements YunappService {
         } catch (Exception e) {
             throw new CustException(e.getMessage());
         }
-
     }
 
     /**
@@ -158,4 +158,41 @@ public class YunappServiceImpl implements YunappService {
             throw new CustException(e.getMessage());
         }
     }
+
+
+    /**
+     * 应用启停
+     * https://yunapp.baidu.com/console/bgs/doc/?d=bgs-phone&p=PHONE_API_base_app_start_and_stop
+     */
+    @Override
+    public JSONArray appOperate(AppOperateParams appOperateParams) {
+        // 签名
+        YuappSign signEntity = yunappUtil.getSign();
+
+        // 接口参数
+        Map<String, Object> params = new LinkedHashMap<>();
+        params.put("padCodes", appOperateParams.getPad_codes());
+        params.put("operateType", appOperateParams.getOperate_type());
+        params.put("packageName", appOperateParams.getPackage_name());
+        params.put("createTime", signEntity.getNonce());
+        params.put("msg", yunappUtil.getMsg(JSONUtil.toJsonStr(params), signEntity.getNonce()));
+
+        String url = "https://platform.armvm.com/command/apps/app-operate.html" + signEntity.toParams();
+        System.out.println("url = " + url);
+        System.out.println("params = " + params);
+        System.out.println("paramsStr = " + JSONUtil.toJsonStr(params));
+
+        // 发起请求
+        try(HttpResponse response = HttpUtil.createPost(url)
+                .body(JSONUtil.toJsonStr(params))
+                .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
+                .execute()
+        ) {
+            System.out.println("response = " + response.body());
+            return yunappUtil.getResponseJSONArray(response.body());
+        } catch (Exception e) {
+            throw new CustException(e.getMessage());
+        }
+    }
+
 }