#
Junjie
2026-02-05 54790321365355fa8007a920e8ccea7d50677354
#
4个文件已修改
131 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/config/config.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/config/config.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -23,10 +23,19 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
@Slf4j
@@ -52,6 +61,84 @@
    @Value("${app.version-type:stable}")
    private String appVersionType;
    @Value("${file.upload-path}")
    private String uploadPath;
    @PostMapping("/uploadLogo")
    public R uploadLogo(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return R.error("上传文件不能为空");
        }
        try {
            File dir = new File(uploadPath);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            String originalFilename = file.getOriginalFilename();
            String extension = "";
            if (originalFilename != null && originalFilename.lastIndexOf(".") > 0) {
                extension = originalFilename.substring(originalFilename.lastIndexOf("."));
            }
            // 删除旧的logo文件
            File[] files = dir.listFiles((d, name) -> name.startsWith("logo."));
            if (files != null) {
                for (File f : files) {
                    f.delete();
                }
            }
            String fileName = "logo" + extension;
            File dest = new File(dir, fileName);
            file.transferTo(dest);
            return R.ok();
        } catch (IOException e) {
            log.error("上传Logo失败", e);
            return R.error("上传失败: " + e.getMessage());
        }
    }
    @GetMapping("/getLogo")
    public void getLogo(HttpServletResponse response) {
        try {
            File dir = new File(uploadPath);
            if (!dir.exists()) {
                response.sendError(HttpServletResponse.SC_NOT_FOUND, "Logo directory not found");
                return;
            }
            File[] files = dir.listFiles((d, name) -> name.startsWith("logo."));
            if (files == null || files.length == 0) {
                response.sendError(HttpServletResponse.SC_NOT_FOUND, "Logo not found");
                return;
            }
            File logoFile = files[0];
            String filename = logoFile.getName();
            String contentType = "image/jpeg";
            if (filename.toLowerCase().endsWith(".png")) {
                contentType = "image/png";
            } else if (filename.toLowerCase().endsWith(".gif")) {
                contentType = "image/gif";
            }
            response.setContentType(contentType);
            try (FileInputStream fis = new FileInputStream(logoFile);
                 OutputStream os = response.getOutputStream()) {
                byte[] buffer = new byte[1024];
                int len;
                while ((len = fis.read(buffer)) != -1) {
                    os.write(buffer, 0, len);
                }
                os.flush();
            }
        } catch (Exception e) {
            log.error("获取Logo失败", e);
        }
    }
    @GetMapping("/systemStatus")
    public R systemStatus() {
        return R.ok();
src/main/resources/application.yml
@@ -72,11 +72,14 @@
  # API认证Token
  x-token: uzCHJUQSb7tl2ZTjB0wI3XViqMgxRhvYL9EP
  # APK下载保存路径(必须是绝对路径)
  apk-download-path: D:/apk_files/
  apk-download-path: D:/zy_monitor_files/apk_files/
# ADB配置
adb:
  # ADB可执行文件路径,如果在系统PATH中可直接填写adb
  path: D:\platform-tools\adb.exe
  # 默认APK包名(用于启动应用)
  default-package: com.zy
  default-package: com.zy
file:
  upload-path: D:/zy_monitor_files/upload_files/
src/main/webapp/static/js/config/config.js
@@ -5,6 +5,7 @@
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var upload = layui.upload;
    // 数据渲染
    tableIns = table.render({
@@ -93,6 +94,41 @@
                    }
                });
                break;
            case 'uploadLogo':
                // 创建一个隐藏的input file
                var input = document.createElement('input');
                input.type = 'file';
                input.accept = 'image/*';
                input.onchange = function(e) {
                    var file = e.target.files[0];
                    if (!file) return;
                    var formData = new FormData();
                    formData.append('file', file);
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl + "/openapi/uploadLogo",
                        type: 'POST',
                        data: formData,
                        processData: false,
                        contentType: false,
                        success: function(res) {
                            layer.close(loadIndex);
                            if (res.code === 200) {
                                layer.msg('上传成功', {icon: 1});
                            } else {
                                layer.msg(res.msg || '上传失败', {icon: 2});
                            }
                        },
                        error: function() {
                            layer.close(loadIndex);
                            layer.msg('上传请求异常', {icon: 2});
                        }
                    });
                };
                input.click();
                break;
            case 'refreshData':
                tableIns.reload({
                    page: {
src/main/webapp/views/config/config.html
@@ -45,6 +45,7 @@
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-upload-logo" lay-event="uploadLogo">上传Logo</button>
    </div>
</script>