From 72c49f3afa22c4f84760d57001e45a4fadf2d482 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 12 三月 2026 09:32:33 +0800
Subject: [PATCH] #升级JDK17

---
 src/main/java/com/zy/asrs/controller/ApkBuildTaskController.java |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ApkBuildTaskController.java b/src/main/java/com/zy/asrs/controller/ApkBuildTaskController.java
index d9680a8..58fd0a7 100644
--- a/src/main/java/com/zy/asrs/controller/ApkBuildTaskController.java
+++ b/src/main/java/com/zy/asrs/controller/ApkBuildTaskController.java
@@ -1,8 +1,9 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
@@ -13,6 +14,13 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import jakarta.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -33,7 +41,7 @@
     @RequestMapping(value = "/apkBuildTask/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") Long id) {
-        return R.ok(apkBuildTaskService.selectById(id));
+        return R.ok(apkBuildTaskService.getById(id));
     }
 
     /**
@@ -47,22 +55,22 @@
             @RequestParam(required = false) String orderByType,
             @RequestParam Map<String, Object> param) {
         excludeTrash(param);
-        EntityWrapper<ApkBuildTask> wrapper = new EntityWrapper<>();
+        QueryWrapper<ApkBuildTask> wrapper = new QueryWrapper<>();
         convert(param, wrapper);
 
         if (!Cools.isEmpty(orderByField)) {
-            wrapper.orderBy(orderByField, "asc".equalsIgnoreCase(orderByType));
+            wrapper.orderBy(true, "asc".equalsIgnoreCase(orderByType), orderByField);
         } else {
-            wrapper.orderBy("id", false);
+            wrapper.orderBy(true, false, "id");
         }
 
-        return R.ok(apkBuildTaskService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(apkBuildTaskService.page(new Page<>(curr, limit), wrapper));
     }
 
     /**
      * 鎼滅储鍙傛暟杞崲
      */
-    private void convert(Map<String, Object> map, EntityWrapper<ApkBuildTask> wrapper) {
+    private void convert(Map<String, Object> map, QueryWrapper<ApkBuildTask> wrapper) {
         for (Map.Entry<String, Object> entry : map.entrySet()) {
             String key = entry.getKey();
             Object value = entry.getValue();
@@ -134,9 +142,9 @@
         try {
             int count = apkBuildTaskService.refreshAllPendingTasks();
             // 杩斿洖鎵�鏈変换鍔″垪琛�
-            EntityWrapper<ApkBuildTask> wrapper = new EntityWrapper<>();
-            wrapper.orderBy("id", false);
-            List<ApkBuildTask> tasks = apkBuildTaskService.selectList(wrapper);
+            QueryWrapper<ApkBuildTask> wrapper = new QueryWrapper<>();
+            wrapper.orderBy(true, false, "id");
+            List<ApkBuildTask> tasks = apkBuildTaskService.list(wrapper);
             Map<String, Object> result = new HashMap<>();
             result.put("tasks", tasks);
             result.put("refreshedCount", count);
@@ -159,6 +167,40 @@
             return R.ok(result);
         } catch (Exception e) {
             return R.error("涓嬭浇APK澶辫触: " + e.getMessage());
+        }
+    }
+
+    @RequestMapping(value = "/apkBuildTask/downloadFile/{id}/auth", method = RequestMethod.GET)
+    @ManagerAuth
+    public void downloadApkFile(@PathVariable("id") Long id, HttpServletResponse response) {
+        try {
+            String localPath = apkBuildTaskService.downloadApk(id);
+            File file = new File(localPath);
+            if (!file.exists()) {
+                throw new RuntimeException("APK鏂囦欢涓嶅瓨鍦�");
+            }
+            String fileName = URLEncoder.encode(file.getName(), "UTF-8");
+            response.setContentType("application/vnd.android.package-archive");
+            response.setCharacterEncoding("utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("Content-Length", String.valueOf(file.length()));
+            try (InputStream inputStream = new FileInputStream(file);
+                 OutputStream outputStream = response.getOutputStream()) {
+                byte[] buffer = new byte[8192];
+                int len;
+                while ((len = inputStream.read(buffer)) != -1) {
+                    outputStream.write(buffer, 0, len);
+                }
+                outputStream.flush();
+            }
+        } catch (Exception e) {
+            try {
+                response.reset();
+                response.setCharacterEncoding("utf-8");
+                response.setContentType("application/json; charset=utf-8");
+                response.getWriter().print(JSON.toJSONString(R.error("涓嬭浇APK澶辫触: " + e.getMessage())));
+            } catch (IOException ignore) {
+            }
         }
     }
 
@@ -209,7 +251,7 @@
         if (ids == null || ids.length == 0) {
             return R.error();
         }
-        apkBuildTaskService.deleteBatchIds(Arrays.asList(ids));
+        apkBuildTaskService.removeByIds(Arrays.asList(ids));
         return R.ok();
     }
 

--
Gitblit v1.9.1