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

查询修改

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