Commit 04d74ceb authored by 黄奎's avatar 黄奎

查询修改

parent 0ef19b1d
......@@ -109,6 +109,26 @@ namespace Mall.Model.Query
/// 订单类型
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 内部员工活跃人数
/// </summary>
public int LoginEmpActive { get; set; }
/// <summary>
/// 领队导游活跃人数
/// </summary>
public int LoginLeaderActive { get; set; }
/// <summary>
/// 内部员工下单人数
/// </summary>
public int OrderEmpActive { get; set; }
/// <summary>
/// 领队导游下单人数
/// </summary>
public int OrderLeaderActice { get; set; }
}
......
......@@ -400,11 +400,33 @@ namespace Mall.Module.MarketingCenter
{
if (list != null && list.Any())
{
//订单用户人数
List<RB_Member_User_Extend> orderUserList = new List<RB_Member_User_Extend>();
//活跃用户人数
List<RB_Member_User_Extend> loginUserList = new List<RB_Member_User_Extend>();
if (dmodel.OrderStatus == 0)
{
string minDate = list.Min(qitem => qitem.CreateDate);
string maxDate = list.Max(qitem => qitem.CreateDate);
orderUserList = orderRepository.GetOrderUserStatisticsRepository(dmodel, minDate, maxDate);
loginUserList = member_UserRepository2.GetMemberUserStatisticsRepository(new RB_Member_User_Extend()
{
MallBaseId = dmodel.MallBaseId,
TenantId = dmodel.TenantId
}, minDate, maxDate);
}
dmodel.RepurchaseNum = 0;
dmodel.UserIds = string.Join(",", list.Select(x => x.UserIds));
var allOrderList = orderRepository.GetOrderByUserIds(dmodel);
foreach (var item in list)
{
item.LoginEmpActive = loginUserList?.Where(qitem =>Convert.ToDateTime(qitem.CreateDate).ToString("yyyy-MM-dd") ==item.CreateDate&& qitem.PostId == 0 && qitem.SuperiorId > 0 && qitem.SuperiorId < 20)?.Count() ?? 0;
item.LoginLeaderActive = loginUserList?.Where(qitem => Convert.ToDateTime(qitem.CreateDate).ToString("yyyy-MM-dd") == item.CreateDate && qitem.PostId == 1)?.Count() ?? 0;
item.OrderEmpActive= orderUserList?.Where(qitem => Convert.ToDateTime(qitem.CreateDate).ToString("yyyy-MM-dd") == item.CreateDate && qitem.PostId == 0 && qitem.SuperiorId > 0 && qitem.SuperiorId < 20)?.Count() ?? 0;
item.OrderLeaderActice = orderUserList?.Where(qitem => Convert.ToDateTime(qitem.CreateDate).ToString("yyyy-MM-dd") == item.CreateDate && qitem.PostId == 1)?.Count() ?? 0;
if (!string.IsNullOrWhiteSpace(item.UserIds))
{
try
......@@ -426,32 +448,11 @@ namespace Mall.Module.MarketingCenter
}
}
}
}
}
return list;
}
/// <summary>
/// 订单用户数据统计【总下单人数,内部员工人数,领队导游人数】
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public object GetOrderUserStatisticsModule(DataStatistics_Query dmodel)
{
return orderRepository.GetOrderUserStatisticsRepository(dmodel);
}
/// <summary>
/// 统计今日登录【总人数,内部员工人数,领队导游人数】
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public object GetMemberUserStatisticsModule(RB_Member_User_Extend dmodel)
{
return member_UserRepository2.GetMemberUserStatisticsRepository(dmodel);
}
/// <summary>
/// 总成交
......@@ -460,9 +461,7 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns>
public DataStatistics_Query GetSellOrder(DataStatistics_Query dmodel)
{
var List = orderRepository.GetWeeklyOrder(dmodel);
DataStatistics_Query model = new DataStatistics_Query();
if (List != null && List.Any())
{
......
......@@ -993,7 +993,6 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
string where = $" where 1=1 ";
string payMemerNumWhere = "";
string orderTypeWhere = "";
string sql = "";
if (dmodel.TenantId > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
......@@ -1004,7 +1003,7 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
where += $@" and a.{nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.PlatformType > 0)
if (dmodel.PlatformType > 0 && dmodel.OrderStatus != 4 && dmodel.OrderStatus !=5)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
......@@ -1015,7 +1014,7 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
}
if (dmodel.OrderStatus == 1 || dmodel.OrderStatus == 0)
{
where += $" and (a.OrderStatus in(2,3,4,5,6) or (a.OrderStatus=7 and a.PaymentTime is not NULL and a.CancelTime is not NULL and DATE_FORMAT(a.PaymentTime,'%Y-%m-%d' )<DATE_FORMAT(a.CancelTime,'%Y-%m-%d' ) ) )";
where += $" and (a.OrderStatus in(2,3,4,5,6) or (a.OrderStatus=7 and a.PaymentTime is not NULL and a.CancelTime is not NULL and DATE_FORMAT(a.PaymentTime,'%Y-%m-%d' )<DATE_FORMAT(a.CancelTime,'%Y-%m-%d' ) ) )";
payMemerNumWhere = $"and (OrderStatus in(2,3,4,5,6) or (OrderStatus=7 and PaymentTime is not NULL and CancelTime is not NULL and DATE_FORMAT(PaymentTime,'%Y-%m-%d' )<DATE_FORMAT(CancelTime,'%Y-%m-%d' ) ) ) ";
}
else if (dmodel.OrderStatus == 2)
......@@ -1036,8 +1035,6 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
{
where += $@" and a.{nameof(RB_Goods_OrderAfterSale.ReOrderStatus)} =5";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' )";
......@@ -1048,36 +1045,48 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
payMemerNumWhere += $" AND DATE_FORMAT({nameof(RB_Goods_OrderAfterSale.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
}
string sql;
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,COUNT(DISTINCT t.UserId) 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 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 {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,COUNT(DISTINCT t.UserId) 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
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 {where}
)
AS t GROUP BY t.CreateDate DESC";
}
else
{
sql = $@"
SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
from
FROM
(
SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.Refund as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
LEFT JOIN
(SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from RB_Goods_OrderAfterSale where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where}
SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.Refund as Income,c.PayMemerNum,a.ReOrderId
FROM RB_Goods_OrderAfterSale as a
LEFT JOIN
(
SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate
FROM RB_Goods_OrderAfterSale
WHERE 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' )
) AS c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
{where}
)
as t GROUP BY t.CreateDate desc";
AS t GROUP BY t.CreateDate DESC ";
}
return GetPage<DataStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 订单用户数据统计【总下单人数,内部员工人数,领队导游人数】
/// 订单用户数据统计【内部员工人数,领队导游人数】
/// </summary>
/// <param name="dmodel"></param>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <returns></returns>
public object GetOrderUserStatisticsRepository(DataStatistics_Query dmodel)
public List<RB_Member_User_Extend> GetOrderUserStatisticsRepository(DataStatistics_Query dmodel,string startDate,string endDate)
{
string where = "";
if (dmodel.TenantId > 0)
......@@ -1093,24 +1102,21 @@ as t GROUP BY t.CreateDate desc";
builder.AppendFormat(@"
SELECT A.*
SELECT A.SuperiorId,A.PostId,B.CreateDate
FROM rb_member_user AS A
INNER JOIN
(
SELECT DISTINCT a.UserId
SELECT a.UserId,DATE_FORMAT(a.CreateDate,'%Y/%m/%d') AS CreateDate
FROM rb_goods_order AS a
WHERE 1=1 AND (a.OrderStatus IN(2,3,4,5,6) OR (a.OrderStatus=7 AND a.PaymentTime IS NOT NULL AND a.CancelTime IS NOT NULL AND DATE_FORMAT(a.PaymentTime,'%Y-%m-%d' )<DATE_FORMAT(a.CancelTime,'%Y-%m-%d' )))
AND DATE_FORMAT(a.CreateDate,'%y/%m/%d')= DATE_FORMAT('{0}','%y/%m/%d') {1}
AND A.CreateDate>='{0}' AND A.CreateDate<='{1} 23:59:59'
GROUP BY DATE_FORMAT(a.CreateDate,'%Y/%m/%d') ,A.UserId
) AS B ON A.Id=B.UserId
", DateTime.Now.ToString("yyyy-MM-dd"), where);
WHERE 1=1 {2}
", startDate, endDate, where);
var list = Get<RB_Member_User_Extend>(builder.ToString()).ToList();
var obj = new
{
OrderTotal = list?.Count ?? 0,
OrderEmployee = list?.Where(qitem => qitem.PostId == 0 && qitem.SuperiorId>0 && qitem.SuperiorId<20)?.Count() ?? 0,
OrderLeader = list?.Where(qitem => qitem.PostId == 1)?.Count() ?? 0,
};
return obj;
return list;
}
/// <summary>
......
......@@ -44,11 +44,13 @@ WHERE 1=1
}
/// <summary>
/// 统计今日登录【总人数,内部员工人数,领队导游人数】
/// 统计员工登录【总人数,内部员工人数,领队导游人数】
/// </summary>
/// <param name="dmodel"></param>
/// <param name="dmodel">查询条件</param>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <returns></returns>
public object GetMemberUserStatisticsRepository(RB_Member_User_Extend dmodel)
public List<RB_Member_User_Extend> GetMemberUserStatisticsRepository(RB_Member_User_Extend dmodel, string startDate, string endDate)
{
StringBuilder where = new StringBuilder();
if (dmodel.TenantId > 0)
......@@ -61,25 +63,19 @@ WHERE 1=1
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
SELECT A.SuperiorId,A.PostId,B.LoginTime AS CreateDate
FROM rb_member_user AS A
INNER JOIN
(
SELECT DISTINCT UserId
SELECT UserId,DATE_FORMAT(LoginTime,'%Y/%m/%d') AS LoginTime
FROM rb_login_log
WHERE DATE_FORMAT(LoginTime,'%y/%m/%d')=DATE_FORMAT('{1}','%y/%m/%d')
WHERE LoginTime>='{0}' AND LoginTime<='{1} 23:59:59'
GROUP BY UserId,DATE_FORMAT(LoginTime,'%Y/%m/%d')
) AS B ON A.Id=B.UserId
WHERE 1=1 {0}
", where.ToString(), DateTime.Now.ToString("yyyy-MM-dd"));
WHERE 1=1 {2}
", startDate,endDate, where.ToString());
var list = Get<RB_Member_User_Extend>(builder.ToString()).ToList();
var obj = new
{
LoginTotal = list?.Count ?? 0,
LoginEmployee = list?.Where(qitem => qitem.PostId == 0 && qitem.SuperiorId>0 && qitem.SuperiorId<20)?.Count() ?? 0,
LoginLeader = list?.Where(qitem => qitem.PostId == 1)?.Count() ?? 0,
};
return obj;
return list;
}
}
}
......@@ -238,7 +238,11 @@ namespace Mall.WebApi.Controllers.MarketingCenter
x.OrderNum,
x.PayMoney,
x.PayMemerNum,
x.RepurchaseNum
x.RepurchaseNum,
x.LoginEmpActive,
x.LoginLeaderActive,
x.OrderEmpActive,
x.OrderLeaderActice,
});
return ApiResult.Success("", pagelist);
}
......@@ -251,16 +255,10 @@ namespace Mall.WebApi.Controllers.MarketingCenter
public ApiResult GetDataStatistics()
{
DataStatistics_Query query = JsonConvert.DeserializeObject<DataStatistics_Query>(RequestParm.msg.ToString());
var orderObj= statisticsModule.GetOrderUserStatisticsModule(query);
var loginObj = statisticsModule.GetMemberUserStatisticsModule(new Model.Extend.User.RB_Member_User_Extend()
{
TenantId = query.TenantId,
MallBaseId = query.MallBaseId
});
var obj = new
{
orderObj,
loginObj
orderObj=1,
loginObj=1
};
return ApiResult.Success(data: obj);
}
......@@ -268,7 +266,6 @@ namespace Mall.WebApi.Controllers.MarketingCenter
[HttpPost]
public ApiResult GetSellOrder()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<DataStatistics_Query>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
......
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