using APT.BaseData.Domain.Entities.PF; using APT.BaseData.Domain.IServices.Platform; using APT.Infrastructure.Core; using APT.BaseData.Domain.ApiModel.EX; using APT.BaseData.Domain.IServices.FM; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using APT.Utility; using APT.BaseData.Domain.ApiModel.EX; using APT.BaseData.Domain.Enums; using System.Dynamic; using APT.Infrastructure.Api; namespace APT.PF.WebApiControllers.Api.PF { //[APT.Infrastructure.Api.RootOrg] /// /// 版本管理 /// [Route("api/PF/VersionManage")] public class VersionManageController : AuthorizeApiController { IPFLastVersionService LastVersionService { get; set; } /// /// 构造函数实现接口 /// /// public VersionManageController(IPFLastVersionService lastVersionService) { LastVersionService = lastVersionService; } /// /// 保存并发送通知 /// /// /// [HttpPost, Route("FullUpdateToNotifice")] public JsonActionResult FullUpdateToNotifice([FromBody] T_PF_VERSION_MANAGE entity) { return SafeExecute(() => { this.UpdateEntity(entity); //发送通知 try { SendNotificationModel model = new SendNotificationModel(); model.UserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; model.OrgId = entity.ORG_ID; model.CheckOrgType = (int)FMNotificationOrgTypeEnum.本组织及下级组织; model.ShowInfoType = (int)FMNotificationShowTypeEnum.弹窗; model.NotificatoinType = (int)FMNotificationTypeEnum.普通通知; model.Title = "系统版本升级更新提醒"; var UserName = APT.Infrastructure.Api.AppContext.CurrentSession.UserName; model.Message = UserName + "发布了新的系统版本,更新内容:" + entity.CONTENT + ",最新版本为" + entity.VERSION + ",请知悉!"; List clientInfos = null; if (model.UserId != null) clientInfos = WebSocketServiceHelper.ClintInfos.Where(t => t.UserId == model.UserId).ToList(); var notificatoinService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); notificatoinService.SendNotification(model, clientInfos); } catch { } return true; }); } /// /// 获取上个版本 /// /// /// [HttpPost, Route("GetLastVersion")] public JsonActionResult GetLastVersion([FromBody] KeywordFilter filter) { return SafeExecute(() => { return LastVersionService.GetLastVersion(filter); }); } /// /// 获取当前版本 /// /// /// [HttpPost, Route("GetCurrVer")] public JsonActionResult GetCurrVer([FromBody] KeywordFilter filter) { return SafeExecute(() => { var version = this.GetEntity(null, new BaseFilter(filter.OrgId) { Sort = "CREATE_TIME", Order = DbOrder.DESC }); dynamic obj = new ExpandoObject(); obj.Version = version?.VERSION_NO; obj.Version_ZH = version?.VERSION_ZH; return obj; }); } } }