Commit 27d12c3a authored by 吴春's avatar 吴春

提交销售统计复购数

parent 5f44fc90
...@@ -70,6 +70,11 @@ namespace Mall.Model.Query ...@@ -70,6 +70,11 @@ namespace Mall.Model.Query
/// </summary> /// </summary>
public int RepurchaseNum { get; set; } public int RepurchaseNum { get; set; }
/// <summary>
/// 当天购买人id
/// </summary>
public string UserIds { get; set; }
/// <summary> /// <summary>
/// 支付人数 /// 支付人数
......
...@@ -361,7 +361,42 @@ namespace Mall.Module.MarketingCenter ...@@ -361,7 +361,42 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns> /// <returns></returns>
public List<DataStatistics_Query> GetSellPageList(int pageIndex, int pageSize, out long count, DataStatistics_Query dmodel) public List<DataStatistics_Query> GetSellPageList(int pageIndex, int pageSize, out long count, DataStatistics_Query dmodel)
{ {
return orderRepository.GetSellPageList(pageIndex, pageSize, out count, dmodel); var list = orderRepository.GetSellPageList(pageIndex, pageSize, out count, dmodel);
if (dmodel.OrderStatus == 0 || dmodel.OrderStatus == 1 || dmodel.OrderStatus == 2 || dmodel.OrderStatus == 3)
{
if (list != null && list.Any())
{
dmodel.RepurchaseNum = 0;
dmodel.UserIds = string.Join(",", list.Select(x => x.UserIds));
var allOrderList = orderRepository.GetOrderByUserIds(dmodel);
foreach (var item in list)
{
if (!string.IsNullOrWhiteSpace(item.UserIds))
{
try
{
DateTime nowTime = Convert.ToDateTime(item.CreateDate + " 23:59:59");
var userIdList = item.UserIds.Split(",").Distinct().ToArray();
foreach (var itemUserId in userIdList)
{
int orderNum = allOrderList.Where(x => x.UserId.ToString() == itemUserId && x.CreateDate <= nowTime).Count();
if (orderNum > 1)
{
item.RepurchaseNum += 1;
}
}
}
catch (Exception)
{
}
}
}
}
}
return list;
} }
......
...@@ -122,11 +122,12 @@ namespace Mall.Repository.Product ...@@ -122,11 +122,12 @@ namespace Mall.Repository.Product
{ {
where += $@" and o.{nameof(RB_Goods_Order.Recycled)}={(int)dmodel.Recycled}"; where += $@" and o.{nameof(RB_Goods_Order.Recycled)}={(int)dmodel.Recycled}";
} }
if (dmodel.SmallShopsId.HasValue&& dmodel.SmallShopsId > 0) if (dmodel.SmallShopsId.HasValue && dmodel.SmallShopsId > 0)
{ {
where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={dmodel.SmallShopsId}"; where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={dmodel.SmallShopsId}";
} }
if (dmodel.IsSelectPayMoney == 1) { if (dmodel.IsSelectPayMoney == 1)
{
where += $@" and o.{nameof(RB_Goods_Order.PaymentTime)} IS NOT NULL"; where += $@" and o.{nameof(RB_Goods_Order.PaymentTime)} IS NOT NULL";
} }
...@@ -548,7 +549,7 @@ where {where} group by o.OrderId order by o.CreateDate desc"; ...@@ -548,7 +549,7 @@ where {where} group by o.OrderId order by o.CreateDate desc";
{ {
where += $@" and oc.{nameof(RB_SmallShops_Commission.UserId)}={dmodel.DistributionUserId}"; where += $@" and oc.{nameof(RB_SmallShops_Commission.UserId)}={dmodel.DistributionUserId}";
} }
if (dmodel.SmallShopsId > 0) if (dmodel.SmallShopsId > 0)
{ {
where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={(int)dmodel.SmallShopsId}"; where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={(int)dmodel.SmallShopsId}";
} }
...@@ -958,17 +959,25 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id ...@@ -958,17 +959,25 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
} }
if (dmodel.OrderStatus == 0 || dmodel.OrderStatus == 1 || dmodel.OrderStatus == 2 || dmodel.OrderStatus == 3) if (dmodel.OrderStatus == 0 || dmodel.OrderStatus == 1 || dmodel.OrderStatus == 2 || dmodel.OrderStatus == 3)
{ {
sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,MAX(t.RepurchaseNum) as RepurchaseNum // sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,MAX(t.RepurchaseNum) as RepurchaseNum
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum,d.RepurchaseNum from rb_goods_order as a //from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum,d.RepurchaseNum from rb_goods_order as a
// LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
//LEFT JOIN (SELECT temp.CreateDate,COUNT(UserId) as RepurchaseNum from (SELECT UserId,COUNT(DISTINCT UserId) as RepurchaseNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1
//{payMemerNumWhere} GROUP BY UserId,DATE_FORMAT(CreateDate,'%Y-%m-%d' ) having count(UserId) > 1) as temp GROUP BY temp.CreateDate
//)
//as d on d.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
//{where} )
//as t GROUP BY t.CreateDate desc";
sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,GROUP_CONCAT(DISTINCT t.UserId) as UserIds
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum from rb_goods_order as a
LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId
LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' )) LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
LEFT JOIN (SELECT temp.CreateDate,COUNT(UserId) as RepurchaseNum from (SELECT UserId,COUNT(DISTINCT UserId) as RepurchaseNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1
{payMemerNumWhere} GROUP BY UserId,DATE_FORMAT(CreateDate,'%Y-%m-%d' ) having count(UserId) > 1) as temp GROUP BY temp.CreateDate
)
as d on d.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
{where} )
as t GROUP BY t.CreateDate desc"; as t GROUP BY t.CreateDate desc";
} }
else else
{ {
...@@ -983,10 +992,58 @@ from ...@@ -983,10 +992,58 @@ from
) )
as t GROUP BY t.CreateDate desc"; as t GROUP BY t.CreateDate desc";
} }
return GetPage<DataStatistics_Query>(pageIndex, pageSize, out count, sql).ToList(); return GetPage<DataStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
} }
/// <summary>
/// 获取已退款 待制单的订单列表
/// </summary>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetOrderByUserIds(DataStatistics_Query dmodel)
{
string payMemerNumWhere = " where 1=1 ";
if (dmodel.TenantId > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.PlatformType > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
}
if (!string.IsNullOrWhiteSpace(dmodel.UserIds))
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.UserId)} in({dmodel.UserIds})";
}
if (dmodel.OrderStatus == 1 || dmodel.OrderStatus == 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)} in (2,4,5,3,6)";
}
else if (dmodel.OrderStatus == 2)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=5";
}
else if (dmodel.OrderStatus == 3)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=7";
}
string sql = $@"SELECT * from rb_goods_order {payMemerNumWhere}";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
/// <summary> /// <summary>
/// 销售统计导出 /// 销售统计导出
/// </summary> /// </summary>
......
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