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);
|
}
|
}
|