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