using System; using ce.autofac.extension; using learun.iapplication; using learun.util; using System.Threading.Tasks; namespace learun.application { /// <summary> /// 版 本 EasyCode EC管理后台 /// Copyright (c) 2019-present EC管理有限公司 /// 创建人:tobin /// 日 期:2019.09.19 /// 描 述:业务基类 /// </summary> public class BLLBase { #region 基础信息 private UserEntity userInfo; private string roleIds; private string postIds; /// <summary> /// 获取当前用户信息 /// </summary> /// <param name="userId">用户id</param> /// <returns></returns> public async Task<UserEntity> CurrentUser(string userId = null) { var userBLL = IocManager.Instance.GetService<UserIBLL>(); if (string.IsNullOrEmpty(userId)) { if (userInfo == null) { userInfo = await userBLL.GetEntity(); } return userInfo; } else { return await userBLL.GetEntity(userId); } } /// <summary> /// 获取当前登录者的角色id集合 /// </summary> /// <returns></returns> public async Task<string> CurrentUserRoleIds() { if (roleIds == null) { var _userInfo = await CurrentUser(); var userRelationIBLL = IocManager.Instance.GetService<UserRelationIBLL>(); roleIds = await userRelationIBLL.GetObjectIds(_userInfo.F_UserId, 1); } return roleIds; } /// <summary> /// 获取当前登录者的角色id集合 /// </summary> /// <param name="userId">用户主键</param> /// <returns></returns> public Task<string> CurrentUserRoleIds(string userId) { var userRelationIBLL = IocManager.Instance.GetService<UserRelationIBLL>(); return userRelationIBLL.GetObjectIds(userId, 1); } /// <summary> /// 获取当前登录者的岗位id集合 /// </summary> /// <returns></returns> public async Task<string> CurrentUserPostIds() { if (postIds == null) { var _userInfo = await CurrentUser(); var userRelationIBLL = IocManager.Instance.GetService<UserRelationIBLL>(); postIds = await userRelationIBLL.GetObjectIds(_userInfo.F_UserId, 2); } return postIds; } /// <summary> /// 获取当前登录者的岗位id集合 /// </summary> /// <param name="userId">用户主键</param> /// <returns></returns> public Task<string> CurrentUserPostIds(string userId) { var userRelationIBLL = IocManager.Instance.GetService<UserRelationIBLL>(); return userRelationIBLL.GetObjectIds(userId, 2); } /// <summary> /// 获取登录者用户名称 /// </summary> /// <returns></returns> public string GetUserName() { return ContextHelper.GetItem("userName") as string; } /// <summary> /// 获取登录者用户Id /// </summary> /// <returns></returns> public string GetUserId() { return ContextHelper.GetItem("userId") as string; } /// <summary> /// 获取登录者用户账号 /// </summary> /// <returns></returns> public string GetUserAccount() { return ContextHelper.GetItem("account") as string; } #endregion 基础信息 #region 数据权限 /// <summary> /// 获取数据权限设置sql查询语句 /// </summary> /// <param name="code">数据权限编码</param> /// <returns></returns> public async Task<string> GetDataAuthoritySql(string code) { var dataAuthorizeIBLL = IocManager.Instance.GetService<DataAuthorizeIBLL>(); return await dataAuthorizeIBLL.GetWhereSql(code); } #endregion 数据权限 #region 单据编码 /// <summary> /// 获取编码 /// </summary> /// <param name="code">编码规则编码</param> /// <returns></returns> public Task<string> GetRuleCode(string code) { var codeRuleIBLL = IocManager.Instance.GetService<CodeRuleIBLL>(); return codeRuleIBLL.GetBillCode(code); } /// <summary> /// 占用编码 /// </summary> /// <param name="code">编码规则编码</param> /// <returns></returns> public async Task UseRuleSeed(string code) { var codeRuleIBLL = IocManager.Instance.GetService<CodeRuleIBLL>(); await codeRuleIBLL.UseRuleSeed(code); } #endregion 单据编码 } }