Commit d10ca602 authored by 黄奎's avatar 黄奎

页面修改

parent 1d996a06
......@@ -1629,7 +1629,7 @@ namespace Edu.Module.User
List<RateYearItem> yearList = new List<RateYearItem>();
List<RB_Student_Static_Extend> rateList = new List<RB_Student_Static_Extend>();
var list = student_StaticRepository.GetStudentStaticYearListRepository(query);
if (list != null)
if (list != null && list.Count>0)
{
int minYear = list.Min(qitem => qitem.YearStr);
int maxYear = list.Max(qitem => qitem.YearStr);
......@@ -1834,15 +1834,15 @@ namespace Edu.Module.User
StudyOrderMoney = StudyOrderMoney,
});
}
yearList.Add(new RateYearItem()
{
ItemName = "推送人数",
FirstYearStr= minYear,
FirstYearStr = minYear,
FirstYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == minYear).PushCount, 2),
SecondYearStr=maxYear,
SecondYearStr = maxYear,
SecondYear = Math.Round(list.FirstOrDefault(qitem => qitem.YearStr == maxYear).PushCount, 2),
YearRate= Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).PushCount, 2),
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).PushCount, 2),
});
yearList.Add(new RateYearItem()
......@@ -2145,7 +2145,6 @@ namespace Edu.Module.User
YearRate = Math.Round(rateList.FirstOrDefault(qitem => qitem.YearStr == maxYear).StudyOrderMoney, 2),
});
}
return yearList;
}
......@@ -2158,744 +2157,747 @@ namespace Edu.Module.User
{
List<RateYearItem> yearList = new List<RateYearItem>();
var dataList = student_StaticRepository.GetStudentStaticMonthListRepository(query, isYear:true);
List<RB_Student_Static_Extend> result = new List<RB_Student_Static_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++)
if (dataList != null && dataList.Count > 0)
{
var list = dataList.Where(qitem => qitem.YearStr == minYear + y).ToList();
for (var i = 0; i < 12; i++)
List<RB_Student_Static_Extend> result = new List<RB_Student_Static_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++)
{
decimal PushCount = 0;
var firstModel = new RB_Student_Static_Extend();
if (i > 0)
{
firstModel = i < list.Count ? list[i - 1] : new RB_Student_Static_Extend();
}
var item = i < list.Count ? list[i] : new RB_Student_Static_Extend();
if (firstModel.PushCount > 0 && i > 0)
{
PushCount = (item.PushCount - firstModel.PushCount) / firstModel.PushCount * 100;
}
decimal NewCount = 0;
if (firstModel.NewCount > 0 && i > 0)
var list = dataList.Where(qitem => qitem.YearStr == minYear + y).ToList();
for (var i = 0; i < 12; i++)
{
NewCount = (item.NewCount - firstModel.NewCount) / firstModel.NewCount * 100;
}
decimal PushCount = 0;
var firstModel = new RB_Student_Static_Extend();
if (i > 0)
{
firstModel = i < list.Count ? list[i - 1] : new RB_Student_Static_Extend();
}
var item = i < list.Count ? list[i] : new RB_Student_Static_Extend();
if (firstModel.PushCount > 0 && i > 0)
{
PushCount = (item.PushCount - firstModel.PushCount) / firstModel.PushCount * 100;
}
decimal NewCount = 0;
if (firstModel.NewCount > 0 && i > 0)
{
NewCount = (item.NewCount - firstModel.NewCount) / firstModel.NewCount * 100;
}
decimal CommunicationCount = 0;
if (firstModel.CommunicationCount > 0 && i > 0)
{
CommunicationCount = (item.CommunicationCount - firstModel.CommunicationCount) / firstModel.CommunicationCount * 100;
}
decimal TrialLessonCount = 0;
if (firstModel.TrialLessonCount > 0 && i > 0)
{
TrialLessonCount = (item.TrialLessonCount - firstModel.TrialLessonCount) / firstModel.TrialLessonCount * 100;
}
decimal NotContacted = 0;
if (firstModel.NotContacted > 0 && i > 0)
{
NotContacted = (item.NotContacted - firstModel.NotContacted) / firstModel.NotContacted * 100;
}
decimal JPCount = 0;
if (firstModel.JPCount > 0 && i > 0)
{
JPCount = (item.JPCount - firstModel.JPCount) / firstModel.JPCount * 100;
}
decimal KRCount = 0;
if (firstModel.KRCount > 0 && i > 0)
{
KRCount = (item.KRCount - firstModel.KRCount) / firstModel.KRCount * 100;
}
decimal FRCount = 0;
if (firstModel.FRCount > 0 && i > 0)
{
FRCount = (item.FRCount - firstModel.FRCount) / firstModel.FRCount * 100;
}
decimal JPStudyCount = 0;
if (firstModel.JPStudyCount > 0 && i > 0)
{
JPStudyCount = (item.JPStudyCount - firstModel.JPStudyCount) / firstModel.JPStudyCount * 100;
}
decimal KRStudyCount = 0;
if (firstModel.KRStudyCount > 0 && i > 0)
{
KRStudyCount = (item.KRStudyCount - firstModel.KRStudyCount) / firstModel.KRStudyCount * 100;
}
decimal YGAStudyCount = 0;
if (firstModel.YGAStudyCount > 0 && i > 0)
{
YGAStudyCount = (item.YGAStudyCount - firstModel.YGAStudyCount) / firstModel.YGAStudyCount * 100;
}
decimal USStudyCount = 0;
if (firstModel.USStudyCount > 0 && i > 0)
{
USStudyCount = (item.USStudyCount - firstModel.USStudyCount) / firstModel.USStudyCount * 100;
}
decimal SGStudyCount = 0;
if (firstModel.SGStudyCount > 0 && i > 0)
{
SGStudyCount = (item.SGStudyCount - firstModel.SGStudyCount) / firstModel.SGStudyCount * 100;
}
decimal AXStudyCount = 0;
if (firstModel.AXStudyCount > 0 && i > 0)
{
AXStudyCount = (item.AXStudyCount - firstModel.AXStudyCount) / firstModel.AXStudyCount * 100;
}
decimal OtherCount = 0;
if (firstModel.OtherCount > 0 && i > 0)
{
OtherCount = (item.OtherCount - firstModel.OtherCount) / firstModel.OtherCount * 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 CustomerCount = 0;
if (firstModel.CustomerCount > 0 && i > 0)
{
CustomerCount = (item.CustomerCount - firstModel.CustomerCount) / firstModel.CustomerCount * 100;
}
decimal B2CCount = 0;
if (firstModel.B2CCount > 0 && i > 0)
{
B2CCount = (item.B2CCount - firstModel.B2CCount) / firstModel.B2CCount * 100;
}
decimal TransCount = 0;
if (firstModel.TransCount > 0 && i > 0)
{
TransCount = (item.TransCount - firstModel.TransCount) / firstModel.TransCount * 100;
}
decimal InnerCount = 0;
if (firstModel.InnerCount > 0 && i > 0)
{
InnerCount = (item.InnerCount - firstModel.InnerCount) / firstModel.InnerCount * 100;
}
decimal InvalidCount = 0;
if (item.InvalidCount > 0 && i > 0)
{
InvalidCount = (item.InvalidCount - firstModel.InvalidCount) / item.InvalidCount * 100;
}
decimal SuspectedCount = 0;
if (firstModel.SuspectedCount > 0 && i > 0)
{
SuspectedCount = (item.SuspectedCount - firstModel.SuspectedCount) / firstModel.SuspectedCount * 100;
}
decimal IntentionCount = 0;
if (firstModel.IntentionCount > 0 && i > 0)
{
IntentionCount = (item.IntentionCount - firstModel.IntentionCount) / firstModel.IntentionCount * 100;
}
decimal InvitationCount = 0;
if (firstModel.InvitationCount > 0 && i > 0)
{
InvitationCount = (item.InvitationCount - firstModel.InvitationCount) / firstModel.InvitationCount * 100;
}
decimal NegotiationCount = 0;
if (firstModel.NegotiationCount > 0 && i > 0)
{
NegotiationCount = (item.NegotiationCount - firstModel.NegotiationCount) / firstModel.NegotiationCount * 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;
decimal CommunicationCount = 0;
if (firstModel.CommunicationCount > 0 && i > 0)
{
CommunicationCount = (item.CommunicationCount - firstModel.CommunicationCount) / firstModel.CommunicationCount * 100;
}
decimal TrialLessonCount = 0;
if (firstModel.TrialLessonCount > 0 && i > 0)
{
TrialLessonCount = (item.TrialLessonCount - firstModel.TrialLessonCount) / firstModel.TrialLessonCount * 100;
}
decimal NotContacted = 0;
if (firstModel.NotContacted > 0 && i > 0)
{
NotContacted = (item.NotContacted - firstModel.NotContacted) / firstModel.NotContacted * 100;
}
decimal JPCount = 0;
if (firstModel.JPCount > 0 && i > 0)
{
JPCount = (item.JPCount - firstModel.JPCount) / firstModel.JPCount * 100;
}
decimal KRCount = 0;
if (firstModel.KRCount > 0 && i > 0)
{
KRCount = (item.KRCount - firstModel.KRCount) / firstModel.KRCount * 100;
}
decimal FRCount = 0;
if (firstModel.FRCount > 0 && i > 0)
{
FRCount = (item.FRCount - firstModel.FRCount) / firstModel.FRCount * 100;
}
decimal JPStudyCount = 0;
if (firstModel.JPStudyCount > 0 && i > 0)
{
JPStudyCount = (item.JPStudyCount - firstModel.JPStudyCount) / firstModel.JPStudyCount * 100;
}
decimal KRStudyCount = 0;
if (firstModel.KRStudyCount > 0 && i > 0)
{
KRStudyCount = (item.KRStudyCount - firstModel.KRStudyCount) / firstModel.KRStudyCount * 100;
}
decimal YGAStudyCount = 0;
if (firstModel.YGAStudyCount > 0 && i > 0)
{
YGAStudyCount = (item.YGAStudyCount - firstModel.YGAStudyCount) / firstModel.YGAStudyCount * 100;
}
decimal USStudyCount = 0;
if (firstModel.USStudyCount > 0 && i > 0)
{
USStudyCount = (item.USStudyCount - firstModel.USStudyCount) / firstModel.USStudyCount * 100;
}
decimal SGStudyCount = 0;
if (firstModel.SGStudyCount > 0 && i > 0)
{
SGStudyCount = (item.SGStudyCount - firstModel.SGStudyCount) / firstModel.SGStudyCount * 100;
}
decimal AXStudyCount = 0;
if (firstModel.AXStudyCount > 0 && i > 0)
{
AXStudyCount = (item.AXStudyCount - firstModel.AXStudyCount) / firstModel.AXStudyCount * 100;
}
decimal OtherCount = 0;
if (firstModel.OtherCount > 0 && i > 0)
{
OtherCount = (item.OtherCount - firstModel.OtherCount) / firstModel.OtherCount * 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 CustomerCount = 0;
if (firstModel.CustomerCount > 0 && i > 0)
{
CustomerCount = (item.CustomerCount - firstModel.CustomerCount) / firstModel.CustomerCount * 100;
}
decimal B2CCount = 0;
if (firstModel.B2CCount > 0 && i > 0)
{
B2CCount = (item.B2CCount - firstModel.B2CCount) / firstModel.B2CCount * 100;
}
decimal TransCount = 0;
if (firstModel.TransCount > 0 && i > 0)
{
TransCount = (item.TransCount - firstModel.TransCount) / firstModel.TransCount * 100;
}
decimal InnerCount = 0;
if (firstModel.InnerCount > 0 && i > 0)
{
InnerCount = (item.InnerCount - firstModel.InnerCount) / firstModel.InnerCount * 100;
}
decimal InvalidCount = 0;
if (item.InvalidCount > 0 && i > 0)
{
InvalidCount = (item.InvalidCount - firstModel.InvalidCount) / item.InvalidCount * 100;
}
decimal SuspectedCount = 0;
if (firstModel.SuspectedCount > 0 && i > 0)
{
SuspectedCount = (item.SuspectedCount - firstModel.SuspectedCount) / firstModel.SuspectedCount * 100;
}
decimal IntentionCount = 0;
if (firstModel.IntentionCount > 0 && i > 0)
{
IntentionCount = (item.IntentionCount - firstModel.IntentionCount) / firstModel.IntentionCount * 100;
}
decimal InvitationCount = 0;
if (firstModel.InvitationCount > 0 && i > 0)
{
InvitationCount = (item.InvitationCount - firstModel.InvitationCount) / firstModel.InvitationCount * 100;
}
decimal NegotiationCount = 0;
if (firstModel.NegotiationCount > 0 && i > 0)
{
NegotiationCount = (item.NegotiationCount - firstModel.NegotiationCount) / firstModel.NegotiationCount * 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_Static_Extend()
{
YearStr = minYear + y,
MonthStr = i + 1,
PushCount = PushCount,
NewCount = NewCount,
CommunicationCount = CommunicationCount,
TrialLessonCount = TrialLessonCount,
NotContacted = NotContacted,
JPCount = JPCount,
KRCount = KRCount,
FRCount = FRCount,
JPStudyCount = JPStudyCount,
KRStudyCount = KRStudyCount,
YGAStudyCount = YGAStudyCount,
USStudyCount = USStudyCount,
SGStudyCount = SGStudyCount,
AXStudyCount = AXStudyCount,
OtherCount = OtherCount,
ClassACount = ClassACount,
ClassBCount = ClassBCount,
ClassCCount = ClassCCount,
ClassDCount = ClassDCount,
CustomerCount = CustomerCount,
B2CCount = B2CCount,
TransCount = TransCount,
InnerCount = InnerCount,
InvalidCount = InvalidCount,
SuspectedCount = SuspectedCount,
IntentionCount = IntentionCount,
InvitationCount = InvitationCount,
NegotiationCount = NegotiationCount,
ContractCount = ContractCount,
OrderMoney = OrderMoney,
StudyOrderMoney = StudyOrderMoney,
};
result.Add(newModel);
}
var newModel = new RB_Student_Static_Extend()
{
YearStr =minYear+y,
MonthStr = i + 1,
PushCount = PushCount,
NewCount = NewCount,
CommunicationCount = CommunicationCount,
TrialLessonCount = TrialLessonCount,
NotContacted = NotContacted,
JPCount = JPCount,
KRCount = KRCount,
FRCount = FRCount,
JPStudyCount = JPStudyCount,
KRStudyCount = KRStudyCount,
YGAStudyCount = YGAStudyCount,
USStudyCount = USStudyCount,
SGStudyCount = SGStudyCount,
AXStudyCount = AXStudyCount,
OtherCount = OtherCount,
ClassACount = ClassACount,
ClassBCount = ClassBCount,
ClassCCount = ClassCCount,
ClassDCount = ClassDCount,
CustomerCount = CustomerCount,
B2CCount = B2CCount,
TransCount = TransCount,
InnerCount = InnerCount,
InvalidCount = InvalidCount,
SuspectedCount = SuspectedCount,
IntentionCount = IntentionCount,
InvitationCount = InvitationCount,
NegotiationCount = NegotiationCount,
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;
}
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),
});
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 lastNewCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NewCount);
var curNewCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NewCount);
decimal CNewCount = 0;
if (lastNewCount > 0)
{
CNewCount = (curNewCount - lastNewCount) / lastNewCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "新客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNewCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNewCount, 2),
YearRate = Math.Round(CNewCount, 2),
});
var lastNewCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NewCount);
var curNewCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NewCount);
decimal CNewCount = 0;
if (lastNewCount > 0)
{
CNewCount = (curNewCount - lastNewCount) / lastNewCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "新客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNewCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNewCount, 2),
YearRate = Math.Round(CNewCount, 2),
});
var lastCommunicationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.CommunicationCount);
var curCommunicationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.CommunicationCount);
decimal CCommunicationCount = 0;
if (lastCommunicationCount > 0)
{
CCommunicationCount = (curCommunicationCount - lastCommunicationCount) / lastCommunicationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "初步(二次)沟通成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastCommunicationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curCommunicationCount, 2),
YearRate = Math.Round(CCommunicationCount, 2),
});
var lastCommunicationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.CommunicationCount);
var curCommunicationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.CommunicationCount);
decimal CCommunicationCount = 0;
if (lastCommunicationCount > 0)
{
CCommunicationCount = (curCommunicationCount - lastCommunicationCount) / lastCommunicationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "初步(二次)沟通成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastCommunicationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curCommunicationCount, 2),
YearRate = Math.Round(CCommunicationCount, 2),
});
var lastTrialLessonCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.TrialLessonCount);
var curTrialLessonCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.TrialLessonCount);
decimal CTrialLessonCount = 0;
if (lastTrialLessonCount > 0)
{
CTrialLessonCount = (curTrialLessonCount - lastTrialLessonCount) / lastTrialLessonCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "预约试听(已到店.已试听)成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastTrialLessonCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curTrialLessonCount, 2),
YearRate = Math.Round(CTrialLessonCount, 2),
});
var lastTrialLessonCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.TrialLessonCount);
var curTrialLessonCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.TrialLessonCount);
decimal CTrialLessonCount = 0;
if (lastTrialLessonCount > 0)
{
CTrialLessonCount = (curTrialLessonCount - lastTrialLessonCount) / lastTrialLessonCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "预约试听(已到店.已试听)成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastTrialLessonCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curTrialLessonCount, 2),
YearRate = Math.Round(CTrialLessonCount, 2),
});
var lastNotContacted = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NotContacted);
var curNotContacted = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NotContacted);
decimal CNotContacted = 0;
if (lastNotContacted > 0)
{
CNotContacted = (curNotContacted - lastNotContacted) / lastNotContacted * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "待联系成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNotContacted, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNotContacted, 2),
YearRate = Math.Round(CNotContacted, 2),
});
var lastNotContacted = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NotContacted);
var curNotContacted = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NotContacted);
decimal CNotContacted = 0;
if (lastNotContacted > 0)
{
CNotContacted = (curNotContacted - lastNotContacted) / lastNotContacted * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "待联系成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNotContacted, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNotContacted, 2),
YearRate = Math.Round(CNotContacted, 2),
});
var lastJPCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.JPCount);
var curJPCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.JPCount);
decimal CJPCount = 0;
if (lastJPCount > 0)
{
CJPCount = (curJPCount - lastJPCount) / lastJPCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "日本语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastJPCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curJPCount, 2),
YearRate = Math.Round(CJPCount, 2),
});
var lastJPCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.JPCount);
var curJPCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.JPCount);
decimal CJPCount = 0;
if (lastJPCount > 0)
{
CJPCount = (curJPCount - lastJPCount) / lastJPCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "日本语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastJPCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curJPCount, 2),
YearRate = Math.Round(CJPCount, 2),
});
var lastKRCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.KRCount);
var curKRCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.KRCount);
decimal CKRCount = 0;
if (lastKRCount > 0)
{
CKRCount = (curKRCount - lastKRCount) / lastKRCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "韩国语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastKRCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curKRCount, 2),
YearRate = Math.Round(CKRCount, 2),
});
var lastKRCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.KRCount);
var curKRCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.KRCount);
decimal CKRCount = 0;
if (lastKRCount > 0)
{
CKRCount = (curKRCount - lastKRCount) / lastKRCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "韩国语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastKRCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curKRCount, 2),
YearRate = Math.Round(CKRCount, 2),
});
var lastFRCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.FRCount);
var curFRCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.FRCount);
decimal CFRCount = 0;
if (lastFRCount > 0)
{
CFRCount = (curFRCount - lastFRCount) / lastFRCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "法国语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastFRCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curFRCount, 2),
YearRate = Math.Round(CFRCount, 2),
});
var lastFRCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.FRCount);
var curFRCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.FRCount);
decimal CFRCount = 0;
if (lastFRCount > 0)
{
CFRCount = (curFRCount - lastFRCount) / lastFRCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "法国语培成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastFRCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curFRCount, 2),
YearRate = Math.Round(CFRCount, 2),
});
var lastJPStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.JPStudyCount);
var curJPStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.JPStudyCount);
decimal CJPStudyCount = 0;
if (lastJPStudyCount > 0)
{
CJPStudyCount = (curJPStudyCount - lastJPStudyCount) / lastJPStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "日本留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastJPStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curJPStudyCount, 2),
YearRate = Math.Round(CJPStudyCount, 2),
});
var lastJPStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.JPStudyCount);
var curJPStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.JPStudyCount);
decimal CJPStudyCount = 0;
if (lastJPStudyCount > 0)
{
CJPStudyCount = (curJPStudyCount - lastJPStudyCount) / lastJPStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "日本留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastJPStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curJPStudyCount, 2),
YearRate = Math.Round(CJPStudyCount, 2),
});
var lastKRStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.KRStudyCount);
var curKRStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.KRStudyCount);
decimal CKRStudyCount = 0;
if (lastKRStudyCount > 0)
{
CKRStudyCount = (curKRStudyCount - lastKRStudyCount) / lastKRStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "韩国留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastKRStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curKRStudyCount, 2),
YearRate = Math.Round(CKRStudyCount, 2),
});
var lastKRStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.KRStudyCount);
var curKRStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.KRStudyCount);
decimal CKRStudyCount = 0;
if (lastKRStudyCount > 0)
{
CKRStudyCount = (curKRStudyCount - lastKRStudyCount) / lastKRStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "韩国留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastKRStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curKRStudyCount, 2),
YearRate = Math.Round(CKRStudyCount, 2),
});
var lastYGAStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.YGAStudyCount);
var curYGAStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.YGAStudyCount);
decimal CYGAStudyCount = 0;
if (lastYGAStudyCount > 0)
{
CYGAStudyCount = (curYGAStudyCount - lastYGAStudyCount) / lastYGAStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "英港澳留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastYGAStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curYGAStudyCount, 2),
YearRate = Math.Round(CYGAStudyCount, 2),
});
var lastYGAStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.YGAStudyCount);
var curYGAStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.YGAStudyCount);
decimal CYGAStudyCount = 0;
if (lastYGAStudyCount > 0)
{
CYGAStudyCount = (curYGAStudyCount - lastYGAStudyCount) / lastYGAStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "英港澳留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastYGAStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curYGAStudyCount, 2),
YearRate = Math.Round(CYGAStudyCount, 2),
});
var lastUSStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.USStudyCount);
var curUSStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.USStudyCount);
decimal CUSStudyCount = 0;
if (lastUSStudyCount > 0)
{
CUSStudyCount = (curUSStudyCount - lastUSStudyCount) / lastUSStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "美国留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastUSStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curUSStudyCount, 2),
YearRate = Math.Round(CUSStudyCount, 2),
});
var lastUSStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.USStudyCount);
var curUSStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.USStudyCount);
decimal CUSStudyCount = 0;
if (lastUSStudyCount > 0)
{
CUSStudyCount = (curUSStudyCount - lastUSStudyCount) / lastUSStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "美国留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastUSStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curUSStudyCount, 2),
YearRate = Math.Round(CUSStudyCount, 2),
});
var lastSGStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.SGStudyCount);
var curSGStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.SGStudyCount);
decimal CSGStudyCount = 0;
if (lastSGStudyCount > 0)
{
CSGStudyCount = (curSGStudyCount - lastSGStudyCount) / lastSGStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "新加坡留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastSGStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curSGStudyCount, 2),
YearRate = Math.Round(CSGStudyCount, 2),
});
var lastSGStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.SGStudyCount);
var curSGStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.SGStudyCount);
decimal CSGStudyCount = 0;
if (lastSGStudyCount > 0)
{
CSGStudyCount = (curSGStudyCount - lastSGStudyCount) / lastSGStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "新加坡留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastSGStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curSGStudyCount, 2),
YearRate = Math.Round(CSGStudyCount, 2),
});
var lastAXStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.AXStudyCount);
var curAXStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.AXStudyCount);
decimal CAXStudyCount = 0;
if (lastAXStudyCount > 0)
{
CAXStudyCount = (curAXStudyCount - lastAXStudyCount) / lastAXStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "澳新留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastAXStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curAXStudyCount, 2),
YearRate = Math.Round(CAXStudyCount, 2),
});
var lastAXStudyCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.AXStudyCount);
var curAXStudyCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.AXStudyCount);
decimal CAXStudyCount = 0;
if (lastAXStudyCount > 0)
{
CAXStudyCount = (curAXStudyCount - lastAXStudyCount) / lastAXStudyCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "澳新留学成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastAXStudyCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curAXStudyCount, 2),
YearRate = Math.Round(CAXStudyCount, 2),
});
var lastOtherCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.OtherCount);
var curOtherCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.OtherCount);
decimal COtherCount = 0;
if (lastOtherCount > 0)
{
COtherCount = (curOtherCount - lastOtherCount) / lastOtherCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "其他成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastOtherCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curOtherCount, 2),
YearRate = Math.Round(COtherCount, 2),
});
var lastOtherCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.OtherCount);
var curOtherCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.OtherCount);
decimal COtherCount = 0;
if (lastOtherCount > 0)
{
COtherCount = (curOtherCount - lastOtherCount) / lastOtherCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "其他成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastOtherCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curOtherCount, 2),
YearRate = Math.Round(COtherCount, 2),
});
var lastClassACount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassACount);
var curClassACount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassACount);
decimal CClassACount = 0;
if (lastClassACount > 0)
{
CClassACount = (curClassACount - lastClassACount) / lastClassACount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "A类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassACount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassACount, 2),
YearRate = Math.Round(CClassACount, 2),
});
var lastClassACount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassACount);
var curClassACount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassACount);
decimal CClassACount = 0;
if (lastClassACount > 0)
{
CClassACount = (curClassACount - lastClassACount) / lastClassACount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "A类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassACount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassACount, 2),
YearRate = Math.Round(CClassACount, 2),
});
var lastClassBCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassBCount);
var curClassBCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassBCount);
decimal CClassBCount = 0;
if (lastClassBCount > 0)
{
CClassBCount = (curClassBCount - lastClassBCount) / lastClassBCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "B类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassBCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassBCount, 2),
YearRate = Math.Round(CClassBCount, 2),
});
var lastClassBCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassBCount);
var curClassBCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassBCount);
decimal CClassBCount = 0;
if (lastClassBCount > 0)
{
CClassBCount = (curClassBCount - lastClassBCount) / lastClassBCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "B类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassBCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassBCount, 2),
YearRate = Math.Round(CClassBCount, 2),
});
var lastClassCCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassCCount);
var curClassCCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassCCount);
decimal CClassCCount = 0;
if (lastClassCCount > 0)
{
CClassCCount = (curClassCCount - lastClassCCount) / lastClassCCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "C类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassCCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassCCount, 2),
YearRate = Math.Round(CClassCCount, 2),
});
var lastClassCCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassCCount);
var curClassCCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassCCount);
decimal CClassCCount = 0;
if (lastClassCCount > 0)
{
CClassCCount = (curClassCCount - lastClassCCount) / lastClassCCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "C类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassCCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassCCount, 2),
YearRate = Math.Round(CClassCCount, 2),
});
var lastClassDCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassDCount);
var curClassDCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassDCount);
decimal CClassDCount = 0;
if (lastClassDCount > 0)
{
CClassDCount = (curClassDCount - lastClassDCount) / lastClassDCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "D类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassDCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassDCount, 2),
YearRate = Math.Round(CClassDCount, 2),
});
var lastClassDCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ClassDCount);
var curClassDCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ClassDCount);
decimal CClassDCount = 0;
if (lastClassDCount > 0)
{
CClassDCount = (curClassDCount - lastClassDCount) / lastClassDCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "D类客户成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastClassDCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curClassDCount, 2),
YearRate = Math.Round(CClassDCount, 2),
});
var lastCustomerCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.CustomerCount);
var curCustomerCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.CustomerCount);
decimal CCustomerCount = 0;
if (lastCustomerCount > 0)
{
CCustomerCount = (curCustomerCount - lastCustomerCount) / lastCustomerCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "同行介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastCustomerCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curCustomerCount, 2),
YearRate = Math.Round(CCustomerCount, 2),
});
var lastCustomerCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.CustomerCount);
var curCustomerCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.CustomerCount);
decimal CCustomerCount = 0;
if (lastCustomerCount > 0)
{
CCustomerCount = (curCustomerCount - lastCustomerCount) / lastCustomerCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "同行介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastCustomerCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curCustomerCount, 2),
YearRate = Math.Round(CCustomerCount, 2),
});
var lastB2CCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.B2CCount);
var curB2CCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.B2CCount);
decimal CB2CCount = 0;
if (lastB2CCount > 0)
{
CB2CCount = (curB2CCount - lastB2CCount) / lastB2CCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "直客成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastB2CCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curB2CCount, 2),
YearRate = Math.Round(CB2CCount, 2),
});
var lastB2CCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.B2CCount);
var curB2CCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.B2CCount);
decimal CB2CCount = 0;
if (lastB2CCount > 0)
{
CB2CCount = (curB2CCount - lastB2CCount) / lastB2CCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "直客成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastB2CCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curB2CCount, 2),
YearRate = Math.Round(CB2CCount, 2),
});
var lastTransCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.TransCount);
var curTransCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.TransCount);
decimal CTransCount = 0;
if (lastTransCount > 0)
{
CTransCount = (curTransCount - lastTransCount) / lastTransCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "学员转介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastTransCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curTransCount, 2),
YearRate = Math.Round(CTransCount, 2),
});
var lastTransCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.TransCount);
var curTransCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.TransCount);
decimal CTransCount = 0;
if (lastTransCount > 0)
{
CTransCount = (curTransCount - lastTransCount) / lastTransCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "学员转介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastTransCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curTransCount, 2),
YearRate = Math.Round(CTransCount, 2),
});
var lastInnerCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InnerCount);
var curInnerCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InnerCount);
decimal CInnerCount = 0;
if (lastInnerCount > 0)
{
CInnerCount = (curInnerCount - lastInnerCount) / lastInnerCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "内部介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInnerCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInnerCount, 2),
YearRate = Math.Round(CInnerCount, 2),
});
var lastInnerCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InnerCount);
var curInnerCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InnerCount);
decimal CInnerCount = 0;
if (lastInnerCount > 0)
{
CInnerCount = (curInnerCount - lastInnerCount) / lastInnerCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "内部介绍成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInnerCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInnerCount, 2),
YearRate = Math.Round(CInnerCount, 2),
});
var lastInvalidCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InvalidCount);
var curInvalidCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InvalidCount);
decimal CInvalidCount = 0;
if (lastInvalidCount > 0)
{
CInvalidCount = (curInvalidCount - lastInvalidCount) / lastInvalidCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "无效成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInvalidCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInvalidCount, 2),
YearRate = Math.Round(CInvalidCount, 2),
});
var lastInvalidCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InvalidCount);
var curInvalidCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InvalidCount);
decimal CInvalidCount = 0;
if (lastInvalidCount > 0)
{
CInvalidCount = (curInvalidCount - lastInvalidCount) / lastInvalidCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "无效成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInvalidCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInvalidCount, 2),
YearRate = Math.Round(CInvalidCount, 2),
});
var lastSuspectedCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.SuspectedCount);
var curSuspectedCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.SuspectedCount);
decimal CSuspectedCount = 0;
if (lastSuspectedCount > 0)
{
CSuspectedCount = (curSuspectedCount - lastSuspectedCount) / lastSuspectedCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "疑似成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastSuspectedCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curSuspectedCount, 2),
YearRate = Math.Round(CSuspectedCount, 2),
});
var lastSuspectedCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.SuspectedCount);
var curSuspectedCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.SuspectedCount);
decimal CSuspectedCount = 0;
if (lastSuspectedCount > 0)
{
CSuspectedCount = (curSuspectedCount - lastSuspectedCount) / lastSuspectedCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "疑似成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastSuspectedCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curSuspectedCount, 2),
YearRate = Math.Round(CSuspectedCount, 2),
});
var lastIntentionCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.IntentionCount);
var curIntentionCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.IntentionCount);
decimal CIntentionCount = 0;
if (lastIntentionCount > 0)
{
CIntentionCount = (curIntentionCount - lastIntentionCount) / lastIntentionCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "意向成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastIntentionCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curIntentionCount, 2),
YearRate = Math.Round(CIntentionCount, 2),
});
var lastIntentionCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.IntentionCount);
var curIntentionCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.IntentionCount);
decimal CIntentionCount = 0;
if (lastIntentionCount > 0)
{
CIntentionCount = (curIntentionCount - lastIntentionCount) / lastIntentionCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "意向成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastIntentionCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curIntentionCount, 2),
YearRate = Math.Round(CIntentionCount, 2),
});
var lastInvitationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InvitationCount);
var curInvitationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InvitationCount);
decimal CInvitationCount = 0;
if (lastInvitationCount > 0)
{
CInvitationCount = (curInvitationCount - lastInvitationCount) / lastInvitationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "近期课邀约成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInvitationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInvitationCount, 2),
YearRate = Math.Round(CInvitationCount, 2),
});
var lastInvitationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.InvitationCount);
var curInvitationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.InvitationCount);
decimal CInvitationCount = 0;
if (lastInvitationCount > 0)
{
CInvitationCount = (curInvitationCount - lastInvitationCount) / lastInvitationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "近期课邀约成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastInvitationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curInvitationCount, 2),
YearRate = Math.Round(CInvitationCount, 2),
});
var lastNegotiationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NegotiationCount);
var curNegotiationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NegotiationCount);
decimal CNegotiationCount = 0;
if (lastNegotiationCount > 0)
{
CNegotiationCount = (curNegotiationCount - lastNegotiationCount) / lastNegotiationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "谈判成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNegotiationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNegotiationCount, 2),
YearRate = Math.Round(CNegotiationCount, 2),
});
var lastNegotiationCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.NegotiationCount);
var curNegotiationCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.NegotiationCount);
decimal CNegotiationCount = 0;
if (lastNegotiationCount > 0)
{
CNegotiationCount = (curNegotiationCount - lastNegotiationCount) / lastNegotiationCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "谈判成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastNegotiationCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curNegotiationCount, 2),
YearRate = Math.Round(CNegotiationCount, 2),
});
var lastContractCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ContractCount);
var curContractCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ContractCount);
decimal CContractCount = 0;
if (lastContractCount > 0)
{
CContractCount = (curContractCount - lastContractCount) / lastContractCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "签约.成交.续费成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastContractCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curContractCount, 2),
YearRate = Math.Round(CContractCount, 2),
});
var lastContractCount = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.ContractCount);
var curContractCount = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.ContractCount);
decimal CContractCount = 0;
if (lastContractCount > 0)
{
CContractCount = (curContractCount - lastContractCount) / lastContractCount * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "签约.成交.续费成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastContractCount, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curContractCount, 2),
YearRate = Math.Round(CContractCount, 2),
});
var lastOrderMoney = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.OrderMoney);
var curOrderMoney = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.OrderMoney);
decimal COrderMoney = 0;
if (lastOrderMoney > 0)
{
COrderMoney = (curOrderMoney - lastOrderMoney) / lastOrderMoney * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "语培签约金额成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastOrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curOrderMoney, 2),
YearRate = Math.Round(COrderMoney, 2),
});
var lastOrderMoney = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.OrderMoney);
var curOrderMoney = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.OrderMoney);
decimal COrderMoney = 0;
if (lastOrderMoney > 0)
{
COrderMoney = (curOrderMoney - lastOrderMoney) / lastOrderMoney * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "语培签约金额成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastOrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curOrderMoney, 2),
YearRate = Math.Round(COrderMoney, 2),
});
var lastStudyOrderMoney = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.StudyOrderMoney);
var curStudyOrderMoney = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.StudyOrderMoney);
decimal CStudyOrderMoney = 0;
if (lastStudyOrderMoney > 0)
{
CStudyOrderMoney = (curStudyOrderMoney - lastStudyOrderMoney) / lastStudyOrderMoney * 100;
var lastStudyOrderMoney = result.Where(qitem => qitem.YearStr == minYear).Average(qitem => qitem.StudyOrderMoney);
var curStudyOrderMoney = result.Where(qitem => qitem.YearStr == maxYear).Average(qitem => qitem.StudyOrderMoney);
decimal CStudyOrderMoney = 0;
if (lastStudyOrderMoney > 0)
{
CStudyOrderMoney = (curStudyOrderMoney - lastStudyOrderMoney) / lastStudyOrderMoney * 100;
}
yearList.Add(new RateYearItem()
{
ItemName = "留学签约金额成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastStudyOrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curStudyOrderMoney, 2),
YearRate = Math.Round(CStudyOrderMoney, 2),
});
}
yearList.Add(new RateYearItem()
{
ItemName = "留学签约金额成长率",
FirstYearStr = minYear,
FirstYear = Math.Round(lastStudyOrderMoney, 2),
SecondYearStr = maxYear,
SecondYear = Math.Round(curStudyOrderMoney, 2),
YearRate = Math.Round(CStudyOrderMoney, 2),
});
return yearList;
}
......
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