Commit a601b30a by 陶然

优化查询接口所属信息

parent 9414e60e
...@@ -11,9 +11,10 @@ namespace Kivii.Finances.Transforms ...@@ -11,9 +11,10 @@ namespace Kivii.Finances.Transforms
{ {
public enum OwnerType public enum OwnerType
{ {
Department = 0, Unsupport=0,
Organization = 1, Department = 1,
Member = 2 Organization = 2,
Member = 3
} }
[Api(Description = "业务认领")] [Api(Description = "业务认领")]
......
...@@ -38,6 +38,8 @@ namespace Kivii.Finances.Transforms ...@@ -38,6 +38,8 @@ namespace Kivii.Finances.Transforms
#endregion #endregion
public OwnerType OwnerType { get; set; } = OwnerType.Unsupport;
public bool? IsPayee { get; set; }//查收款还是付款 public bool? IsPayee { get; set; }//查收款还是付款
public bool? IsSplit { get; set; }//查是否已经拆分认领 public bool? IsSplit { get; set; }//查是否已经拆分认领
...@@ -52,6 +54,9 @@ namespace Kivii.Finances.Transforms ...@@ -52,6 +54,9 @@ namespace Kivii.Finances.Transforms
request = request.PopulateWith(this); request = request.PopulateWith(this);
var sqlExpress = autoQuery.CreateQuery(Request, conn, request, dynamicParams); var sqlExpress = autoQuery.CreateQuery(Request, conn, request, dynamicParams);
sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Bank, PaymentType.Cash, PaymentType.Pos)); sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Bank, PaymentType.Cash, PaymentType.Pos));
if (OwnerType == OwnerType.Organization) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.OrganizationKvid || o.OwnerKvid == Guid.Empty);
if (OwnerType == OwnerType.Department) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.DepartmentKvid || o.OwnerKvid == Guid.Empty);
if (OwnerType == OwnerType.Member) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.Kvid || o.OwnerKvid == Guid.Empty);
if (IsSplit != null) if (IsSplit != null)
{ {
if (IsSplit.Value) sqlExpress.And(o => o.AmountSplited > 0 && o.AmountSplited == o.Amount); if (IsSplit.Value) sqlExpress.And(o => o.AmountSplited > 0 && o.AmountSplited == o.Amount);
...@@ -271,6 +276,7 @@ namespace Kivii.Finances.Transforms ...@@ -271,6 +276,7 @@ namespace Kivii.Finances.Transforms
public string QueryValues { get; set; } public string QueryValues { get; set; }
#endregion #endregion
public OwnerType OwnerType { get; set; } = OwnerType.Unsupport;
public bool? IsBiz { get; set; }//Split,Pos,Cash,WeChat.. public bool? IsBiz { get; set; }//Split,Pos,Cash,WeChat..
public override object OnExecution(IRequest req, IResponse res) public override object OnExecution(IRequest req, IResponse res)
...@@ -282,6 +288,9 @@ namespace Kivii.Finances.Transforms ...@@ -282,6 +288,9 @@ namespace Kivii.Finances.Transforms
var request = new RestfulQuery<Payment>(); var request = new RestfulQuery<Payment>();
request = request.PopulateWith(this); request = request.PopulateWith(this);
var sqlExpress = autoQuery.CreateQuery(Request, conn, request, dynamicParams); var sqlExpress = autoQuery.CreateQuery(Request, conn, request, dynamicParams);
if (OwnerType == OwnerType.Organization) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.OrganizationKvid || o.OwnerKvid == Guid.Empty);
if (OwnerType == OwnerType.Department) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.DepartmentKvid || o.OwnerKvid == Guid.Empty);
if (OwnerType == OwnerType.Member) sqlExpress.And(o => o.OwnerKvid == KiviiContext.CurrentMember.Kvid || o.OwnerKvid == Guid.Empty);
if (IsBiz == null) sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.WeChat, PaymentType.Cash, PaymentType.AliPay, PaymentType.Pos, PaymentType.Split, PaymentType.Refund, PaymentType.UnBiz)); if (IsBiz == null) sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.WeChat, PaymentType.Cash, PaymentType.AliPay, PaymentType.Pos, PaymentType.Split, PaymentType.Refund, PaymentType.UnBiz));
else if (IsBiz.Value) sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.WeChat, PaymentType.Cash, PaymentType.AliPay, PaymentType.Pos, PaymentType.Split)); else if (IsBiz.Value) sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.WeChat, PaymentType.Cash, PaymentType.AliPay, PaymentType.Pos, PaymentType.Split));
else sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.Refund, PaymentType.UnBiz)); else sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.Refund, PaymentType.UnBiz));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment