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