Commit 9d144dc5 authored by 黄奎's avatar 黄奎

页面修改

parent a7b4cdc3
......@@ -139,6 +139,11 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public int OrderCount { get; set; }
/// <summary>
/// 订单实收金额
/// </summary>
public decimal OrderIncome { get; set; }
/// <summary>
/// 续费订单数量
/// </summary>
......@@ -203,6 +208,9 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public string QDate { get; set; }
/// <summary>
/// 到访次数
/// </summary>
public int VisitCount { get; set; }
/// <summary>
......
......@@ -13,6 +13,8 @@ using Edu.Model.ViewModel.DataStatistics;
using Edu.Model.ViewModel.Reserve;
using VT.FW.DB;
using Edu.Common.Enum;
using Edu.Repository.System;
using Edu.Model.ViewModel.System;
namespace Edu.Module.Customer
{
......@@ -71,6 +73,11 @@ namespace Edu.Module.Customer
/// </summary>
private readonly RB_DepartmentRepository departmentRepository = new RB_DepartmentRepository();
/// <summary>
/// 渠道仓储层对象
/// </summary>
private readonly RB_ChannelRepository channelRepository = new RB_ChannelRepository();
/// <summary>
/// 清除数据
/// </summary>
......@@ -860,5 +867,61 @@ namespace Edu.Module.Customer
return flag;
}
#endregion
#region 市场渠道统计
/// <summary>
/// 市场部渠道数据统计
/// </summary>
/// <returns></returns>
public List<object> MarketChannelStaticModule(string StartTime, string EndTime)
{
List<object> list = new List<object>();
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{
//市场部编号4,课程顾问部编号13
QDeptIds = "4",
Group_Id = 100000,
IsLeave = 1
});
if (empList != null && empList.Count > 0)
{
var channelList = channelRepository.GetChannelListRepository(new RB_Channel_Extend() { });
var dataList = studentRepository.GetStudentChannelStaticRepository(new RB_Student_ViewModel()
{
StartTime = StartTime,
EndTime = EndTime
});
foreach (var eItem in empList)
{
List<object> subList = new List<object>();
if (channelList != null && channelList.Count > 0)
{
foreach (var item in channelList)
{
var tempList = dataList?.Where(qitem => qitem.CreateBy == eItem.Id && qitem.StuChannel == item.Id)?.ToList();
subList.Add(new
{
ChannelName = item.Name,
ChannelId = item.Id,
ClueCount= tempList?.Count(),
VisitCount= tempList?.Sum(qitem=>qitem.VisitCount),
OrderCount= tempList?.Sum(qitem=>qitem.OrderCount),
OrderIncome = tempList?.Sum(qitem=>qitem.OrderIncome)
});
}
}
list.Add(new
{
eItem.Id,
eItem.EmployeeName,
subList
});
}
}
return list;
}
#endregion
}
}
\ No newline at end of file
......@@ -930,5 +930,40 @@ WHERE 1=1
return dicList;
}
/// <summary>
/// 市场部渠道数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentChannelStaticRepository(RB_Student_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.StuId,A.CreateBy,A.StuChannel,A.CreateType,IFNULL(B.VisitCount,0) AS VisitCount,IFNULL(C.CourseOrderCount,0) AS OrderCount,IFNULL(c.Income,0) AS OrderInCome
FROM RB_Student AS A
LEFT JOIN(SELECT StuId,Count(1) AS VisitCount FROM rb_student_visit WHERE Status=0 GROUP BY StuId) AS B ON A.StuId=B.StuId
LEFT JOIN(SELECT og.Student_Id,COUNT(1) AS CourseOrderCount,SUM(o.Income) AS Income FROM rb_student_orderguest AS og INNER JOIN rb_order AS o ON og.OrderId=o.OrderId WHERE O.OrderState NOT IN(3,4) GROUP BY og.Student_Id ) AS C ON A.StuId=C.Student_Id
WHERE A.Status=0
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Student_ViewModel.CreateTime), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_ViewModel.CreateTime), query.EndTime);
}
}
var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList();
return list;
}
}
}
\ No newline at end of file
......@@ -2757,5 +2757,43 @@ namespace Edu.WebApi.Controllers.User
}
#endregion
#region 市场渠道统计
/// <summary>
/// 市场渠道统计
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeatAttribute]
public ApiResult MarketChannelStatic()
{
string startTime = base.ParmJObj.GetStringValue("startTime");
if (string.IsNullOrEmpty(startTime))
{
startTime = "2022-01-01";
}
string endTime = base.ParmJObj.GetStringValue("endTime");
if (string.IsNullOrEmpty(endTime))
{
endTime = Common.ConvertHelper.FormatDate(DateTime.Now);
}
string empIds = base.ParmJObj.GetStringValue("empList");
List<int> empList = new List<int>();
if (!string.IsNullOrEmpty(empIds))
{
empList = JsonHelper.DeserializeObject<List<int>>(empIds);
}
string qEmpIds = "";
if (empList != null && empList.Count > 0)
{
qEmpIds = string.Join(",", empList);
}
var data = marketConsultantModule.MarketChannelStaticModule(startTime, endTime);
return ApiResult.Success(data: data);
}
#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