105 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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]
 | 
						|
    /// <summary>
 | 
						|
    /// 版本管理
 | 
						|
    /// </summary>
 | 
						|
    [Route("api/PF/VersionManage")]
 | 
						|
    public class VersionManageController : AuthorizeApiController<T_PF_VERSION_MANAGE>
 | 
						|
    {
 | 
						|
        IPFLastVersionService LastVersionService { get; set; }
 | 
						|
        /// <summary>
 | 
						|
        /// 构造函数实现接口
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="lastVersionService"></param>
 | 
						|
        public VersionManageController(IPFLastVersionService lastVersionService)
 | 
						|
        {
 | 
						|
            LastVersionService = lastVersionService;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 保存并发送通知
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="entity"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("FullUpdateToNotifice")]
 | 
						|
        public JsonActionResult<bool> FullUpdateToNotifice([FromBody] T_PF_VERSION_MANAGE entity)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                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<WebSocketClientInfo> clientInfos = null;
 | 
						|
                    if (model.UserId != null)
 | 
						|
                        clientInfos = WebSocketServiceHelper.ClintInfos.Where(t => t.UserId == model.UserId).ToList();
 | 
						|
                    var notificatoinService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IFMNotificatoinService>();
 | 
						|
                    notificatoinService.SendNotification(model, clientInfos);
 | 
						|
                }
 | 
						|
                catch { }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取上个版本
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="filter"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("GetLastVersion")]
 | 
						|
        public JsonActionResult<string> GetLastVersion([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute(() =>
 | 
						|
            {
 | 
						|
                return LastVersionService.GetLastVersion(filter);
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取当前版本
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="filter"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("GetCurrVer")]
 | 
						|
        public JsonActionResult<dynamic> GetCurrVer([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute(() =>
 | 
						|
            {
 | 
						|
                var version = this.GetEntity<T_PF_VERSION_MANAGE>(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;
 | 
						|
            });
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |