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
}