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
|
{
|
/// <summary>
|
/// SqlSugar 扩展方法
|
/// </summary>
|
public static class DbExtension
|
{
|
/// <summary>
|
/// 通过授权查询数据
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T> ByAuth<T>(this ISugarQueryable<T> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T> ByAuth<T>(this ISugarQueryable<T> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T2"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2> ByAuth<T, T2>(this ISugarQueryable<T,T2> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T2"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2> ByAuth<T, T2>(this ISugarQueryable<T, T2> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3> ByAuth<T, T2, T3>(this ISugarQueryable<T, T2, T3> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3> ByAuth<T, T2, T3>(this ISugarQueryable<T, T2, T3> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4> ByAuth<T, T2, T3, T4>(this ISugarQueryable<T, T2, T3, T4> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4> ByAuth<T, T2, T3, T4>(this ISugarQueryable<T, T2, T3, T4> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5> ByAuth<T, T2, T3, T4, T5>(this ISugarQueryable<T, T2, T3, T4, T5> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5> ByAuth<T, T2, T3, T4, T5>(this ISugarQueryable<T, T2, T3, T4, T5> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6> ByAuth<T, T2, T3, T4, T5, T6>(this ISugarQueryable<T, T2, T3, T4, T5, T6> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6> ByAuth<T, T2, T3, T4, T5, T6>(this ISugarQueryable<T, T2, T3, T4, T5, T6> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7> ByAuth<T, T2, T3, T4, T5, T6, T7>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7> ByAuth<T, T2, T3, T4, T5, T6, T7>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> ByAuth<T, T2, T3, T4, T5, T6, T7, T8>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> ByAuth<T, T2, T3, T4, T5, T6, T7, T8>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> 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());
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="userId"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> 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<V_USER_ORG>().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<V_USER_PROD>().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<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// 通过授权查询数据<br/>
|
/// 注意:联表授权查询时,主表的别名必须为q,不然会出错
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="queryable"></param>
|
/// <param name="options"></param>
|
/// <returns></returns>
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ByAuth<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> 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
|
}
|