wbc
2025-05-28 b9349673f1610970530db34ed8ed9b26e8e1e239
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
using System.Dynamic;
using MES.Service.Dto.@base;
using MES.Service.service;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
 
namespace MESApplication.Controllers.Base;
 
[ApiController]
[Route("api/[controller]")]
public class UpdateController : ControllerBase
{
    [HttpPost]
    [Route("checkUpdate")]
    public ResponseResult CheckUpdate([FromBody] UpdateCheckRequest request)
    {
        try
        {
            // 从配置文件或数据库获取最新版本信息
            var latestVersion = GetLatestVersion(request.platform);
 
            // 比较版本号
            if (CompareVersion(request.version, latestVersion.Version) < 0)
            {
                // 需要更新
                return new ResponseResult
                {
                    status = 0,
                    message = "发现新版本",
                    data = new
                    {
                        hasUpdate = true,
                        version = latestVersion.Version,
                        updateInfo = latestVersion.UpdateInfo,
                        wgtUrl = latestVersion.WgtUrl,
                        isForceUpdate = latestVersion.IsForceUpdate
                    }
                };
            }
            else
            {
                // 不需要更新
                return new ResponseResult
                {
                    status = 0,
                    message = "当前已是最新版本",
                    data = new { hasUpdate = false }
                };
            }
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
 
    // 获取最新版本信息
    public VersionInfo GetLatestVersion(string platform)
    {
        // 这里可以从数据库或配置文件中读取
        // 示例中直接返回硬编码的版本信息
        return new VersionInfo
        {
            Version = "1.0.1",
            UpdateInfo = "1. 修复了一些已知问题\n2. 优化了用户体验\n3. 新增了一些功能",
            WgtUrl = "https://192.168.1.223:8085/updates/app_update_1.0.1.wgt",
            IsForceUpdate = false
        };
    }
 
    // 比较版本号
    private int CompareVersion(string version1, string version2)
    {
        var v1 = new Version(version1);
        var v2 = new Version(version2);
        return v1.CompareTo(v2);
    }
}