Commit d3206d26 authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents 042cb438 d3f89b05
......@@ -16,6 +16,7 @@ using Edu.Common.Enum;
using Edu.Repository.System;
using Edu.Model.ViewModel.System;
using Edu.Common.Enum.User;
using Edu.Common.Plugin;
namespace Edu.Module.Customer
{
......@@ -536,6 +537,7 @@ namespace Edu.Module.Customer
}
}
/// <summary>
/// 市场人员统计
/// </summary>
......@@ -620,9 +622,96 @@ namespace Edu.Module.Customer
//当前周
var curWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)))?.ToList();
//上一周
var lastWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1))-1)?.ToList();
var lastWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)) - 1)?.ToList();
var tempDataList = lastList?.Where(qitem => Common.ConvertHelper.FormatDate(qitem.Date) == Common.ConvertHelper.FormatDate(end.AddDays(-1)))?.ToList();
//渠道数据统计
var dataList = studentRepository.GetStudentChannelStaticRepository(new RB_Student_ViewModel()
{
StartTime = StartTime,
EndTime = EndTime,
CreateIds = Common.ConvertHelper.StringToList(EmpIds)
});
//市场部个人数据
List<MarketChannelStaticModel> barList = new List<MarketChannelStaticModel>();
var channelList = channelRepository.GetChannelListRepository(new RB_Channel_Extend() { });
var createTypeList = dataList.GroupBy(qitem => new { qitem.CreateType }).Select(qitem => new { qitem.Key.CreateType });
foreach (var item in createTypeList)
{
var tempList = dataList?.Where(qitem => qitem.CreateType == item.CreateType)?.ToList();
if (item.CreateType == StuCreateTypeEnum.EmployeeInput)
{
foreach (var sItem in tempList?.GroupBy(qitem => new { qitem.StuChannel })?.Select(qitem => new { qitem.Key.StuChannel }))
{
barList.Add(new MarketChannelStaticModel()
{
ChannelId = sItem.StuChannel,
ChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == sItem.StuChannel)?.Name ?? "",
ClueCount = tempList?.Where(qitem => qitem.StuChannel == sItem.StuChannel)?.Sum(qitem => qitem.ClueCount) ?? 0,
VisitCount = tempList?.Where(qitem => qitem.StuChannel == sItem.StuChannel)?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempList?.Where(qitem => qitem.StuChannel == sItem.StuChannel)?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempList?.Where(qitem => qitem.StuChannel == sItem.StuChannel)?.Sum(qitem => qitem.OrderIncome) ?? 0,
});
}
}
else if (item.CreateType == StuCreateTypeEnum.CustomerInput)
{
barList.Add(new MarketChannelStaticModel()
{
ChannelId = 100002,
ChannelName = item.CreateType.ToName(),
ClueCount = tempList?.Sum(qitem => qitem.ClueCount) ?? 0,
VisitCount = tempList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempList?.Sum(qitem => qitem.OrderIncome) ?? 0,
});
}
else if (item.CreateType == StuCreateTypeEnum.InternalIntroduction)
{
barList.Add(new MarketChannelStaticModel()
{
ChannelId = 100003,
ChannelName = item.CreateType.ToName(),
ClueCount = tempList?.Sum(qitem => qitem.ClueCount) ?? 0,
VisitCount = tempList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempList?.Sum(qitem => qitem.OrderIncome) ?? 0,
});
}
else if (item.CreateType == StuCreateTypeEnum.TransIntroduction)
{
barList.Add(new MarketChannelStaticModel()
{
ChannelId = 100004,
ChannelName = item.CreateType.ToName(),
ClueCount = tempList?.Sum(qitem => qitem.ClueCount) ?? 0,
VisitCount = tempList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempList?.Sum(qitem => qitem.OrderIncome) ?? 0,
});
}
}
//四个渠道饼状图
List<MarketChannelStaticModel> pieList = new List<MarketChannelStaticModel>();
foreach (var item in createTypeList)
{
var tempList = dataList?.Where(qitem => qitem.CreateType == item.CreateType)?.ToList();
pieList.Add(new MarketChannelStaticModel()
{
ChannelId = (int)item.CreateType,
ChannelName = item.CreateType.ToName(),
ClueCount = tempList?.Sum(qitem => qitem.ClueCount) ?? 0,
VisitCount = tempList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempList?.Sum(qitem => qitem.OrderIncome) ?? 0,
});
}
obj = new
{
dayList,
......@@ -665,6 +754,20 @@ namespace Edu.Module.Customer
LastWeekSale = lastWeekList?.Sum(qitem => qitem.LastWeekSale) ?? 0,
CurMonrhSale = tempDataList?.Sum(qitem => qitem.CurMonrhSale) ?? 0,
LastMonthSale = tempDataList?.Sum(qitem => qitem.LastMonthSale) ?? 0,
},
BarData = new
{
ClueData = barList?.OrderByDescending(qitem => qitem.ClueCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.ClueCount })?.Take(10),
VisitData = barList?.OrderByDescending(qitem => qitem.VisitCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.VisitCount })?.Take(10),
OrderData = barList?.OrderByDescending(qitem => qitem.OrderCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.OrderCount })?.Take(10),
IncomeData = barList?.OrderByDescending(qitem => qitem.OrderIncome)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.OrderIncome })?.Take(10),
},
PieData = new
{
ClueData = pieList?.OrderByDescending(qitem => qitem.ClueCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.ClueCount })?.Take(10),
VisitData = pieList?.OrderByDescending(qitem => qitem.VisitCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.VisitCount })?.Take(10),
OrderData = pieList?.OrderByDescending(qitem => qitem.OrderCount)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.OrderCount })?.Take(10),
IncomeData = pieList?.OrderByDescending(qitem => qitem.OrderIncome)?.Select(qitem => new { qitem.ChannelId, qitem.ChannelName, qitem.OrderIncome })?.Take(10),
}
};
return obj;
......@@ -896,7 +999,7 @@ namespace Edu.Module.Customer
/// <param name="EndTime">结束时间</param>
/// <param name="qEmpIds">员工编号</param>
/// <returns></returns>
public List<object> MarketChannelStudentStaticModule(string StartTime, string EndTime, string qEmpIds,bool isHaveAuth=false)
public List<object> MarketChannelStudentStaticModule(string StartTime, string EndTime, string qEmpIds, bool isHaveAuth = false)
{
List<object> list = new List<object>();
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
......@@ -905,7 +1008,7 @@ namespace Edu.Module.Customer
QDeptIds = "4",
Group_Id = 100000,
IsLeave = 1,
QIds= qEmpIds
QIds = qEmpIds
});
if (empList != null && empList.Count > 0)
{
......@@ -1063,11 +1166,11 @@ namespace Edu.Module.Customer
customerDataList.Add(new MarketChannelStaticModel()
{
ChannelName = customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? "",
ChannelId= subItem.StuSourceId,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)??0
ChannelId = subItem.StuSourceId,
ClueCount = tempCusList?.Count() ?? 0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
//校代同行
......@@ -1076,11 +1179,11 @@ namespace Edu.Module.Customer
schoolDataList.Add(new MarketChannelStaticModel()
{
ChannelName = customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? "",
ChannelId= subItem.StuSourceId,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)??0
ChannelId = subItem.StuSourceId,
ClueCount = tempCusList?.Count() ?? 0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
}
......@@ -1104,11 +1207,11 @@ namespace Edu.Module.Customer
innerDataList.Add(new MarketChannelStaticModel()
{
ChannelName = empList?.FirstOrDefault(qitem => qitem.Id == sItem.StuSourceId)?.EmployeeName ?? "",
ChannelId= sItem.StuSourceId,
ClueCount = tempInnerList?.Count()??0,
VisitCount = tempInnerList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempInnerList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempInnerList?.Sum(qitem => qitem.OrderIncome)??0
ChannelId = sItem.StuSourceId,
ClueCount = tempInnerList?.Count() ?? 0,
VisitCount = tempInnerList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempInnerList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempInnerList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
}
......@@ -1129,11 +1232,11 @@ namespace Edu.Module.Customer
transDataList.Add(new MarketChannelStaticModel()
{
ChannelName = stuList?.FirstOrDefault(qitem => qitem.StuId == sItem.StuSourceId)?.StuName ?? "",
ChannelId= sItem.StuSourceId,
ClueCount = tempTransList?.Count()??0,
VisitCount = tempTransList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempTransList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempTransList?.Sum(qitem => qitem.OrderIncome)??0
ChannelId = sItem.StuSourceId,
ClueCount = tempTransList?.Count() ?? 0,
VisitCount = tempTransList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempTransList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempTransList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
}
......@@ -1203,7 +1306,7 @@ namespace Edu.Module.Customer
{
list.Add(new
{
ChannelName ="(企业)"+( customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
ChannelName = "(企业)" + (customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
subItem.StuSourceId,
ClueCount = tempCusList?.Count(),
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount),
......
......@@ -966,6 +966,10 @@ WHERE A.Status=0
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_ViewModel.CreateTime), query.EndTime);
}
if (query.CreateIds != null && query.CreateIds.Count > 0)
{
builder.AppendFormat(" AND A.{0} IN({0}) ", nameof(RB_Student_ViewModel.CreateBy), string.Join(",", query.CreateIds));
}
}
var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList();
return list;
......
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