51 lines
2.1 KiB
C#
51 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.IBLL.Wx;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.MAP;
|
|
|
|
namespace WX.CRM.BLL.Wx
|
|
{
|
|
public class WX_SZZYORDERREFUNDCONTRACT_BL : DbContextRepository<WX_SZZYORDERREFUNDCONTRACT>, IWX_SZZYORDERREFUNDCONTRACT
|
|
{
|
|
public IList<RefundContractView> GetList(decimal? orderId, DateTime? stime, DateTime? etime)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var query = from a in db.WX_SZZYORDERREFUND.Where(p => p.ISDELETE == 0).GroupBy(p => p.ORDERID).Select(g => new { OrderId = g.Key, RefundPrice = g.Sum(p => p.REFUNDPRICE), RefundTime = g.Min(p => p.REFUNDDATE) })
|
|
join o in db.WX_SZZYORDER on a.OrderId equals o.ORDERID into aoTmp
|
|
from ao in aoTmp.DefaultIfEmpty()
|
|
join b in db.WX_SZZYORDERREFUNDCONTRACT on a.OrderId equals b.ORDERID into abTmp
|
|
from ab in abTmp.DefaultIfEmpty()
|
|
select new RefundContractView()
|
|
{
|
|
OrderId = a.OrderId,
|
|
CName = ao.CNAME,
|
|
RefundPrice = a.RefundPrice,
|
|
RefundTime = a.RefundTime.Value,
|
|
Contract = ab.CONTRACT,
|
|
ContractStatus = ab.CONTRACTSTATUS,
|
|
IsOpen = ao.ISOPEN,
|
|
ArrivalTime = ao.ARRIVALTIME,
|
|
ORDERSTATUS = ao.ORDERSTATUS
|
|
};
|
|
if (orderId.HasValue)
|
|
query = query.Where(p => p.OrderId == orderId.Value);
|
|
if (stime.HasValue)
|
|
query = query.Where(p => p.RefundTime >= stime);
|
|
if (etime.HasValue)
|
|
{
|
|
etime = etime.Value.AddDays(1);
|
|
query = query.Where(p => p.RefundTime < etime);
|
|
}
|
|
|
|
return query.ToList();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|