Commit 23952402 authored by 黄奎's avatar 黄奎

页面修改

parent bc78aeb2
...@@ -4067,7 +4067,7 @@ namespace Edu.Module.User ...@@ -4067,7 +4067,7 @@ namespace Edu.Module.User
monthList.Add(new RateMonthItem() monthList.Add(new RateMonthItem()
{ {
ItemName = "推送人数成长率", ItemName = "进单人数成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).PushCount, 2), JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).PushCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).PushCount, 2), FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).PushCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).PushCount, 2), MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).PushCount, 2),
...@@ -4083,6 +4083,377 @@ namespace Edu.Module.User ...@@ -4083,6 +4083,377 @@ namespace Edu.Module.User
AvgRate = Math.Round(result.Average(qitem => qitem.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).TrainCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).TrainCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).TrainCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).TrainCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).TrainCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).TrainCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).TrainCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).TrainCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).TrainCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).TrainCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).TrainCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).TrainCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.TrainCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "留学需求成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).StudyCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).StudyCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).StudyCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).StudyCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).StudyCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).StudyCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).StudyCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).StudyCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).StudyCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).StudyCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).StudyCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).StudyCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.StudyCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "美团点评成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).MeiTuanCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).MeiTuanCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).MeiTuanCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).MeiTuanCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).MeiTuanCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).MeiTuanCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).MeiTuanCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).MeiTuanCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).MeiTuanCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).MeiTuanCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).MeiTuanCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).MeiTuanCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.MeiTuanCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "教育同行(签约)成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).EduCustomerSign, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).EduCustomerSign, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).EduCustomerSign, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).EduCustomerSign, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).EduCustomerSign, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).EduCustomerSign, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).EduCustomerSign, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).EduCustomerSign, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).EduCustomerSign, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).EduCustomerSign, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).EduCustomerSign, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).EduCustomerSign, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.EduCustomerSign), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "教育同行(未签约)成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).EduCustomerNotSign, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).EduCustomerNotSign, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).EduCustomerNotSign, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).EduCustomerNotSign, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).EduCustomerNotSign, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).EduCustomerNotSign, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).EduCustomerNotSign, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).EduCustomerNotSign, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).EduCustomerNotSign, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).EduCustomerNotSign, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).EduCustomerNotSign, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).EduCustomerNotSign, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.EduCustomerNotSign), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "过路客(直客)成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).PassBy, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).PassBy, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).PassBy, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).PassBy, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).PassBy, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).PassBy, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).PassBy, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).PassBy, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).PassBy, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).PassBy, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).PassBy, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).PassBy, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.PassBy), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "朋友圈成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).WeChatFriend, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).WeChatFriend, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).WeChatFriend, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).WeChatFriend, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).WeChatFriend, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).WeChatFriend, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).WeChatFriend, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).WeChatFriend, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).WeChatFriend, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).WeChatFriend, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).WeChatFriend, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).WeChatFriend, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.WeChatFriend), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "学员转介绍成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).TransCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).TransCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).TransCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).TransCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).TransCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).TransCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).TransCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).TransCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).TransCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).TransCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).TransCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).TransCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.TransCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "校园推广成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).SchoolPromote, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).SchoolPromote, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).SchoolPromote, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).SchoolPromote, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).SchoolPromote, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).SchoolPromote, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).SchoolPromote, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).SchoolPromote, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).SchoolPromote, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).SchoolPromote, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).SchoolPromote, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).SchoolPromote, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.SchoolPromote), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "校园代理成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).SchoolAgent, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).SchoolAgent, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).SchoolAgent, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).SchoolAgent, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).SchoolAgent, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).SchoolAgent, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).SchoolAgent, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).SchoolAgent, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).SchoolAgent, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).SchoolAgent, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).SchoolAgent, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).SchoolAgent, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.SchoolAgent), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "线下活动成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).OfflineActivity, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).OfflineActivity, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).OfflineActivity, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).OfflineActivity, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).OfflineActivity, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).OfflineActivity, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).OfflineActivity, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).OfflineActivity, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).OfflineActivity, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).OfflineActivity, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).OfflineActivity, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).OfflineActivity, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.OfflineActivity), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "公众号成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).OfficialAccount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).OfficialAccount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).OfficialAccount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).OfficialAccount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).OfficialAccount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).OfficialAccount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).OfficialAccount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).OfficialAccount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).OfficialAccount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).OfficialAccount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).OfficialAccount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).OfficialAccount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.OfficialAccount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "教师推荐成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).TeacherRecommend, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).TeacherRecommend, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).TeacherRecommend, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).TeacherRecommend, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).TeacherRecommend, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).TeacherRecommend, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).TeacherRecommend, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).TeacherRecommend, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).TeacherRecommend, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).TeacherRecommend, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).TeacherRecommend, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).TeacherRecommend, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.TeacherRecommend), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "字节跳动成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ByteDance, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ByteDance, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ByteDance, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ByteDance, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ByteDance, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ByteDance, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ByteDance, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ByteDance, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ByteDance, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ByteDance, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ByteDance, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ByteDance, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ByteDance), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "第三方平台成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ThirdPartyPlatform, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ThirdPartyPlatform, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ThirdPartyPlatform, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ThirdPartyPlatform, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ThirdPartyPlatform, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ThirdPartyPlatform, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ThirdPartyPlatform, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ThirdPartyPlatform, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ThirdPartyPlatform, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ThirdPartyPlatform, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ThirdPartyPlatform, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ThirdPartyPlatform, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ThirdPartyPlatform), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "其他成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).Other, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).Other, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).Other, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).Other, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).Other, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).Other, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).Other, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).Other, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).Other, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).Other, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).Other, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).Other, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.Other), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "A类客户成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ClassACount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ClassACount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ClassACount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ClassACount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ClassACount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ClassACount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ClassACount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ClassACount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ClassACount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ClassACount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ClassACount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ClassACount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ClassACount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "B类客户成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ClassBCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ClassBCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ClassBCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ClassBCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ClassBCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ClassBCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ClassBCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ClassBCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ClassBCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ClassBCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ClassBCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ClassBCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ClassBCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "C类客户成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ClassCCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ClassCCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ClassCCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ClassCCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ClassCCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ClassCCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ClassCCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ClassCCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ClassCCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ClassCCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ClassCCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ClassCCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ClassCCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "D类客户成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).ClassDCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).ClassDCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).ClassDCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).ClassDCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).ClassDCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).ClassDCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).ClassDCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).ClassDCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).ClassDCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).ClassDCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).ClassDCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).ClassDCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.ClassDCount), 2),
});
monthList.Add(new RateMonthItem()
{
ItemName = "无效成长率",
JanuaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 1).InvalidCount, 2),
FebruaryRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 2).InvalidCount, 2),
MarchRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 3).InvalidCount, 2),
AprilRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 4).InvalidCount, 2),
MayRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 5).InvalidCount, 2),
JuneRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 6).InvalidCount, 2),
JulyRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 7).InvalidCount, 2),
AugustRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 8).InvalidCount, 2),
SeptemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 9).InvalidCount, 2),
OctoberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 10).InvalidCount, 2),
NovemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 11).InvalidCount, 2),
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).InvalidCount, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.InvalidCount), 2),
});
monthList.Add(new RateMonthItem() monthList.Add(new RateMonthItem()
{ {
ItemName = "签约.成交.续费成长率", ItemName = "签约.成交.续费成长率",
...@@ -4118,6 +4489,7 @@ namespace Edu.Module.User ...@@ -4118,6 +4489,7 @@ namespace Edu.Module.User
DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).OrderMoney, 2), DecemberRate = Math.Round(result.FirstOrDefault(qitem => qitem.MonthStr == 12).OrderMoney, 2),
AvgRate = Math.Round(result.Average(qitem => qitem.OrderMoney), 2), AvgRate = Math.Round(result.Average(qitem => qitem.OrderMoney), 2),
}); });
monthList.Add(new RateMonthItem() monthList.Add(new RateMonthItem()
{ {
ItemName = "留学签约金额成长率", ItemName = "留学签约金额成长率",
...@@ -4137,6 +4509,731 @@ namespace Edu.Module.User ...@@ -4137,6 +4509,731 @@ namespace Edu.Module.User
}); });
return monthList; return monthList;
} }
/// <summary>
/// 市场部年份数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RateYearItem> GetStudentMarketListYearModule(RB_Student_Market_Extend query)
{
List<RateYearItem> yearList = new List<RateYearItem>();
List<RB_Student_Market_Extend> rateList = new List<RB_Student_Market_Extend>();
var list = student_MarketRepository.GetStudentMarketYearListRepository(query);
if (list != null && list.Count > 0)
{
int minYear = list.Min(qitem => qitem.YearStr);
int maxYear = list.Max(qitem => qitem.YearStr);
var totalYear = maxYear - minYear;
for (var i = 0; i <= totalYear; 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 (item.SchoolPromote > 0 && i > 0)
{
SchoolPromote = (item.SchoolPromote - firstModel.SchoolPromote) / item.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;
}
rateList.Add(new RB_Student_Market_Extend()
{
YearStr = minYear + i,
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,
});
}
yearList.Add(new RateYearItem()
{
ItemName = "进单人数",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).PushCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).PushCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).PushCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "语培需求",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).TrainCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).TrainCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).TrainCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "留学需求",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).StudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).StudyCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).StudyCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "美团点评",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).MeiTuanCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).MeiTuanCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).MeiTuanCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "教育同行(签约)",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).EduCustomerSign, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).EduCustomerSign, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).EduCustomerSign, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "教育同行(未签约)",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).EduCustomerNotSign, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).EduCustomerNotSign, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).EduCustomerNotSign, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "过路客(直客)",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).PassBy, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).PassBy, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).PassBy, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "朋友圈",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).WeChatFriend, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).WeChatFriend, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).WeChatFriend, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "学员转介绍",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).TransCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).TransCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).TransCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "校园推广",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).SchoolPromote, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).SchoolPromote, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).SchoolPromote, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "校园代理",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).SchoolAgent, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).SchoolAgent, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).SchoolAgent, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "线下活动",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).OfflineActivity, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).OfflineActivity, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).OfflineActivity, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "公众号",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).OfficialAccount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).OfficialAccount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).OfficialAccount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "教师推荐",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).TeacherRecommend, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).TeacherRecommend, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).TeacherRecommend, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "字节跳动",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ByteDance, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ByteDance, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ByteDance, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "第三方平台",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ThirdPartyPlatform, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ThirdPartyPlatform, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ThirdPartyPlatform, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "其他",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).Other, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).Other, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).Other, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "A类客户",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ClassACount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassACount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassACount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "B类客户",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ClassBCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassBCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassBCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "C类客户",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ClassCCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassCCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassCCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "D类客户",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ClassDCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassDCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ClassDCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "无效",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).InvalidCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).InvalidCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).InvalidCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "签约.成交.续费",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).ContractCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).ContractCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).ContractCount, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "语培签约金额",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).OrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).OrderMoney, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).OrderMoney, 2),
});
yearList.Add(new RateYearItem()
{
ItemName = "留学签约金额",
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).StudyOrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).StudyOrderMoney, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).StudyOrderMoney, 2),
});
}
return yearList;
}
/// <summary>
/// 市场部年份数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RateYearItem> GetStudentMarketListYearRateModule(RB_Student_Market_Extend query)
{
List<RateYearItem> yearList = new List<RateYearItem>();
var dataList = student_MarketRepository.GetStudentMarketMonthListRepository(query, isYear: true);
if (dataList != null && dataList.Count > 0)
{
List<RB_Student_Market_Extend> result = new List<RB_Student_Market_Extend>();
int minYear = dataList.Min(qitem => qitem.YearStr);
int maxYear = dataList.Max(qitem => qitem.YearStr);
var totalYear = maxYear - minYear;
for (var y = 0; y <= totalYear; y++)
{
var list = dataList.Where(qitem => qitem.YearStr == minYear + y).ToList();
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 (item.InvalidCount > 0 && i > 0)
{
InvalidCount = (item.InvalidCount - firstModel.InvalidCount) / item.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()
{
YearStr = minYear + y,
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);
}
}
var lastPushCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.PushCount);
var curPushCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.PushCount);
decimal CPushCount = 0;
if (lastPushCount > 0)
{
CPushCount = (curPushCount - lastPushCount) / lastPushCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "进单人数成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastPushCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curPushCount, 2),
YearRate = Math.Round(CPushCount, 2),
});
var lastTrainCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.TrainCount);
var curTrainCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.TrainCount);
decimal CTrainCount = 0;
if (lastTrainCount > 0)
{
CTrainCount = (curTrainCount - lastTrainCount) / lastTrainCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "语培需求成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastTrainCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curTrainCount, 2),
YearRate = Math.Round(CTrainCount, 2),
});
var lastStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.StudyCount);
var curStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.StudyCount);
decimal CStudyCount = 0;
if (lastStudyCount > 0)
{
CStudyCount = (curStudyCount - lastStudyCount) / lastStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "留学需求成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curStudyCount, 2),
YearRate = Math.Round(CStudyCount, 2),
});
var lastMeiTuanCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.MeiTuanCount);
var curMeiTuanCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.MeiTuanCount);
decimal CMeiTuanCount = 0;
if (lastMeiTuanCount > 0)
{
CMeiTuanCount = (curMeiTuanCount - lastMeiTuanCount) / lastMeiTuanCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "美团点评成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastMeiTuanCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curMeiTuanCount, 2),
YearRate = Math.Round(CMeiTuanCount, 2),
});
var lastEduCustomerSign = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.EduCustomerSign);
var curEduCustomerSign = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.EduCustomerSign);
decimal CEduCustomerSign = 0;
if (lastEduCustomerSign > 0)
{
CEduCustomerSign = (curEduCustomerSign - lastEduCustomerSign) / lastEduCustomerSign * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "教育同行(签约)成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastEduCustomerSign, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curEduCustomerSign, 2),
YearRate = Math.Round(CEduCustomerSign, 2),
});
var lastEduCustomerNotSign = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.EduCustomerNotSign);
var curEduCustomerNotSign = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.EduCustomerNotSign);
decimal CEduCustomerNotSign = 0;
if (lastEduCustomerNotSign > 0)
{
CEduCustomerNotSign = (curEduCustomerNotSign - lastEduCustomerNotSign) / lastEduCustomerNotSign * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "教育同行(未签约)成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastEduCustomerNotSign, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curEduCustomerNotSign, 2),
YearRate = Math.Round(CEduCustomerNotSign, 2),
});
}
return yearList;
}
#endregion #endregion
} }
} }
...@@ -1030,7 +1030,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -1030,7 +1030,7 @@ namespace Edu.WebApi.Controllers.User
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now); StartTime = Common.ConvertHelper.FormatDate(DateTime.Now);
} }
StartTime = "2021-12-21"; StartTime = "2021-12-21";
string EndTime = Common.ConvertHelper.FormatDate(DateTime.Now.AddDays(-1)); string EndTime = Common.ConvertHelper.FormatDate(DateTime.Now);
bool flag = studentStatModule.CreateStudentMarketModule(userInfo, StartTime, EndTime); bool flag = studentStatModule.CreateStudentMarketModule(userInfo, StartTime, EndTime);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
...@@ -1084,6 +1084,38 @@ namespace Edu.WebApi.Controllers.User ...@@ -1084,6 +1084,38 @@ namespace Edu.WebApi.Controllers.User
var list = studentStatModule.GetStudentMarketRateListMonthModule(query); var list = studentStatModule.GetStudentMarketRateListMonthModule(query);
return ApiResult.Success(data: list); return ApiResult.Success(data: list);
} }
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudentMarketYear()
{
var query = new RB_Student_Market_Extend()
{
YearStr = base.ParmJObj.GetInt("YearStr"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studentStatModule.GetStudentMarketListYearModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudentMarketYearRate()
{
var query = new RB_Student_Market_Extend()
{
YearStr = base.ParmJObj.GetInt("YearStr"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studentStatModule.GetStudentMarketListYearRateModule(query);
return ApiResult.Success(data: list);
}
#endregion #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