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