using Edu.Common; using Edu.Common.API; using Edu.Common.Plugin; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Edu.Model.CacheModel; using Edu.Cache.User; using Edu.Module.System; namespace Edu.WebApi.Controllers { [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiFilter] [EnableCors("AllowCors")] public class BaseController : ControllerBase { /// <summary> /// 菜单处理类对象 /// </summary> private readonly MenuModule menuModule = new MenuModule(); /// <summary> /// 整理前端传递的post参数 /// </summary> /// <param name="requestMsg"></param> /// <returns></returns> public RequestParm RequestParm { get { var requestParm = new RequestParm(); #region 读取post参数 var requestMsg = Request.HttpContext.Items[GlobalKey.UserPostInfo]; if (requestMsg != null) { requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString()); if (Request.HttpContext.Items[GlobalKey.TokenUserInfo] != null) { JObject parms = JObject.Parse(Request.HttpContext.Items[GlobalKey.TokenUserInfo].ToString()); requestParm.Uid = parms.GetStringValue("uid"); } if (Request.HttpContext.Items[GlobalKey.JWT_Mall_Customer_Key] != null) { JObject parms = JObject.Parse(Request.HttpContext.Items[GlobalKey.JWT_Mall_Customer_Key].ToString()); requestParm.CustomerId = parms.GetStringValue("uid"); } } #endregion //根据token 获取uid return requestParm; } } /// <summary> /// 获取参数 /// </summary> public JObject ParmJObj { get { if (this.RequestParm != null && this.RequestParm.Msg != null) { return JObject.Parse(this.RequestParm.Msg.ToString()); } return new JObject(); } } /// <summary> /// 用户缓存 /// </summary> public UserInfo UserInfo { get { var parm = this.RequestParm; UserInfo userInfo = UserReidsCache.GetUserLoginInfo(parm.Uid); return userInfo; } } /// <summary> /// 根据Id获取用户信息 /// </summary> /// <param name="Id"></param> /// <returns></returns> public UserInfo GetUserInfo(object Id) { UserInfo userInfo = UserReidsCache.GetUserLoginInfo(Id); return userInfo; } /// <summary> /// 判断用户是否有功能权限 /// </summary> /// <param name="actionCode">权限编码</param> /// <returns></returns> public bool CheckUserActionAuth(string actionCode) { bool flag = false; if (this.UserInfo != null && this.UserInfo.PostId > 0) { flag = menuModule.CheckUserFunctionModule(actionCode, this.UserInfo.PostId.ToString()); } return flag; } /// <summary> /// 获取同业用户缓存 /// </summary> public AppletCustomerInfo AppletCustomerInfo { get { var parm = this.RequestParm; AppletCustomerInfo userInfo = UserReidsCache.GetAppletCustomerLoginInfo(parm.CustomerId); return userInfo; } } } }