Commit 1d996a06 authored by 黄奎's avatar 黄奎

页面修改

parent 94ee406d
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 市场部客户数据统计实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Market
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 日期
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// 进单人数
/// </summary>
public decimal PushCount { get; set; }
/// <summary>
/// 语培需求
/// </summary>
public decimal TrainCount { get; set; }
/// <summary>
/// 留学需求
/// </summary>
public decimal StudyCount { get; set; }
/// <summary>
/// 美团点评
/// </summary>
public decimal MeiTuanCount { get; set; }
/// <summary>
/// 教育同行(签约)
/// </summary>
public decimal EduCustomerSign { get; set; }
/// <summary>
/// 教育同行(未签约)
/// </summary>
public decimal EduCustomerNotSign { get; set; }
/// <summary>
/// 过路客(直客)
/// </summary>
public decimal PassBy { get; set; }
/// <summary>
/// 朋友圈
/// </summary>
public decimal WeChatFriend { get; set; }
/// <summary>
/// 学员转介绍
/// </summary>
public decimal TransCount { get; set; }
/// <summary>
/// 校园推广
/// </summary>
public decimal SchoolPromote { get; set; }
/// <summary>
/// 校园代理
/// </summary>
public decimal SchoolAgent { get; set; }
/// <summary>
/// 线下活动
/// </summary>
public decimal OfflineActivity { get; set; }
/// <summary>
/// 公众号
/// </summary>
public decimal OfficialAccount { get; set; }
/// <summary>
/// 教师推荐
/// </summary>
public decimal TeacherRecommend { get; set; }
/// <summary>
/// 字节跳动
/// </summary>
public decimal ByteDance { get; set; }
/// <summary>
/// 第三方平台
/// </summary>
public decimal ThirdPartyPlatform { get; set; }
/// <summary>
/// 其他
/// </summary>
public decimal Other { get; set; }
/// <summary>
/// A类客户
/// </summary>
public decimal ClassACount { get; set; }
/// <summary>
/// B类客户
/// </summary>
public decimal ClassBCount { get; set; }
/// <summary>
/// C类客户
/// </summary>
public decimal ClassCCount { get; set; }
/// <summary>
/// D类客户
/// </summary>
public decimal ClassDCount { get; set; }
/// <summary>
/// 无效
/// </summary>
public decimal InvalidCount { get; set; }
/// <summary>
/// 签约(成交、续费)
/// </summary>
public decimal ContractCount { get; set; }
/// <summary>
/// 语培签约金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 留学签约金额
/// </summary>
public decimal StudyOrderMoney { get; set; }
/// <summary>
/// 年
/// </summary>
public int YearStr { get; set; }
/// <summary>
/// 月
/// </summary>
public int MonthStr { get; set; }
/// <summary>
/// 次
/// </summary>
public int Times { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
...@@ -6,7 +6,7 @@ using VT.FW.DB; ...@@ -6,7 +6,7 @@ using VT.FW.DB;
namespace Edu.Model.Entity.User namespace Edu.Model.Entity.User
{ {
/// <summary> /// <summary>
/// 客户数据统计实体类 /// 课程顾问部客户数据统计实体类
/// </summary> /// </summary>
[Serializable] [Serializable]
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
......
using Edu.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 市场部客户数据统计扩展实体类
/// </summary>
public class RB_Student_Market_Extend: RB_Student_Market
{
/// <summary>
/// 月份
/// </summary>
public string ShowMonthStr { get; set; }
/// <summary>
/// 日期字符串
/// </summary>
public string DateStr
{
get
{
return Common.ConvertHelper.FormatDate2(this.Date);
}
}
}
}
...@@ -73,6 +73,11 @@ namespace Edu.Module.User ...@@ -73,6 +73,11 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_Student_StaticRepository student_StaticRepository = new RB_Student_StaticRepository(); private readonly RB_Student_StaticRepository student_StaticRepository = new RB_Student_StaticRepository();
/// <summary>
/// 市场部客户信息统计仓储层对象
/// </summary>
private readonly RB_Student_MarketRepository student_MarketRepository = new RB_Student_MarketRepository();
#region 学员跟进 #region 学员跟进
...@@ -2152,7 +2157,6 @@ namespace Edu.Module.User ...@@ -2152,7 +2157,6 @@ namespace Edu.Module.User
public List<RateYearItem> GetStudentStaticListYearRateModule(RB_Student_Static_Extend query) public List<RateYearItem> GetStudentStaticListYearRateModule(RB_Student_Static_Extend query)
{ {
List<RateYearItem> yearList = new List<RateYearItem>(); List<RateYearItem> yearList = new List<RateYearItem>();
var dataList = student_StaticRepository.GetStudentStaticMonthListRepository(query, isYear:true); var dataList = student_StaticRepository.GetStudentStaticMonthListRepository(query, isYear:true);
List<RB_Student_Static_Extend> result = new List<RB_Student_Static_Extend>(); List<RB_Student_Static_Extend> result = new List<RB_Student_Static_Extend>();
int minYear = dataList.Min(qitem => qitem.YearStr); int minYear = dataList.Min(qitem => qitem.YearStr);
...@@ -2905,14 +2909,6 @@ namespace Edu.Module.User ...@@ -2905,14 +2909,6 @@ namespace Edu.Module.User
public bool CreateStudentStaticModule(UserInfo user, string StartTime, string EndTime) public bool CreateStudentStaticModule(UserInfo user, string StartTime, string EndTime)
{ {
bool flag = true; bool flag = true;
//var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
//{
// //市场部编号4,课程顾问部编号13
// QDeptIds = "13",
// Group_Id = 100000,
// IsLeave = 1,
// UserRole = UserRoleEnum.CourseConsultant,
//});
string empIds = ""; string empIds = "";
student_StaticRepository.DeleteStudentStaticByProcRepository(); student_StaticRepository.DeleteStudentStaticByProcRepository();
var date = Convert.ToDateTime(StartTime); var date = Convert.ToDateTime(StartTime);
...@@ -3205,5 +3201,926 @@ namespace Edu.Module.User ...@@ -3205,5 +3201,926 @@ namespace Edu.Module.User
} }
#endregion #endregion
#region
/// <summary>
/// 生成每天数据
/// </summary>
/// <param name="user">当前操作用户</param>
/// <param name="StartTime">开始时间</param>
/// <param name="EndTime">结束时间</param>
/// <returns></returns>
public bool CreateStudentMarketModule(UserInfo user, string StartTime, string EndTime)
{
bool flag = true;
string empIds = "";
student_MarketRepository.DeleteStudentMarketByProcRepository();
var date = Convert.ToDateTime(StartTime);
var endTime = Convert.ToDateTime(EndTime);
int Days = (endTime - date).Days;
for (int i = 0; i < Days; i++)
{
var newDate = date.AddDays(i);
var procModel = student_MarketRepository.GetStudentMarketByProcRepository(Common.ConvertHelper.FormatDate(newDate), empIds);
var newModel = new RB_Student_Market()
{
Id = 0,
Date = newDate,
PushCount = procModel?.PushCount ?? 0,
TrainCount = procModel?.TrainCount ?? 0,
StudyCount = procModel?.StudyCount ?? 0,
MeiTuanCount = procModel?.MeiTuanCount ?? 0,
EduCustomerSign = procModel?.EduCustomerSign ?? 0,
EduCustomerNotSign = procModel?.EduCustomerNotSign ?? 0,
PassBy= procModel?.PassBy ?? 0,
WeChatFriend= procModel?.WeChatFriend ?? 0,
TransCount = procModel?.TransCount ?? 0,
SchoolPromote= procModel?.SchoolPromote ?? 0,
SchoolAgent= procModel?.SchoolAgent ?? 0,
OfflineActivity = procModel?.OfflineActivity ?? 0,
OfficialAccount = procModel?.OfficialAccount ?? 0,
TeacherRecommend = procModel?.TeacherRecommend ?? 0,
ByteDance = procModel?.ByteDance ?? 0,
ThirdPartyPlatform = procModel?.ThirdPartyPlatform ?? 0,
Other = procModel?.Other ?? 0,
ClassACount = procModel?.ClassACount ?? 0,
ClassBCount = procModel?.ClassBCount ?? 0,
ClassCCount = procModel?.ClassCCount ?? 0,
ClassDCount = procModel?.ClassDCount ?? 0,
InvalidCount = procModel?.InvalidCount ?? 0,
ContractCount = procModel?.ContractCount ?? 0,
OrderMoney = procModel?.OrderMoney ?? 0,
StudyOrderMoney = procModel?.StudyOrderMoney ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
};
int times = 1;
int newDay = newDate.Day;
//本月最后一天
var curMonthLastDay = new DateTime(newDate.Year, newDate.Month, 1).AddMonths(1).AddDays(-1);
if (newDay >= 1 && newDay <= 10)
{
times = 1;
//记录上月最后一个时段总数
if (newDay == 1)
{
var lastMonthDay = newDate.AddMonths(-1);
var lastMonthLastTimeList = student_MarketRepository.GetStudentMarketListRepository(new RB_Student_Market_Extend()
{
YearStr = lastMonthDay.Year,
MonthStr = lastMonthDay.Month,
Times = 3
})?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
var staticModel = new RB_Student_Market()
{
Id = 0,
PushCount = lastMonthLastTimeList?.Sum(qitem => qitem.PushCount) ?? 0,
TrainCount = lastMonthLastTimeList?.Sum(qitem => qitem.TrainCount) ?? 0,
StudyCount = lastMonthLastTimeList?.Sum(qitem => qitem.StudyCount) ?? 0,
MeiTuanCount = lastMonthLastTimeList?.Sum(qitem => qitem.MeiTuanCount) ?? 0,
EduCustomerSign = lastMonthLastTimeList?.Sum(qitem => qitem.EduCustomerSign) ?? 0,
EduCustomerNotSign = lastMonthLastTimeList?.Sum(qitem => qitem.EduCustomerNotSign) ?? 0,
PassBy = lastMonthLastTimeList?.Sum(qitem => qitem.PassBy) ?? 0,
WeChatFriend = lastMonthLastTimeList?.Sum(qitem => qitem.WeChatFriend) ?? 0,
TransCount = lastMonthLastTimeList?.Sum(qitem => qitem.TransCount) ?? 0,
SchoolPromote = lastMonthLastTimeList?.Sum(qitem => qitem.SchoolPromote) ?? 0,
SchoolAgent = lastMonthLastTimeList?.Sum(qitem => qitem.SchoolAgent) ?? 0,
OfflineActivity = lastMonthLastTimeList?.Sum(qitem => qitem.OfflineActivity) ?? 0,
OfficialAccount = lastMonthLastTimeList?.Sum(qitem => qitem.OfficialAccount) ?? 0,
TeacherRecommend = lastMonthLastTimeList?.Sum(qitem => qitem.TeacherRecommend) ?? 0,
ByteDance = lastMonthLastTimeList?.Sum(qitem => qitem.ByteDance) ?? 0,
ThirdPartyPlatform = lastMonthLastTimeList?.Sum(qitem => qitem.ThirdPartyPlatform) ?? 0,
Other = lastMonthLastTimeList?.Sum(qitem => qitem.Other) ?? 0,
ClassACount = lastMonthLastTimeList?.Sum(qitem => qitem.ClassACount) ?? 0,
ClassBCount = lastMonthLastTimeList?.Sum(qitem => qitem.ClassBCount) ?? 0,
ClassCCount = lastMonthLastTimeList?.Sum(qitem => qitem.ClassCCount) ?? 0,
ClassDCount = lastMonthLastTimeList?.Sum(qitem => qitem.ClassDCount) ?? 0,
InvalidCount = lastMonthLastTimeList?.Sum(qitem => qitem.InvalidCount) ?? 0,
ContractCount = lastMonthLastTimeList?.Sum(qitem => qitem.ContractCount) ?? 0,
OrderMoney = lastMonthLastTimeList?.Sum(qitem => qitem.OrderMoney) ?? 0,
StudyOrderMoney = lastMonthLastTimeList?.Sum(qitem => qitem.StudyOrderMoney) ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
};
staticModel.Times = 1;
staticModel.Group_Id = user.Group_Id;
staticModel.School_Id = user.School_Id;
staticModel.CreateBy = user.Id;
staticModel.CreateTime = DateTime.Now;
student_MarketRepository.Insert(staticModel);
}
}
else if (newDay >= 11 && newDay <= 20)
{
times = 2;
//记录本月第一阶段总数
if (newDay == 11)
{
var curMonthFirstTimeList = student_MarketRepository.GetStudentMarketListRepository(new RB_Student_Market_Extend()
{
YearStr = newDate.Year,
MonthStr = newDate.Month,
Times = 1
})?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
var firstTimeStaticModel = new RB_Student_Market()
{
Id = 0,
PushCount = curMonthFirstTimeList?.Sum(qitem => qitem.PushCount) ?? 0,
TrainCount = curMonthFirstTimeList?.Sum(qitem => qitem.TrainCount) ?? 0,
StudyCount = curMonthFirstTimeList?.Sum(qitem => qitem.StudyCount) ?? 0,
MeiTuanCount = curMonthFirstTimeList?.Sum(qitem => qitem.MeiTuanCount) ?? 0,
EduCustomerSign = curMonthFirstTimeList?.Sum(qitem => qitem.EduCustomerSign) ?? 0,
EduCustomerNotSign = curMonthFirstTimeList?.Sum(qitem => qitem.EduCustomerNotSign) ?? 0,
PassBy = curMonthFirstTimeList?.Sum(qitem => qitem.PassBy) ?? 0,
WeChatFriend = curMonthFirstTimeList?.Sum(qitem => qitem.WeChatFriend) ?? 0,
TransCount = curMonthFirstTimeList?.Sum(qitem => qitem.TransCount) ?? 0,
SchoolPromote = curMonthFirstTimeList?.Sum(qitem => qitem.SchoolPromote) ?? 0,
SchoolAgent = curMonthFirstTimeList?.Sum(qitem => qitem.SchoolAgent) ?? 0,
OfflineActivity = curMonthFirstTimeList?.Sum(qitem => qitem.OfflineActivity) ?? 0,
OfficialAccount = curMonthFirstTimeList?.Sum(qitem => qitem.OfficialAccount) ?? 0,
TeacherRecommend = curMonthFirstTimeList?.Sum(qitem => qitem.TeacherRecommend) ?? 0,
ByteDance = curMonthFirstTimeList?.Sum(qitem => qitem.ByteDance) ?? 0,
ThirdPartyPlatform = curMonthFirstTimeList?.Sum(qitem => qitem.ThirdPartyPlatform) ?? 0,
Other = curMonthFirstTimeList?.Sum(qitem => qitem.Other) ?? 0,
ClassACount = curMonthFirstTimeList?.Sum(qitem => qitem.ClassACount) ?? 0,
ClassBCount = curMonthFirstTimeList?.Sum(qitem => qitem.ClassBCount) ?? 0,
ClassCCount = curMonthFirstTimeList?.Sum(qitem => qitem.ClassCCount) ?? 0,
ClassDCount = curMonthFirstTimeList?.Sum(qitem => qitem.ClassDCount) ?? 0,
InvalidCount = curMonthFirstTimeList?.Sum(qitem => qitem.InvalidCount) ?? 0,
ContractCount = curMonthFirstTimeList?.Sum(qitem => qitem.ContractCount) ?? 0,
OrderMoney = curMonthFirstTimeList?.Sum(qitem => qitem.OrderMoney) ?? 0,
StudyOrderMoney = curMonthFirstTimeList?.Sum(qitem => qitem.StudyOrderMoney) ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
};
firstTimeStaticModel.Times = 2;
firstTimeStaticModel.Group_Id = user.Group_Id;
firstTimeStaticModel.School_Id = user.School_Id;
firstTimeStaticModel.CreateBy = user.Id;
firstTimeStaticModel.CreateTime = DateTime.Now;
student_MarketRepository.Insert(firstTimeStaticModel);
}
}
else
{
times = 3;
//记录本月第二阶段总数
if (newDay == 21)
{
var curMonthSecondTimeList = student_MarketRepository.GetStudentMarketListRepository(new RB_Student_Market_Extend()
{
YearStr = newDate.Year,
MonthStr = newDate.Month,
Times = 2
})?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
var secondTimeStaticModel = new RB_Student_Market()
{
Id = 0,
PushCount = curMonthSecondTimeList?.Sum(qitem => qitem.PushCount) ?? 0,
TrainCount = curMonthSecondTimeList?.Sum(qitem => qitem.TrainCount) ?? 0,
StudyCount = curMonthSecondTimeList?.Sum(qitem => qitem.StudyCount) ?? 0,
MeiTuanCount = curMonthSecondTimeList?.Sum(qitem => qitem.MeiTuanCount) ?? 0,
EduCustomerSign = curMonthSecondTimeList?.Sum(qitem => qitem.EduCustomerSign) ?? 0,
EduCustomerNotSign = curMonthSecondTimeList?.Sum(qitem => qitem.EduCustomerNotSign) ?? 0,
PassBy = curMonthSecondTimeList?.Sum(qitem => qitem.PassBy) ?? 0,
WeChatFriend = curMonthSecondTimeList?.Sum(qitem => qitem.WeChatFriend) ?? 0,
TransCount = curMonthSecondTimeList?.Sum(qitem => qitem.TransCount) ?? 0,
SchoolPromote = curMonthSecondTimeList?.Sum(qitem => qitem.SchoolPromote) ?? 0,
SchoolAgent = curMonthSecondTimeList?.Sum(qitem => qitem.SchoolAgent) ?? 0,
OfflineActivity = curMonthSecondTimeList?.Sum(qitem => qitem.OfflineActivity) ?? 0,
OfficialAccount = curMonthSecondTimeList?.Sum(qitem => qitem.OfficialAccount) ?? 0,
TeacherRecommend = curMonthSecondTimeList?.Sum(qitem => qitem.TeacherRecommend) ?? 0,
ByteDance = curMonthSecondTimeList?.Sum(qitem => qitem.ByteDance) ?? 0,
ThirdPartyPlatform = curMonthSecondTimeList?.Sum(qitem => qitem.ThirdPartyPlatform) ?? 0,
Other = curMonthSecondTimeList?.Sum(qitem => qitem.Other) ?? 0,
ClassACount = curMonthSecondTimeList?.Sum(qitem => qitem.ClassACount) ?? 0,
ClassBCount = curMonthSecondTimeList?.Sum(qitem => qitem.ClassBCount) ?? 0,
ClassCCount = curMonthSecondTimeList?.Sum(qitem => qitem.ClassCCount) ?? 0,
ClassDCount = curMonthSecondTimeList?.Sum(qitem => qitem.ClassDCount) ?? 0,
InvalidCount = curMonthSecondTimeList?.Sum(qitem => qitem.InvalidCount) ?? 0,
ContractCount = curMonthSecondTimeList?.Sum(qitem => qitem.ContractCount) ?? 0,
OrderMoney = curMonthSecondTimeList?.Sum(qitem => qitem.OrderMoney) ?? 0,
StudyOrderMoney = curMonthSecondTimeList?.Sum(qitem => qitem.StudyOrderMoney) ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
};
secondTimeStaticModel.Times = 3;
secondTimeStaticModel.Group_Id = user.Group_Id;
secondTimeStaticModel.School_Id = user.School_Id;
secondTimeStaticModel.CreateBy = user.Id;
secondTimeStaticModel.CreateTime = DateTime.Now;
student_MarketRepository.Insert(secondTimeStaticModel);
}
}
newModel.Times = times;
newModel.Group_Id = user.Group_Id;
newModel.School_Id = user.School_Id;
newModel.CreateBy = user.Id;
newModel.CreateTime = DateTime.Now;
if (flag)
{
var newId = student_MarketRepository.Insert(newModel);
newModel.Id = newId;
flag = newId > 0;
}
//本月最后一天
if (newDay == curMonthLastDay.Day)
{
var curMonthThirdTimeList = student_MarketRepository.GetStudentMarketListRepository(new RB_Student_Market_Extend()
{
YearStr = newDate.Year,
MonthStr = newDate.Month,
Times = 3
})?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
var thirdTimeStaticModel = new RB_Student_Market()
{
Id = 0,
PushCount = curMonthThirdTimeList?.Sum(qitem => qitem.PushCount) ?? 0,
TrainCount = curMonthThirdTimeList?.Sum(qitem => qitem.TrainCount) ?? 0,
StudyCount = curMonthThirdTimeList?.Sum(qitem => qitem.StudyCount) ?? 0,
MeiTuanCount = curMonthThirdTimeList?.Sum(qitem => qitem.MeiTuanCount) ?? 0,
EduCustomerSign = curMonthThirdTimeList?.Sum(qitem => qitem.EduCustomerSign) ?? 0,
EduCustomerNotSign = curMonthThirdTimeList?.Sum(qitem => qitem.EduCustomerNotSign) ?? 0,
PassBy = curMonthThirdTimeList?.Sum(qitem => qitem.PassBy) ?? 0,
WeChatFriend = curMonthThirdTimeList?.Sum(qitem => qitem.WeChatFriend) ?? 0,
TransCount = curMonthThirdTimeList?.Sum(qitem => qitem.TransCount) ?? 0,
SchoolPromote = curMonthThirdTimeList?.Sum(qitem => qitem.SchoolPromote) ?? 0,
SchoolAgent = curMonthThirdTimeList?.Sum(qitem => qitem.SchoolAgent) ?? 0,
OfflineActivity = curMonthThirdTimeList?.Sum(qitem => qitem.OfflineActivity) ?? 0,
OfficialAccount = curMonthThirdTimeList?.Sum(qitem => qitem.OfficialAccount) ?? 0,
TeacherRecommend = curMonthThirdTimeList?.Sum(qitem => qitem.TeacherRecommend) ?? 0,
ByteDance = curMonthThirdTimeList?.Sum(qitem => qitem.ByteDance) ?? 0,
ThirdPartyPlatform = curMonthThirdTimeList?.Sum(qitem => qitem.ThirdPartyPlatform) ?? 0,
Other = curMonthThirdTimeList?.Sum(qitem => qitem.Other) ?? 0,
ClassACount = curMonthThirdTimeList?.Sum(qitem => qitem.ClassACount) ?? 0,
ClassBCount = curMonthThirdTimeList?.Sum(qitem => qitem.ClassBCount) ?? 0,
ClassCCount = curMonthThirdTimeList?.Sum(qitem => qitem.ClassCCount) ?? 0,
ClassDCount = curMonthThirdTimeList?.Sum(qitem => qitem.ClassDCount) ?? 0,
InvalidCount = curMonthThirdTimeList?.Sum(qitem => qitem.InvalidCount) ?? 0,
ContractCount = curMonthThirdTimeList?.Sum(qitem => qitem.ContractCount) ?? 0,
OrderMoney = curMonthThirdTimeList?.Sum(qitem => qitem.OrderMoney) ?? 0,
StudyOrderMoney = curMonthThirdTimeList?.Sum(qitem => qitem.StudyOrderMoney) ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
};
thirdTimeStaticModel.Times = 3;
thirdTimeStaticModel.Group_Id = user.Group_Id;
thirdTimeStaticModel.School_Id = user.School_Id;
thirdTimeStaticModel.CreateBy = user.Id;
thirdTimeStaticModel.CreateTime = DateTime.Now;
student_MarketRepository.Insert(thirdTimeStaticModel);
}
}
return flag;
}
/// <summary>
/// 市场部客户数据每日统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetStudentMarketListModule(RB_Student_Market_Extend query)
{
List<object> dataList = new List<object>();
var list = student_MarketRepository.GetStudentMarketListRepository(query);
if (list != null && list.Count > 0)
{
int index = 0;
var firstModel = new RB_Student_Market_Extend();
foreach (var item in list)
{
string DateStr = Common.ConvertHelper.FormatMonthDay(item.Date);
object subObj = new object();
if (string.IsNullOrEmpty(DateStr))
{
DateStr = "总数";
if (index > 0)
{
decimal PushCount = 0;
if (firstModel.PushCount > 0)
{
PushCount = (item.PushCount - firstModel.PushCount) / firstModel.PushCount * 100;
}
decimal TrainCount = 0;
if (firstModel.TrainCount > 0)
{
TrainCount = (item.TrainCount - firstModel.TrainCount) / firstModel.TrainCount * 100;
}
decimal StudyCount = 0;
if (firstModel.StudyCount > 0)
{
StudyCount = (item.StudyCount - firstModel.StudyCount) / firstModel.StudyCount * 100;
}
decimal MeiTuanCount = 0;
if (firstModel.MeiTuanCount > 0)
{
MeiTuanCount = (item.MeiTuanCount - firstModel.MeiTuanCount) / firstModel.MeiTuanCount * 100;
}
decimal EduCustomerSign = 0;
if (firstModel.EduCustomerSign > 0)
{
EduCustomerSign = (item.EduCustomerSign - firstModel.EduCustomerSign) / firstModel.EduCustomerSign * 100;
}
decimal EduCustomerNotSign = 0;
if (firstModel.EduCustomerNotSign > 0)
{
EduCustomerNotSign = (item.EduCustomerNotSign - firstModel.EduCustomerNotSign) / firstModel.EduCustomerNotSign * 100;
}
decimal PassBy = 0;
if (firstModel.PassBy > 0)
{
PassBy = (item.PassBy - firstModel.PassBy) / firstModel.PassBy * 100;
}
decimal WeChatFriend = 0;
if (firstModel.WeChatFriend > 0)
{
WeChatFriend = (item.WeChatFriend - firstModel.WeChatFriend) / firstModel.WeChatFriend * 100;
}
decimal TransCount = 0;
if (firstModel.TransCount > 0)
{
TransCount = (item.TransCount - firstModel.TransCount) / firstModel.TransCount * 100;
}
decimal SchoolPromote = 0;
if (firstModel.SchoolPromote > 0)
{
SchoolPromote = (item.SchoolPromote - firstModel.SchoolPromote) / firstModel.SchoolPromote * 100;
}
decimal SchoolAgent = 0;
if (firstModel.SchoolAgent > 0)
{
SchoolAgent = (item.SchoolAgent - firstModel.SchoolAgent) / firstModel.SchoolAgent * 100;
}
decimal OfflineActivity = 0;
if (firstModel.OfflineActivity > 0)
{
OfflineActivity = (item.OfflineActivity - firstModel.OfflineActivity) / firstModel.OfflineActivity * 100;
}
decimal OfficialAccount = 0;
if (firstModel.OfficialAccount > 0)
{
OfficialAccount = (item.OfficialAccount - firstModel.OfficialAccount) / firstModel.OfficialAccount * 100;
}
decimal TeacherRecommend = 0;
if (firstModel.TeacherRecommend > 0)
{
TeacherRecommend = (item.TeacherRecommend - firstModel.TeacherRecommend) / firstModel.TeacherRecommend * 100;
}
decimal ByteDance = 0;
if (firstModel.ByteDance > 0)
{
ByteDance = (item.ByteDance - firstModel.ByteDance) / firstModel.ByteDance * 100;
}
decimal ThirdPartyPlatform = 0;
if (firstModel.ThirdPartyPlatform > 0)
{
ThirdPartyPlatform = (item.ThirdPartyPlatform - firstModel.ThirdPartyPlatform) / firstModel.ThirdPartyPlatform * 100;
}
decimal Other = 0;
if (firstModel.Other > 0)
{
Other = (item.Other - firstModel.Other) / firstModel.Other * 100;
}
decimal ClassACount = 0;
if (firstModel.ClassACount > 0)
{
ClassACount = (item.ClassACount - firstModel.ClassACount) / firstModel.ClassACount * 100;
}
decimal ClassBCount = 0;
if (firstModel.ClassBCount > 0)
{
ClassBCount = (item.ClassBCount - firstModel.ClassBCount) / firstModel.ClassBCount * 100;
}
decimal ClassCCount = 0;
if (firstModel.ClassCCount > 0)
{
ClassCCount = (item.ClassCCount - firstModel.ClassCCount) / firstModel.ClassCCount * 100;
}
decimal ClassDCount = 0;
if (firstModel.ClassDCount > 0)
{
ClassDCount = (item.ClassDCount - firstModel.ClassDCount) / firstModel.ClassDCount * 100;
}
decimal InvalidCount = 0;
if (firstModel.InvalidCount > 0)
{
InvalidCount = (item.InvalidCount - firstModel.InvalidCount) / firstModel.InvalidCount * 100;
}
decimal ContractCount = 0;
if (firstModel.ContractCount > 0)
{
ContractCount = (item.ContractCount - firstModel.ContractCount) / firstModel.ContractCount * 100;
}
decimal OrderMoney = 0;
if (firstModel.OrderMoney > 0)
{
OrderMoney = (item.OrderMoney - firstModel.OrderMoney) / firstModel.OrderMoney * 100;
}
decimal StudyOrderMoney = 0;
if (firstModel.StudyOrderMoney > 0)
{
StudyOrderMoney = (item.StudyOrderMoney - firstModel.StudyOrderMoney) / firstModel.StudyOrderMoney * 100;
}
subObj = new
{
Id = 0,
DateStr = "环比成长",
PushCount = Math.Round(PushCount, 2) + "%",
TrainCount = Math.Round(TrainCount, 2) + "%",
StudyCount = Math.Round(StudyCount, 2) + "%",
MeiTuanCount = Math.Round(MeiTuanCount, 2) + "%",
EduCustomerSign = Math.Round(EduCustomerSign, 2) + "%",
EduCustomerNotSign = Math.Round(EduCustomerNotSign, 2) + "%",
PassBy = Math.Round(PassBy, 2) + "%",
WeChatFriend = Math.Round(WeChatFriend, 2) + "%",
TransCount = Math.Round(TransCount, 2) + "%",
SchoolPromote = Math.Round(SchoolPromote, 2) + "%",
SchoolAgent = Math.Round(SchoolAgent, 2) + "%",
OfflineActivity = Math.Round(OfflineActivity, 2) + "%",
OfficialAccount = Math.Round(OfficialAccount, 2) + "%",
TeacherRecommend = Math.Round(TeacherRecommend, 2) + "%",
ByteDance = Math.Round(ByteDance, 2) + "%",
ThirdPartyPlatform = Math.Round(ThirdPartyPlatform, 2) + "%",
Other = Math.Round(Other, 2) + "%",
ClassACount = Math.Round(ClassACount, 2) + "%",
ClassBCount = Math.Round(ClassBCount, 2) + "%",
ClassCCount = Math.Round(ClassCCount, 2) + "%",
ClassDCount = Math.Round(ClassDCount, 2) + "%",
InvalidCount = Math.Round(InvalidCount, 2) + "%",
ContractCount = Math.Round(ContractCount, 2) + "%",
OrderMoney = Math.Round(OrderMoney, 2) + "%",
StudyOrderMoney = Math.Round(StudyOrderMoney, 2) + "%",
};
}
firstModel = item;
index++;
}
dataList.Add(new
{
item.Id,
DateStr,
item.PushCount,
item.TrainCount,
item.StudyCount,
item.MeiTuanCount,
item.EduCustomerSign,
item.EduCustomerNotSign,
item.PassBy,
item.WeChatFriend,
item.TransCount,
item.SchoolPromote,
item.SchoolAgent,
item.OfflineActivity,
item.OfficialAccount,
item.TeacherRecommend,
item.ByteDance,
item.ThirdPartyPlatform,
item.Other,
item.ClassACount,
item.ClassBCount,
item.ClassCCount,
item.ClassDCount,
item.InvalidCount,
item.ContractCount,
item.OrderMoney,
item.StudyOrderMoney,
});
if (DateStr.Equals("总数") && index > 1)
{
dataList.Add(subObj);
}
}
var tempList = list?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
dataList.Add(new
{
Id = 0,
DateStr = "月总数",
PushCount = tempList?.Sum(qitem => qitem.PushCount),
TrainCount = tempList?.Sum(qitem => qitem.TrainCount),
StudyCount = tempList?.Sum(qitem => qitem.StudyCount),
MeiTuanCount = tempList?.Sum(qitem => qitem.MeiTuanCount),
EduCustomerSign = tempList?.Sum(qitem => qitem.EduCustomerSign),
EduCustomerNotSign = tempList?.Sum(qitem => qitem.EduCustomerNotSign),
PassBy = tempList?.Sum(qitem => qitem.PassBy),
WeChatFriend = tempList?.Sum(qitem => qitem.WeChatFriend),
TransCount = tempList?.Sum(qitem => qitem.TransCount),
SchoolPromote = tempList?.Sum(qitem => qitem.SchoolPromote),
SchoolAgent = tempList?.Sum(qitem => qitem.SchoolAgent),
OfflineActivity = tempList?.Sum(qitem => qitem.OfflineActivity),
OfficialAccount = tempList?.Sum(qitem => qitem.OfficialAccount),
TeacherRecommend = tempList?.Sum(qitem => qitem.TeacherRecommend),
ByteDance = tempList?.Sum(qitem => qitem.ByteDance),
ThirdPartyPlatform = tempList?.Sum(qitem => qitem.ThirdPartyPlatform),
Other = tempList?.Sum(qitem => qitem.Other),
ClassACount = tempList?.Sum(qitem => qitem.ClassACount),
ClassBCount = tempList?.Sum(qitem => qitem.ClassBCount),
ClassCCount = tempList?.Sum(qitem => qitem.ClassCCount),
ClassDCount = tempList?.Sum(qitem => qitem.ClassDCount),
InvalidCount = tempList?.Sum(qitem => qitem.InvalidCount),
ContractCount = tempList?.Sum(qitem => qitem.ContractCount),
OrderMoney = tempList?.Sum(qitem => qitem.OrderMoney),
StudyOrderMoney = tempList?.Sum(qitem => qitem.StudyOrderMoney),
});
}
return dataList;
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetStudentMarketListMonthModule(RB_Student_Market_Extend query)
{
List<object> dataList = new List<object>();
var list = student_MarketRepository.GetStudentMarketMonthListRepository(query);
List<RB_Student_Market_Extend> monthList = new List<RB_Student_Market_Extend>();
for (var i = 1; i <= 12; i++)
{
var tempData = list?.Where(qitem => qitem.Date.Month == i)?.FirstOrDefault();
var newData = new RB_Student_Market_Extend()
{
ShowMonthStr = i + "月",
PushCount = tempData?.PushCount ?? 0,
TrainCount = tempData?.TrainCount ?? 0,
StudyCount = tempData?.StudyCount ?? 0,
MeiTuanCount = tempData?.MeiTuanCount ?? 0,
EduCustomerSign = tempData?.EduCustomerSign ?? 0,
EduCustomerNotSign = tempData?.EduCustomerNotSign ?? 0,
PassBy = tempData?.PassBy ?? 0,
WeChatFriend = tempData?.WeChatFriend ?? 0,
TransCount = tempData?.TransCount ?? 0,
SchoolPromote = tempData?.SchoolPromote ?? 0,
SchoolAgent = tempData?.SchoolAgent ?? 0,
OfflineActivity = tempData?.OfflineActivity ?? 0,
OfficialAccount = tempData?.OfficialAccount ?? 0,
TeacherRecommend = tempData?.TeacherRecommend ?? 0,
ByteDance = tempData?.ByteDance ?? 0,
ThirdPartyPlatform = tempData?.ThirdPartyPlatform ?? 0,
Other = tempData?.Other ?? 0,
ClassACount = tempData?.ClassACount ?? 0,
ClassBCount = tempData?.ClassBCount ?? 0,
ClassCCount = tempData?.ClassCCount ?? 0,
ClassDCount = tempData?.ClassDCount ?? 0,
InvalidCount = tempData?.InvalidCount ?? 0,
ContractCount = tempData?.ContractCount ?? 0,
OrderMoney = tempData?.OrderMoney ?? 0,
StudyOrderMoney = tempData?.StudyOrderMoney ?? 0,
};
monthList.Add(newData);
}
var avgModel = new RB_Student_Market_Extend()
{
ShowMonthStr = "平均",
PushCount = Math.Round(monthList?.Average(qitem => qitem.PushCount) ?? 0, 2),
TrainCount = Math.Round(monthList?.Average(qitem => qitem.TrainCount) ?? 0, 2),
StudyCount = Math.Round(monthList?.Average(qitem => qitem.StudyCount) ?? 0, 2),
MeiTuanCount = Math.Round(monthList?.Average(qitem => qitem.MeiTuanCount) ?? 0, 2),
EduCustomerSign = Math.Round(monthList?.Average(qitem => qitem.EduCustomerSign) ?? 0, 2),
EduCustomerNotSign = Math.Round(monthList?.Average(qitem => qitem.EduCustomerNotSign) ?? 0, 2),
PassBy = Math.Round(monthList?.Average(qitem => qitem.PassBy) ?? 0, 2),
WeChatFriend = Math.Round(monthList?.Average(qitem => qitem.WeChatFriend) ?? 0, 2),
TransCount = Math.Round(monthList?.Average(qitem => qitem.TransCount) ?? 0, 2),
SchoolPromote = Math.Round(monthList?.Average(qitem => qitem.SchoolPromote) ?? 0, 2),
SchoolAgent = Math.Round(monthList?.Average(qitem => qitem.SchoolAgent) ?? 0, 2),
OfflineActivity = Math.Round(monthList?.Average(qitem => qitem.OfflineActivity) ?? 0, 2),
OfficialAccount = Math.Round(monthList?.Average(qitem => qitem.OfficialAccount) ?? 0, 2),
TeacherRecommend = Math.Round(monthList?.Average(qitem => qitem.TeacherRecommend) ?? 0, 2),
ByteDance = Math.Round(monthList?.Average(qitem => qitem.ByteDance) ?? 0, 2),
ThirdPartyPlatform = Math.Round(monthList?.Average(qitem => qitem.ThirdPartyPlatform) ?? 0, 2),
Other = Math.Round(monthList?.Average(qitem => qitem.Other) ?? 0, 2),
ClassACount = Math.Round(monthList?.Average(qitem => qitem.ClassACount) ?? 0, 2),
ClassBCount = Math.Round(monthList?.Average(qitem => qitem.ClassBCount) ?? 0, 2),
ClassCCount = Math.Round(monthList?.Average(qitem => qitem.ClassCCount) ?? 0, 2),
ClassDCount = Math.Round(monthList?.Average(qitem => qitem.ClassDCount) ?? 0, 2),
InvalidCount = Math.Round(monthList?.Average(qitem => qitem.InvalidCount) ?? 0, 2),
ContractCount = Math.Round(monthList?.Average(qitem => qitem.ContractCount) ?? 0, 2),
OrderMoney = Math.Round(monthList?.Average(qitem => qitem.OrderMoney) ?? 0, 2),
StudyOrderMoney = Math.Round(monthList?.Average(qitem => qitem.StudyOrderMoney) ?? 0, 2),
};
var sumModel = new RB_Student_Market_Extend()
{
ShowMonthStr = "总数",
PushCount = monthList?.Sum(qitem => qitem.PushCount) ?? 0,
TrainCount = monthList?.Sum(qitem => qitem.TrainCount) ?? 0,
StudyCount = monthList?.Sum(qitem => qitem.StudyCount) ?? 0,
MeiTuanCount = monthList?.Sum(qitem => qitem.MeiTuanCount) ?? 0,
EduCustomerSign = monthList?.Sum(qitem => qitem.EduCustomerSign) ?? 0,
EduCustomerNotSign = monthList?.Sum(qitem => qitem.EduCustomerNotSign) ?? 0,
PassBy = monthList?.Sum(qitem => qitem.PassBy) ?? 0,
WeChatFriend = monthList?.Sum(qitem => qitem.WeChatFriend) ?? 0,
TransCount = monthList?.Sum(qitem => qitem.TransCount) ?? 0,
SchoolPromote = monthList?.Sum(qitem => qitem.SchoolPromote) ?? 0,
SchoolAgent = monthList?.Sum(qitem => qitem.SchoolAgent) ?? 0,
OfflineActivity = monthList?.Sum(qitem => qitem.OfflineActivity) ?? 0,
OfficialAccount = monthList?.Sum(qitem => qitem.OfficialAccount) ?? 0,
TeacherRecommend = monthList?.Sum(qitem => qitem.TeacherRecommend) ?? 0,
ByteDance = monthList?.Sum(qitem => qitem.ByteDance) ?? 0,
ThirdPartyPlatform = monthList?.Sum(qitem => qitem.ThirdPartyPlatform) ?? 0,
Other = monthList?.Sum(qitem => qitem.Other) ?? 0,
ClassACount = monthList?.Sum(qitem => qitem.ClassACount) ?? 0,
ClassBCount = monthList?.Sum(qitem => qitem.ClassBCount) ?? 0,
ClassCCount = monthList?.Sum(qitem => qitem.ClassCCount) ?? 0,
ClassDCount = monthList?.Sum(qitem => qitem.ClassDCount) ?? 0,
InvalidCount = monthList?.Sum(qitem => qitem.InvalidCount) ?? 0,
ContractCount = monthList?.Sum(qitem => qitem.ContractCount) ?? 0,
OrderMoney = monthList?.Sum(qitem => qitem.OrderMoney) ?? 0,
StudyOrderMoney = monthList?.Sum(qitem => qitem.StudyOrderMoney) ?? 0,
};
monthList.Add(avgModel);
monthList.Add(sumModel);
foreach (var item in monthList)
{
dataList.Add(new
{
item.Id,
DateStr = item.ShowMonthStr,
item.PushCount,
item.TrainCount,
item.StudyCount,
item.MeiTuanCount,
item.EduCustomerSign,
item.EduCustomerNotSign,
item.PassBy,
item.WeChatFriend,
item.TransCount,
item.SchoolPromote,
item.SchoolAgent,
item.OfflineActivity,
item.OfficialAccount,
item.TeacherRecommend,
item.ByteDance,
item.ThirdPartyPlatform,
item.Other,
item.ClassACount,
item.ClassBCount,
item.ClassCCount,
item.ClassDCount,
item.InvalidCount,
item.ContractCount,
item.OrderMoney,
item.StudyOrderMoney,
});
}
return dataList;
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RateMonthItem> GetStudentMarketRateListMonthModule(RB_Student_Market_Extend query)
{
List<RateMonthItem> monthList = new List<RateMonthItem>();
var list = student_MarketRepository.GetStudentMarketMonthListRepository(query);
List<RB_Student_Market_Extend> result = new List<RB_Student_Market_Extend>();
for (var i = 0; i < 12; i++)
{
decimal PushCount = 0;
var firstModel = new RB_Student_Market_Extend();
if (i > 0)
{
firstModel = i < list.Count ? list[i - 1] : new RB_Student_Market_Extend();
}
var item = i < list.Count ? list[i] : new RB_Student_Market_Extend();
if (firstModel.PushCount > 0 && i > 0)
{
PushCount = (item.PushCount - firstModel.PushCount) / firstModel.PushCount * 100;
}
decimal TrainCount = 0;
if (firstModel.TrainCount > 0 && i > 0)
{
TrainCount = (item.TrainCount - firstModel.TrainCount) / firstModel.TrainCount * 100;
}
decimal StudyCount = 0;
if (firstModel.StudyCount > 0 && i > 0)
{
StudyCount = (item.StudyCount - firstModel.StudyCount) / firstModel.StudyCount * 100;
}
decimal MeiTuanCount = 0;
if (firstModel.MeiTuanCount > 0 && i > 0)
{
MeiTuanCount = (item.MeiTuanCount - firstModel.MeiTuanCount) / firstModel.MeiTuanCount * 100;
}
decimal EduCustomerSign = 0;
if (firstModel.EduCustomerSign > 0 && i > 0)
{
EduCustomerSign = (item.EduCustomerSign - firstModel.EduCustomerSign) / firstModel.EduCustomerSign * 100;
}
decimal EduCustomerNotSign = 0;
if (firstModel.EduCustomerNotSign > 0 && i > 0)
{
EduCustomerNotSign = (item.EduCustomerNotSign - firstModel.EduCustomerNotSign) / firstModel.EduCustomerNotSign * 100;
}
decimal PassBy = 0;
if (firstModel.PassBy > 0 && i > 0)
{
PassBy = (item.PassBy - firstModel.PassBy) / firstModel.PassBy * 100;
}
decimal WeChatFriend = 0;
if (firstModel.WeChatFriend > 0 && i > 0)
{
WeChatFriend = (item.WeChatFriend - firstModel.WeChatFriend) / firstModel.WeChatFriend * 100;
}
decimal TransCount = 0;
if (firstModel.TransCount > 0 && i > 0)
{
TransCount = (item.TransCount - firstModel.TransCount) / firstModel.TransCount * 100;
}
decimal SchoolPromote = 0;
if (firstModel.SchoolPromote > 0 && i > 0)
{
SchoolPromote = (item.SchoolPromote - firstModel.SchoolPromote) / firstModel.SchoolPromote * 100;
}
decimal SchoolAgent = 0;
if (firstModel.SchoolAgent > 0 && i > 0)
{
SchoolAgent = (item.SchoolAgent - firstModel.SchoolAgent) / firstModel.SchoolAgent * 100;
}
decimal OfflineActivity = 0;
if (firstModel.OfflineActivity > 0 && i > 0)
{
OfflineActivity = (item.OfflineActivity - firstModel.OfflineActivity) / firstModel.OfflineActivity * 100;
}
decimal OfficialAccount = 0;
if (firstModel.OfficialAccount > 0 && i > 0)
{
OfficialAccount = (item.OfficialAccount - firstModel.OfficialAccount) / firstModel.OfficialAccount * 100;
}
decimal TeacherRecommend = 0;
if (firstModel.TeacherRecommend > 0 && i > 0)
{
TeacherRecommend = (item.TeacherRecommend - firstModel.TeacherRecommend) / firstModel.TeacherRecommend * 100;
}
decimal ByteDance = 0;
if (firstModel.ByteDance > 0 && i > 0)
{
ByteDance = (item.ByteDance - firstModel.ByteDance) / firstModel.ByteDance * 100;
}
decimal ThirdPartyPlatform = 0;
if (firstModel.ThirdPartyPlatform > 0 && i > 0)
{
ThirdPartyPlatform = (item.ThirdPartyPlatform - firstModel.ThirdPartyPlatform) / firstModel.ThirdPartyPlatform * 100;
}
decimal Other = 0;
if (firstModel.Other > 0 && i > 0)
{
Other = (item.Other - firstModel.Other) / firstModel.Other * 100;
}
decimal ClassACount = 0;
if (firstModel.ClassACount > 0 && i > 0)
{
ClassACount = (item.ClassACount - firstModel.ClassACount) / firstModel.ClassACount * 100;
}
decimal ClassBCount = 0;
if (firstModel.ClassBCount > 0 && i > 0)
{
ClassBCount = (item.ClassBCount - firstModel.ClassBCount) / firstModel.ClassBCount * 100;
}
decimal ClassCCount = 0;
if (firstModel.ClassCCount > 0)
{
ClassCCount = (item.ClassCCount - firstModel.ClassCCount) / firstModel.ClassCCount * 100;
}
decimal ClassDCount = 0;
if (firstModel.ClassDCount > 0 && i > 0)
{
ClassDCount = (item.ClassDCount - firstModel.ClassDCount) / firstModel.ClassDCount * 100;
}
decimal InvalidCount = 0;
if (firstModel.InvalidCount > 0 && i > 0)
{
InvalidCount = (item.InvalidCount - firstModel.InvalidCount) / firstModel.InvalidCount * 100;
}
decimal ContractCount = 0;
if (firstModel.ContractCount > 0 && i > 0)
{
ContractCount = (item.ContractCount - firstModel.ContractCount) / firstModel.ContractCount * 100;
}
decimal OrderMoney = 0;
if (firstModel.OrderMoney > 0 && i > 0)
{
OrderMoney = (item.OrderMoney - firstModel.OrderMoney) / firstModel.OrderMoney * 100;
}
decimal StudyOrderMoney = 0;
if (firstModel.StudyOrderMoney > 0 && i > 0)
{
StudyOrderMoney = (item.StudyOrderMoney - firstModel.StudyOrderMoney) / firstModel.StudyOrderMoney * 100;
}
var newModel = new RB_Student_Market_Extend()
{
MonthStr = i + 1,
PushCount = PushCount,
TrainCount = TrainCount,
StudyCount = StudyCount,
MeiTuanCount = MeiTuanCount,
EduCustomerSign = EduCustomerSign,
EduCustomerNotSign = EduCustomerNotSign,
PassBy = PassBy,
WeChatFriend = WeChatFriend,
TransCount = TransCount,
SchoolPromote = SchoolPromote,
SchoolAgent = SchoolAgent,
OfflineActivity = OfflineActivity,
OfficialAccount = OfficialAccount,
TeacherRecommend = TeacherRecommend,
ByteDance = ByteDance,
ThirdPartyPlatform = ThirdPartyPlatform,
Other = Other,
ClassACount = ClassACount,
ClassBCount = ClassBCount,
ClassCCount = ClassCCount,
ClassDCount = ClassDCount,
InvalidCount = InvalidCount,
ContractCount = ContractCount,
OrderMoney = OrderMoney,
StudyOrderMoney = StudyOrderMoney,
};
result.Add(newModel);
}
monthList.Add(new RateMonthItem()
{
ItemName = "推送人数成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).PushCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).PushCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).PushCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).PushCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).PushCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).PushCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).PushCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).PushCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).PushCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).PushCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).PushCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).PushCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.PushCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "签约.成交.续费成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ContractCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ContractCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ContractCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ContractCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ContractCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ContractCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ContractCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ContractCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ContractCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ContractCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ContractCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ContractCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ContractCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "语培签约金额成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).OrderMoney, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).OrderMoney, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).OrderMoney, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).OrderMoney, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).OrderMoney, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).OrderMoney, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).OrderMoney, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).OrderMoney, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).OrderMoney, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).OrderMoney, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).OrderMoney, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).OrderMoney, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.OrderMoney), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "留学签约金额成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).StudyOrderMoney, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).StudyOrderMoney, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).StudyOrderMoney, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).StudyOrderMoney, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).StudyOrderMoney, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).StudyOrderMoney, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).StudyOrderMoney, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).StudyOrderMoney, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).StudyOrderMoney, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).StudyOrderMoney, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).StudyOrderMoney, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).StudyOrderMoney, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.StudyOrderMoney), 2),
});
return monthList;
}
#endregion
} }
} }
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.User
{
/// <summary>
/// 市场部客户数据统计仓储层
/// </summary>
public class RB_Student_MarketRepository : BaseRepository<RB_Student_Market>
{
/// <summary>
/// 市场部客户数据统计列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketListRepository(RB_Student_Market_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Market AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
if (query.MonthStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.MonthStr), query.MonthStr);
}
if (query.Times > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Times), query.Times);
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_Static_Extend.Id));
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketMonthListRepository(RB_Student_Market_Extend query, bool isYear = false)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.TrainCount) AS TrainCount,SUM(A.StudyCount) AS StudyCount
,SUM(A.MeiTuanCount) AS MeiTuanCount,SUM(A.EduCustomerSign) AS EduCustomerSign,SUM(A.EduCustomerNotSign) AS EduCustomerNotSign,SUM(A.PassBy) AS PassBy
,SUM(A.WeChatFriend) AS WeChatFriend,SUM(A.TransCount) AS TransCount,SUM(A.SchoolPromote) AS SchoolPromote,SUM(A.SchoolAgent) AS SchoolAgent,SUM(A.OfflineActivity) AS OfflineActivity
,SUM(A.OfficialAccount) AS OfficialAccount,SUM(A.TeacherRecommend) AS TeacherRecommend,SUM(A.ByteDance) AS ByteDance,SUM(A.ThirdPartyPlatform) AS ThirdPartyPlatform
,SUM(A.Other) AS Other,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount
,SUM(A.InvalidCount) AS InvalidCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Market AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
if (isYear)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
else
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
}
}
builder.AppendFormat(" GROUP BY DATE_FORMAT(A.Date, '%Y-%m') ");
builder.AppendFormat(" ORDER BY DATE_FORMAT(A.Date, '%Y-%m') ASC ");
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketYearListRepository(RB_Student_Market_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.TrainCount) AS TrainCount,SUM(A.StudyCount) AS StudyCount
,SUM(A.MeiTuanCount) AS MeiTuanCount,SUM(A.EduCustomerSign) AS EduCustomerSign,SUM(A.EduCustomerNotSign) AS EduCustomerNotSign,SUM(A.PassBy) AS PassBy
,SUM(A.WeChatFriend) AS WeChatFriend,SUM(A.TransCount) AS TransCount,SUM(A.SchoolPromote) AS SchoolPromote,SUM(A.SchoolAgent) AS SchoolAgent,SUM(A.OfflineActivity) AS OfflineActivity
,SUM(A.OfficialAccount) AS OfficialAccount,SUM(A.TeacherRecommend) AS TeacherRecommend,SUM(A.ByteDance) AS ByteDance,SUM(A.ThirdPartyPlatform) AS ThirdPartyPlatform
,SUM(A.Other) AS Other,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount
,SUM(A.InvalidCount) AS InvalidCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Market AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
}
builder.AppendFormat(" GROUP BY A.YearStr ");
builder.AppendFormat(" ORDER BY A.YearStr ASC ");
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据存储过程统计市场部客户信息
/// </summary>
/// <param name="DateStr"></param>
/// <returns></returns>
public RB_Student_Market_Extend GetStudentMarketByProcRepository(string DateStr, string empIds)
{
string sql = string.Format("call proc_student_market('{0}') ", DateStr);
var list = Get<RB_Student_Market_Extend>(sql);
return list?.FirstOrDefault();
}
/// <summary>
/// 清除市场部客户数据统计信息
/// </summary>
public void DeleteStudentMarketByProcRepository()
{
string sql = "TRUNCATE TABLE RB_Student_Market ";
base.Execute(sql);
}
}
}
...@@ -500,6 +500,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -500,6 +500,7 @@ namespace Edu.WebApi.Controllers.User
} }
#endregion #endregion
#region 课程顾问部客户数据统计
/// <summary> /// <summary>
/// 客户数据每日统计 /// 客户数据每日统计
/// </summary> /// </summary>
...@@ -593,7 +594,6 @@ namespace Edu.WebApi.Controllers.User ...@@ -593,7 +594,6 @@ namespace Edu.WebApi.Controllers.User
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
string StartTime = base.ParmJObj.GetStringValue("StartTime"); string StartTime = base.ParmJObj.GetStringValue("StartTime");
if (string.IsNullOrEmpty(StartTime)) if (string.IsNullOrEmpty(StartTime))
{ {
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now); StartTime = Common.ConvertHelper.FormatDate(DateTime.Now);
...@@ -603,5 +603,78 @@ namespace Edu.WebApi.Controllers.User ...@@ -603,5 +603,78 @@ namespace Edu.WebApi.Controllers.User
bool flag = studentStatModule.CreateStudentStaticModule(userInfo, StartTime, EndTime); bool flag = studentStatModule.CreateStudentStaticModule(userInfo, StartTime, EndTime);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
#endregion
#region 市场部客户数据统计
/// <summary>
/// 初始化市场部学员统计数据
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult InitStudentMarket()
{
var userInfo = base.UserInfo;
string StartTime = base.ParmJObj.GetStringValue("StartTime");
if (string.IsNullOrEmpty(StartTime))
{
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now);
}
StartTime = "2021-12-21";
string EndTime = Common.ConvertHelper.FormatDate(DateTime.Now);
bool flag = studentStatModule.CreateStudentMarketModule(userInfo, StartTime, EndTime);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 市场部客户数据每日统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudentMarket()
{
var query = new RB_Student_Market_Extend()
{
YearStr = base.ParmJObj.GetInt("YearStr"),
MonthStr = base.ParmJObj.GetInt("MonthStr")
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studentStatModule.GetStudentMarketListModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudentMarketMonth()
{
var query = new RB_Student_Market_Extend()
{
YearStr = base.ParmJObj.GetInt("YearStr"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studentStatModule.GetStudentMarketListMonthModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudentMarketMonthRate()
{
var query = new RB_Student_Market_Extend()
{
YearStr = base.ParmJObj.GetInt("YearStr"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studentStatModule.GetStudentMarketRateListMonthModule(query);
return ApiResult.Success(data: list);
}
#endregion
} }
} }
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