liujie
2026-09-11 4d15e6b553c448e2e07527e9c06aa4b5f9b099cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.ruoyi.web.controller.api;
 
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.framework.config.ServerConfig;
import com.ruoyi.system.dto.SysVersionUpdateAddRequest;
import com.ruoyi.system.dto.SysVersionUpdateDeleteRequest;
import com.ruoyi.system.dto.SysVersionUpdateDetailRequest;
import com.ruoyi.system.dto.SysVersionUpdateEditRequest;
import com.ruoyi.system.dto.SysVersionUpdatePageRequest;
import com.ruoyi.system.service.ISysVersionUpdateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
/**
 * 版本更新接口
 *
 * @author ruoyi
 */
@RestController
@RequestMapping("/system/version/update")
public class SysVersionUpdateController extends BaseController
{
    private static final long MAX_PACKAGE_SIZE = 200L * 1024 * 1024;
 
    private static final String[] ALLOWED_PACKAGE_EXTENSION = { "apk" };
 
    @Autowired
    private ISysVersionUpdateService versionUpdateService;
 
    @Autowired
    private ServerConfig serverConfig;
 
    /**
     * 分页查询版本更新列表
     */
    @Log(title = "版本更新", businessType = BusinessType.SELECT)
    @PreAuthorize("@ss.hasPermi('visitor:version:view')")
    @PostMapping("/page")
    public AjaxResult page(@RequestBody(required = false) SysVersionUpdatePageRequest request)
    {
        return success(versionUpdateService.pageList(request));
    }
 
    /**
     * 查看版本更新详情
     */
    @Log(title = "版本更新", businessType = BusinessType.SELECT)
    @PreAuthorize("@ss.hasPermi('visitor:version:view')")
    @PostMapping("/detail")
    public AjaxResult detail(@RequestBody SysVersionUpdateDetailRequest request)
    {
        return success(versionUpdateService.detail(request));
    }
 
    /**
     * 新增版本更新
     */
    @Log(title = "版本更新", businessType = BusinessType.INSERT)
    @PreAuthorize("@ss.hasPermi('visitor:version:add')")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SysVersionUpdateAddRequest request)
    {
        return toAjax(versionUpdateService.add(request, getUsername()));
    }
 
    /**
     * 编辑版本更新
     */
    @Log(title = "版本更新", businessType = BusinessType.UPDATE)
    @PreAuthorize("@ss.hasPermi('visitor:version:edit')")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SysVersionUpdateEditRequest request)
    {
        return toAjax(versionUpdateService.edit(request, getUsername()));
    }
 
    @Log(title = "版本更新", businessType = BusinessType.INSERT)
    @PreAuthorize("@ss.hasAnyPermi('visitor:version:add,visitor:version:edit')")
    @PostMapping("/upload")
    public AjaxResult upload(MultipartFile file)
    {
        if (file == null || file.isEmpty())
        {
            return error("请上传安装包");
        }
        if (file.getSize() >= MAX_PACKAGE_SIZE)
        {
            return error("安装包大小必须小于200M");
        }
        try
        {
            String fileName = FileUploadUtils.upload(RuoYiConfig.getUploadPath(), file,
                    ALLOWED_PACKAGE_EXTENSION, MAX_PACKAGE_SIZE);
            AjaxResult ajax = success();
            ajax.put("url", serverConfig.getUrl() + fileName);
            ajax.put("fileName", fileName);
            ajax.put("newFileName", FileUtils.getName(fileName));
            ajax.put("originalFilename", file.getOriginalFilename());
            return ajax;
        }
        catch (Exception e)
        {
            return error(e.getMessage());
        }
    }
 
    /**
     * 删除版本更新
     */
    @Log(title = "版本更新", businessType = BusinessType.DELETE)
    @PreAuthorize("@ss.hasPermi('visitor:version:remove')")
    @PostMapping("/delete")
    public AjaxResult delete(@RequestBody SysVersionUpdateDeleteRequest request)
    {
        return toAjax(versionUpdateService.delete(request));
    }
}