using Rhea.Common; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using Tiger.Model; namespace Tiger.IBusiness { /// /// SqlSugar 扩展方法 /// public static class DbExtension { /// /// 通过授权查询数据 /// /// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据 /// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { options.OrgCode = options.OrgCode.IsNullOrEmpty(options.CurOrg); //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, string userId, DbAuth options) where T : iTableHasAuth, new() { //组织机构授权验证 if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any()); } //生产单元授权验证 if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any()); } //仓库单元授权验证 if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any()); } return queryable; } /// /// 通过授权查询数据
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错 ///
/// /// /// /// public static ISugarQueryable ByAuth(this ISugarQueryable queryable, AuthOption options) where T : iTableHasAuth, new() { //组织机构授权验证 if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty()) { var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries); queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG)); } //生产单元授权验证 if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty()) { var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD)); } //仓库单元授权验证 if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty()) { var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList(); queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH)); } return queryable.ByAuth(options.UserId, options.GetOptions()); } }//endClass }