Commit 93aa47df authored by 黄奎's avatar 黄奎

页面修改

parent c1bda959
......@@ -100,7 +100,7 @@ namespace Mall.Model.Extend.Statistics
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class MallSalesGoodsTop
{
{
/// <summary>
/// 排名
/// </summary>
......@@ -155,4 +155,31 @@ namespace Mall.Model.Extend.Statistics
public int SaleCount { get; set; }
}
/// <summary>
/// 分销用户统计
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class MallDistributorTotal
{
/// <summary>
/// 分销等级
/// </summary>
public int FXGradeId { get; set; }
/// <summary>
/// 分销等级名称
/// </summary>
public string GradeName { get; set; }
/// <summary>
/// 分销等级用户数量
/// </summary>
public int UserCount { get; set; }
/// <summary>
/// 时间
/// </summary>
public DateTime TimeStr { get; set; }
}
}
......@@ -2008,7 +2008,7 @@ namespace Mall.Module.User
var list = mallStatisticsRepository.MallIndexSalesStatisticsRepository(query);
List<object> resultList = new List<object>();
List<MallSalesStatistics> subList = new List<MallSalesStatistics>();
if (query.SalesTimeType == 1 || query.SalesTimeType==0)
if (query.SalesTimeType == 1 || query.SalesTimeType == 0)
{
for (var i = 0; i <= 23; i++)
{
......@@ -2074,5 +2074,25 @@ namespace Mall.Module.User
return mallStatisticsRepository.MallIndesSalesUserStatisticsRepository(query);
}
#endregion
/// <summary>
/// 分销用户总计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public object MallDistributorStatisticsModule(StatisticsQuery query)
{
return mallStatisticsRepository.MallDistributorStatisticsRepository(query);
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public object MallDistributorDayStatisticsModule(StatisticsQuery query)
{
return mallStatisticsRepository.MallDistributorDayStatisticsRepository(query);
}
}
}
......@@ -15,6 +15,11 @@ namespace Mall.Repository.User
/// </summary>
public class MallStatisticsRepository : BaseRepository<MallIndexStatistics>
{
/// <summary>
/// 获取粉象等级
/// </summary>
private RB_Distributor_FXGradeRepository distributor_FXGradeRepository = new RB_Distributor_FXGradeRepository();
/// <summary>
/// 获取商城的总订单和总用户
/// </summary>
......@@ -170,7 +175,7 @@ WHERE 1=1 AND A.ReOrderStatus IN(2,3,4) ");
selectFileds = " SUBSTR(DATE_FORMAT(CreateDate,'%Y%m%d%H'),9,2) AS TimeStr, ";
groupFileds = " GROUP BY DATE_FORMAT(CreateDate,'%Y%m%d%H') ";
}
else
else
{
selectFileds = " DATE_FORMAT(CreateDate,'%Y-%m-%d') AS TimeStr, ";
groupFileds = " GROUP BY DATE_FORMAT(CreateDate,'%Y%m%d') ";
......@@ -319,5 +324,125 @@ GROUP BY B.UserId,C.`Name`
}
return list;
}
/// <summary>
/// 分销用户总计统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public object MallDistributorStatisticsRepository(StatisticsQuery query)
{
var fxGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
Status = 0
});
string where = "";
where += string.Format(" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} ", nameof(RB_Distributor_Info.TenantId), query.TenantId);
where += string.Format(" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} ", nameof(RB_Distributor_Info.MallBaseId), query.MallBaseId);
StringBuilder user = new StringBuilder();
user.AppendFormat(@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0}
GROUP By B.FXGradeId,C.GradeName ", where);
//总用户数量
var tempTotalList = Get<MallDistributorTotal>(user.ToString()).ToList();
int totalUserCount = 0;
if (tempTotalList != null && tempTotalList.Count > 0)
{
totalUserCount = tempTotalList.Sum(qitem => qitem.UserCount);
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount,DATE_FORMAT(A.CreateDate,'%Y-%m-%d') AS TimeStr
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0} AND DATE_FORMAT(A.CreateDate,'%Y-%m-%d')='{1}'
GROUP By B.FXGradeId,C.GradeName ", where, DateTime.Now.ToString("yyyy-MM-dd"));
//今日用户数量
var tempTodayList = Get<MallDistributorTotal>(builder.ToString()).ToList();
List<MallDistributorTotal> totalList = new List<MallDistributorTotal>();
List<MallDistributorTotal> todayList = new List<MallDistributorTotal>();
foreach (var item in fxGradeList)
{
totalList.Add(new MallDistributorTotal()
{
GradeName = item.GradeName,
UserCount = tempTotalList?.Where(qitem => qitem.FXGradeId == item.Grade)?.FirstOrDefault()?.UserCount ?? 0
});
todayList.Add(new MallDistributorTotal()
{
GradeName = item.GradeName,
UserCount = tempTodayList?.Where(qitem => qitem.FXGradeId == item.Grade)?.FirstOrDefault()?.UserCount ?? 0
});
}
var obj = new
{
totalUserCount,
totalList = totalList.Select(qitem => new { qitem.GradeName, qitem.UserCount }),
todayList = todayList.Select(qitem => new { qitem.GradeName, qitem.UserCount })
};
return obj;
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public object MallDistributorDayStatisticsRepository(StatisticsQuery query)
{
string where = "";
where += string.Format(" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} ", nameof(RB_Distributor_Info.TenantId), query.TenantId);
where += string.Format(" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} ", nameof(RB_Distributor_Info.MallBaseId), query.MallBaseId);
//订单来源
if (query.Source > 0)
{
where += string.Format(" AND A.{0}={1} ", nameof(RB_Member_User_Extend.Source), (int)query.Source);
}
//开始时间
if (query.StartDate != null && !string.IsNullOrWhiteSpace(query.StartDate))
{
where += string.Format(" AND A.{0}>='{1}' ", nameof(RB_Member_User_Extend.CreateDate), query.StartDate);
}
//结束时间
if (query.EndDate != null && !string.IsNullOrWhiteSpace(query.EndDate))
{
where += string.Format(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Member_User_Extend.CreateDate), query.EndDate);
}
StringBuilder build = new StringBuilder();
build.AppendFormat(@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount,DATE_FORMAT(A.CreateDate,'%Y-%m-%d') AS TimeStr
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0}
GROUP By B.FXGradeId,C.GradeName,DATE_FORMAT(A.CreateDate,'%Y%m%d')
", where);
List<object> resultList = new List<object>();
var list = Get<MallDistributorTotal>(build.ToString()).ToList();
if (list != null && list.Count > 0)
{
var dayList = list.GroupBy(qitem => new { qitem.TimeStr }).Select(qitem => new { qitem.Key.TimeStr });
foreach (var dayItem in dayList)
{
resultList.Add(new
{
TimeStr = Convert.ToDateTime(dayItem.TimeStr).ToString("yyyy-MM-dd"),
Pink = list.Where(qitem => qitem.TimeStr == dayItem.TimeStr && qitem.FXGradeId == 1)?.FirstOrDefault()?.UserCount ?? 0,
VIP = list.Where(qitem => qitem.TimeStr == dayItem.TimeStr && qitem.FXGradeId == 2)?.FirstOrDefault()?.UserCount ?? 0,
Silver = list.Where(qitem => qitem.TimeStr == dayItem.TimeStr && qitem.FXGradeId == 3)?.FirstOrDefault()?.UserCount ?? 0,
Gold = list.Where(qitem => qitem.TimeStr == dayItem.TimeStr && qitem.FXGradeId == 4)?.FirstOrDefault()?.UserCount ?? 0,
});
};
}
return resultList;
}
}
}
......@@ -1754,5 +1754,36 @@ namespace Mall.WebApi.Controllers.User
return fileStream;
}
#endregion
#region 分销用户统计
/// <summary>
/// 用户数据统计
/// </summary>
/// <returns></returns>
public ApiResult MallDistributorStatistics()
{
var query = JsonConvert.DeserializeObject<StatisticsQuery>(RequestParm.msg.ToString());
query.MallBaseId = RequestParm.MallBaseId;
query.TenantId = RequestParm.TenantId;
//用户数据统计
var basicData = programModule.MallDistributorStatisticsModule(query);
return ApiResult.Success(data: basicData);
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <returns></returns>
public ApiResult MallDistributorDayStatistics()
{
var query = JsonConvert.DeserializeObject<StatisticsQuery>(RequestParm.msg.ToString());
query.MallBaseId = RequestParm.MallBaseId;
query.TenantId = RequestParm.TenantId;
//每日用户统计
var basicData = programModule.MallDistributorDayStatisticsModule(query);
return ApiResult.Success(data: basicData);
}
#endregion
}
}
\ No newline at end of file
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