|
|
@ -1,25 +1,30 @@ |
|
|
|
using BBWY.Common.Models; |
|
|
|
using BBWY.Server.Model; |
|
|
|
using BBWY.Server.Model.Db; |
|
|
|
using BBWY.Server.Model.Dto; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
namespace BBWY.Server.Business |
|
|
|
{ |
|
|
|
public class StatisticsBusiness : BaseBusiness, IDenpendency |
|
|
|
{ |
|
|
|
private IList<Enums.OrderState> invalidOrderStateList; |
|
|
|
|
|
|
|
public StatisticsBusiness(IFreeSql fsql, NLog.ILogger logger, IIdGenerator idGenerator) : base(fsql, logger, idGenerator) |
|
|
|
{ |
|
|
|
|
|
|
|
invalidOrderStateList = new List<Enums.OrderState>() { Enums.OrderState.待付款, Enums.OrderState.已取消 }; |
|
|
|
} |
|
|
|
|
|
|
|
public ToDayOrderAchievementResponse GetTodayAchievementStatistics(ToDayOrderAchievementRequest request) |
|
|
|
{ |
|
|
|
var today = DateTime.Now.Date; |
|
|
|
var response = fsql.Select<Order, OrderCost>().InnerJoin((o, oc) => o.Id == oc.OrderId) |
|
|
|
.Where((o, oc) => o.ShopId == request.ShopId && |
|
|
|
o.OrderState == Model.Enums.OrderState.已完成 && |
|
|
|
o.EndTime >= today) |
|
|
|
.Where((o, oc) => o.ShopId == request.ShopId && |
|
|
|
o.OrderState != null && |
|
|
|
!invalidOrderStateList.Contains(o.OrderState.Value) && |
|
|
|
o.StartTime >= today) |
|
|
|
.ToAggregate((o, oc) => new ToDayOrderAchievementResponse() |
|
|
|
{ |
|
|
|
OrderCount = o.Count(), |
|
|
|