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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
///
/// 通过授权查询数据
///
///
///
///
///
///
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(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
}
//生产单元授权验证
if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
}
//仓库单元授权验证
if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
{
queryable = queryable.Where(q => SqlFunc.Subqueryable().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
}
return queryable;
}
///
/// 通过授权查询数据
///
///
///
///
///
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(o => o == 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(o => o == 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(o => o == q.AUTH_WH));
}
return queryable.ByAuth(options.UserId, options.GetOptions());
}
}//endClass
}