| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目必须遵守相关法律法规和许可证的要求。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
- //
- // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
- namespace Admin.NET.Core.Service;
- /// <summary>
- /// APP 版本检查服务 🧩
- /// </summary>
- [ApiDescriptionSettings(Order = 505)]
- public class SysAppVersionService : IDynamicApiController, ITransient
- {
- private readonly SysConfigService _sysConfigService;
- public SysAppVersionService(SysConfigService sysConfigService)
- {
- _sysConfigService = sysConfigService;
- }
- /// <summary>
- /// 获取 APP 最新版本 🔖
- /// </summary>
- /// <param name="platform">平台:android / ios</param>
- /// <remarks>版本信息在【系统管理-参数配置】维护,键名规则:app_{platform}_version_code / app_{platform}_version_name / app_{platform}_apk_url / app_{platform}_force_update / app_{platform}_release_notes。未配置时 VersionCode=0,APP 视为无更新。</remarks>
- [AllowAnonymous]
- [DisplayName("获取APP最新版本")]
- public async Task<AppVersionOutput> GetLatest([FromQuery] string platform = "android")
- {
- platform = string.IsNullOrWhiteSpace(platform) ? "android" : platform.Trim().ToLowerInvariant();
- var prefix = $"app_{platform}_";
- return new AppVersionOutput
- {
- Platform = platform,
- VersionCode = await _sysConfigService.GetConfigValue<int>(prefix + "version_code"),
- VersionName = await _sysConfigService.GetConfigValue<string>(prefix + "version_name"),
- ApkUrl = await _sysConfigService.GetConfigValue<string>(prefix + "apk_url"),
- ForceUpdate = await _sysConfigService.GetConfigValue<bool>(prefix + "force_update"),
- ReleaseNotes = await _sysConfigService.GetConfigValue<string>(prefix + "release_notes"),
- };
- }
- }
- /// <summary>
- /// APP 版本信息输出
- /// </summary>
- public class AppVersionOutput
- {
- /// <summary>
- /// 平台(android / ios)
- /// </summary>
- public string Platform { get; set; }
- /// <summary>
- /// 版本号(递增整数,对应 manifest.json versionCode)
- /// </summary>
- public int VersionCode { get; set; }
- /// <summary>
- /// 版本名(对应 manifest.json versionName)
- /// </summary>
- public string VersionName { get; set; }
- /// <summary>
- /// 安装包下载地址
- /// </summary>
- public string ApkUrl { get; set; }
- /// <summary>
- /// 是否强制更新
- /// </summary>
- public bool ForceUpdate { get; set; }
- /// <summary>
- /// 更新说明
- /// </summary>
- public string ReleaseNotes { get; set; }
- }
|