Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
a615ed38
Commit
a615ed38
authored
Mar 04, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
23952402
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
722 additions
and
5 deletions
+722
-5
StudentStatModule.cs
Edu.Module.User/StudentStatModule.cs
+334
-2
StudentStatController.cs
Edu.WebApi/Controllers/User/StudentStatController.cs
+388
-3
No files found.
Edu.Module.User/StudentStatModule.cs
View file @
a615ed38
...
...
@@ -3509,7 +3509,15 @@ namespace Edu.Module.User
object
subObj
=
new
object
();
if
(
string
.
IsNullOrEmpty
(
DateStr
))
{
DateStr
=
"总数"
;
if
(
index
==
0
)
{
DateStr
=
"上期总数"
;
}
else
{
DateStr
=
"总数"
;
}
if
(
index
>
0
)
{
decimal
PushCount
=
0
;
...
...
@@ -3706,7 +3714,7 @@ namespace Edu.Module.User
item
.
OrderMoney
,
item
.
StudyOrderMoney
,
});
if
(
DateStr
.
Equal
s
(
"总数"
)
&&
index
>
1
)
if
(
DateStr
.
Contain
s
(
"总数"
)
&&
index
>
1
)
{
dataList
.
Add
(
subObj
);
}
...
...
@@ -5230,6 +5238,330 @@ namespace Edu.Module.User
SecondYear
=
Math
.
Round
(
curEduCustomerNotSign
,
2
),
YearRate
=
Math
.
Round
(
CEduCustomerNotSign
,
2
),
});
var
lastPassBy
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
PassBy
);
var
curPassBy
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
PassBy
);
decimal
CPassBy
=
0
;
if
(
lastEduCustomerNotSign
>
0
)
{
CPassBy
=
(
curPassBy
-
lastPassBy
)
/
lastPassBy
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"过路客(直客)成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastEduCustomerNotSign
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curPassBy
,
2
),
YearRate
=
Math
.
Round
(
CPassBy
,
2
),
});
var
lastWeChatFriend
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
WeChatFriend
);
var
curWeChatFriend
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
WeChatFriend
);
decimal
CWeChatFriend
=
0
;
if
(
lastWeChatFriend
>
0
)
{
CWeChatFriend
=
(
curWeChatFriend
-
lastWeChatFriend
)
/
lastWeChatFriend
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"朋友圈成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastWeChatFriend
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curWeChatFriend
,
2
),
YearRate
=
Math
.
Round
(
CWeChatFriend
,
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
lastSchoolPromote
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
SchoolPromote
);
var
curSchoolPromote
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
SchoolPromote
);
decimal
CSchoolPromote
=
0
;
if
(
lastSchoolPromote
>
0
)
{
CSchoolPromote
=
(
curSchoolPromote
-
lastSchoolPromote
)
/
lastSchoolPromote
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"校园推广成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastSchoolPromote
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curSchoolPromote
,
2
),
YearRate
=
Math
.
Round
(
CSchoolPromote
,
2
),
});
var
lastSchoolAgent
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
SchoolAgent
);
var
curSchoolAgent
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
SchoolAgent
);
decimal
CSchoolAgent
=
0
;
if
(
lastSchoolAgent
>
0
)
{
CSchoolAgent
=
(
curSchoolAgent
-
lastSchoolAgent
)
/
lastSchoolAgent
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"校园代理成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastSchoolAgent
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curSchoolAgent
,
2
),
YearRate
=
Math
.
Round
(
CSchoolAgent
,
2
),
});
var
lastOfflineActivity
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
OfflineActivity
);
var
curOfflineActivity
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
OfflineActivity
);
decimal
COfflineActivity
=
0
;
if
(
lastOfflineActivity
>
0
)
{
COfflineActivity
=
(
curOfflineActivity
-
lastOfflineActivity
)
/
lastOfflineActivity
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"线下活动成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastOfflineActivity
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curOfflineActivity
,
2
),
YearRate
=
Math
.
Round
(
COfflineActivity
,
2
),
});
var
lastOfficialAccount
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
OfficialAccount
);
var
curOfficialAccount
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
OfficialAccount
);
decimal
COfficialAccount
=
0
;
if
(
lastOfficialAccount
>
0
)
{
COfficialAccount
=
(
curOfficialAccount
-
lastOfficialAccount
)
/
lastOfficialAccount
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"公众号成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastOfficialAccount
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curOfficialAccount
,
2
),
YearRate
=
Math
.
Round
(
COfficialAccount
,
2
),
});
var
lastTeacherRecommend
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
TeacherRecommend
);
var
curTeacherRecommend
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
TeacherRecommend
);
decimal
CTeacherRecommend
=
0
;
if
(
lastTeacherRecommend
>
0
)
{
CTeacherRecommend
=
(
curTeacherRecommend
-
lastTeacherRecommend
)
/
lastTeacherRecommend
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"教师推荐成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastTeacherRecommend
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curTeacherRecommend
,
2
),
YearRate
=
Math
.
Round
(
CTeacherRecommend
,
2
),
});
var
lastByteDance
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
ByteDance
);
var
curByteDance
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
ByteDance
);
decimal
CByteDance
=
0
;
if
(
lastByteDance
>
0
)
{
CByteDance
=
(
curByteDance
-
lastByteDance
)
/
lastByteDance
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"字节跳动成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastByteDance
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curByteDance
,
2
),
YearRate
=
Math
.
Round
(
CByteDance
,
2
),
});
var
lastThirdPartyPlatform
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
ThirdPartyPlatform
);
var
curThirdPartyPlatform
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
ThirdPartyPlatform
);
decimal
CThirdPartyPlatform
=
0
;
if
(
lastThirdPartyPlatform
>
0
)
{
CThirdPartyPlatform
=
(
curThirdPartyPlatform
-
lastThirdPartyPlatform
)
/
lastThirdPartyPlatform
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"第三方平台成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastThirdPartyPlatform
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curThirdPartyPlatform
,
2
),
YearRate
=
Math
.
Round
(
CThirdPartyPlatform
,
2
),
});
var
lastOther
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
minYear
).
Average
(
qitem
=>
qitem
.
Other
);
var
curOther
=
result
.
Where
(
qitem
=>
qitem
.
YearStr
==
maxYear
).
Average
(
qitem
=>
qitem
.
Other
);
decimal
COther
=
0
;
if
(
lastOther
>
0
)
{
COther
=
(
curOther
-
lastOther
)
/
lastOther
*
100
;
}
yearList
.
Add
(
new
RateYearItem
()
{
ItemName
=
"其他成长率"
,
FirstYearStr
=
minYear
,
FirstYear
=
Math
.
Round
(
lastOther
,
2
),
SecondYearStr
=
maxYear
,
SecondYear
=
Math
.
Round
(
curOther
,
2
),
YearRate
=
Math
.
Round
(
COther
,
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
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
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
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
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
),
});
}
return
yearList
;
}
...
...
Edu.WebApi/Controllers/User/StudentStatController.cs
View file @
a615ed38
...
...
@@ -816,7 +816,6 @@ namespace Edu.WebApi.Controllers.User
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
item
.
ItemName
)
...
...
@@ -898,7 +897,6 @@ namespace Edu.WebApi.Controllers.User
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
item
.
ItemName
)
...
...
@@ -1052,9 +1050,109 @@ namespace Edu.WebApi.Controllers.User
return
ApiResult
.
Success
(
data
:
list
);
}
/// <summary>
/// 下载市场部客户数据月份统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
DownLoadStudentMarket
()
{
var
query
=
new
RB_Student_Market_Extend
()
{
YearStr
=
base
.
ParmJObj
.
GetInt
(
"YearStr"
),
MonthStr
=
base
.
ParmJObj
.
GetInt
(
"MonthStr"
)
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
studentStatModule
.
GetStudentMarketListModule
(
query
);
string
excelName
=
"市场部每日数据统计.xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
try
{
ExcelDataSource
header
=
new
ExcelDataSource
{
ExcelRows
=
new
List
<
ExcelColumn
>()
{
new
ExcelColumn
(
"日期"
){
CellWidth
=
15
},
new
ExcelColumn
(
"进单人数"
){
CellWidth
=
15
},
new
ExcelColumn
(
"语培需求"
){
CellWidth
=
15
},
new
ExcelColumn
(
"留学需求"
){
CellWidth
=
10
},
new
ExcelColumn
(
"美团点评"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教育同行(签约)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教育同行(未签约)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"过路客(直客)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"朋友圈"
){
CellWidth
=
15
},
new
ExcelColumn
(
"学员转介绍"
){
CellWidth
=
15
},
new
ExcelColumn
(
"校园推广"
){
CellWidth
=
15
},
new
ExcelColumn
(
"校园代理"
){
CellWidth
=
15
},
new
ExcelColumn
(
"线下活动"
){
CellWidth
=
15
},
new
ExcelColumn
(
"公众号"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教师推荐"
){
CellWidth
=
15
},
new
ExcelColumn
(
"字节跳动"
){
CellWidth
=
15
},
new
ExcelColumn
(
"第三方平台"
){
CellWidth
=
15
},
new
ExcelColumn
(
"其他"
){
CellWidth
=
15
},
new
ExcelColumn
(
"A类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"B类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"C类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"D类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"无效"
){
CellWidth
=
15
},
new
ExcelColumn
(
"签约.成交.续费"
){
CellWidth
=
15
},
new
ExcelColumn
(
"语培签约金额"
){
CellWidth
=
15
},
new
ExcelColumn
(
"留学签约金额"
){
CellWidth
=
15
},
}
};
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
JObject
dObj
=
JObject
.
Parse
(
JsonHelper
.
Serialize
(
item
));
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
dObj
.
GetStringValue
(
"DateStr"
))
};
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"PushCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TrainCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"StudyCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"MeiTuanCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"EduCustomerSign"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"EduCustomerNotSign"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"PassBy"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"WeChatFriend"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TransCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"SchoolPromote"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"SchoolAgent"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OfflineActivity"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OfficialAccount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TeacherRecommend"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ByteDance"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ThirdPartyPlatform"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"Other"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassACount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassBCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassCCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassDCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"InvalidCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ContractCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OrderMoney"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"StudyOrderMoney"
)));
var
dataRow
=
new
ExcelDataSource
()
{
ExcelRows
=
columns
};
slist
.
Add
(
dataRow
);
}
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
excelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"OutToExcelOrderStudentClassHoursList"
);
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
excelName
);
}
}
/// <summary>
/// 市场部客户数据
月份
统计
/// 市场部客户数据
每日
统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
...
...
@@ -1069,6 +1167,106 @@ namespace Edu.WebApi.Controllers.User
return
ApiResult
.
Success
(
data
:
list
);
}
/// <summary>
/// 下载市场部客户数据每月统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
DownLoadStudentMarketMonth
()
{
var
query
=
new
RB_Student_Market_Extend
()
{
YearStr
=
base
.
ParmJObj
.
GetInt
(
"YearStr"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
studentStatModule
.
GetStudentMarketListMonthModule
(
query
);
string
excelName
=
"市场部每月数据统计.xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
try
{
ExcelDataSource
header
=
new
ExcelDataSource
{
ExcelRows
=
new
List
<
ExcelColumn
>()
{
new
ExcelColumn
(
"日期"
){
CellWidth
=
15
},
new
ExcelColumn
(
"进单人数"
){
CellWidth
=
15
},
new
ExcelColumn
(
"语培需求"
){
CellWidth
=
15
},
new
ExcelColumn
(
"留学需求"
){
CellWidth
=
10
},
new
ExcelColumn
(
"美团点评"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教育同行(签约)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教育同行(未签约)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"过路客(直客)"
){
CellWidth
=
15
},
new
ExcelColumn
(
"朋友圈"
){
CellWidth
=
15
},
new
ExcelColumn
(
"学员转介绍"
){
CellWidth
=
15
},
new
ExcelColumn
(
"校园推广"
){
CellWidth
=
15
},
new
ExcelColumn
(
"校园代理"
){
CellWidth
=
15
},
new
ExcelColumn
(
"线下活动"
){
CellWidth
=
15
},
new
ExcelColumn
(
"公众号"
){
CellWidth
=
15
},
new
ExcelColumn
(
"教师推荐"
){
CellWidth
=
15
},
new
ExcelColumn
(
"字节跳动"
){
CellWidth
=
15
},
new
ExcelColumn
(
"第三方平台"
){
CellWidth
=
15
},
new
ExcelColumn
(
"其他"
){
CellWidth
=
15
},
new
ExcelColumn
(
"A类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"B类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"C类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"D类客户"
){
CellWidth
=
15
},
new
ExcelColumn
(
"无效"
){
CellWidth
=
15
},
new
ExcelColumn
(
"签约.成交.续费"
){
CellWidth
=
15
},
new
ExcelColumn
(
"语培签约金额"
){
CellWidth
=
15
},
new
ExcelColumn
(
"留学签约金额"
){
CellWidth
=
15
},
}
};
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
JObject
dObj
=
JObject
.
Parse
(
JsonHelper
.
Serialize
(
item
));
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
dObj
.
GetStringValue
(
"DateStr"
))
};
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"PushCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TrainCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"StudyCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"MeiTuanCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"EduCustomerSign"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"EduCustomerNotSign"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"PassBy"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"WeChatFriend"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TransCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"SchoolPromote"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"SchoolAgent"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OfflineActivity"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OfficialAccount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"TeacherRecommend"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ByteDance"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ThirdPartyPlatform"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"Other"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassACount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassBCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassCCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ClassDCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"InvalidCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"ContractCount"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"OrderMoney"
)));
columns
.
Add
(
new
ExcelColumn
(
dObj
.
GetStringValue
(
"StudyOrderMoney"
)));
var
dataRow
=
new
ExcelDataSource
()
{
ExcelRows
=
columns
};
slist
.
Add
(
dataRow
);
}
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
excelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"OutToExcelOrderStudentClassHoursList"
);
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
excelName
);
}
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
...
...
@@ -1085,6 +1283,81 @@ namespace Edu.WebApi.Controllers.User
return
ApiResult
.
Success
(
data
:
list
);
}
/// <summary>
/// 下载市场部客户数据月份统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
DownLoadStudentMarketMonthRate
()
{
var
query
=
new
RB_Student_Market_Extend
()
{
YearStr
=
base
.
ParmJObj
.
GetInt
(
"YearStr"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
studentStatModule
.
GetStudentMarketRateListMonthModule
(
query
);
string
excelName
=
"市场部月成长率统计.xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
try
{
ExcelDataSource
header
=
new
ExcelDataSource
{
ExcelRows
=
new
List
<
ExcelColumn
>()
{
new
ExcelColumn
(
"名称"
){
CellWidth
=
25
},
new
ExcelColumn
(
"1月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"2月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"3月"
){
CellWidth
=
10
},
new
ExcelColumn
(
"4月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"5月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"6月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"7月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"8月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"9月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"10月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"11月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"12月"
){
CellWidth
=
15
},
new
ExcelColumn
(
"平均"
){
CellWidth
=
15
},
}
};
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
item
.
ItemName
)
};
columns
.
Add
(
new
ExcelColumn
(
item
.
JanuaryRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
FebruaryRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
MarchRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
AprilRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
MayRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
JuneRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
JulyRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
AugustRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
SeptemberRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
OctoberRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
NovemberRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
DecemberRate
+
"%"
));
columns
.
Add
(
new
ExcelColumn
(
item
.
AvgRate
+
"%"
));
var
dataRow
=
new
ExcelDataSource
()
{
ExcelRows
=
columns
};
slist
.
Add
(
dataRow
);
}
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
excelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"OutToExcelOrderStudentClassHoursList"
);
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
excelName
);
}
}
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
...
...
@@ -1101,6 +1374,62 @@ namespace Edu.WebApi.Controllers.User
return
ApiResult
.
Success
(
data
:
list
);
}
/// <summary>
/// 下载市场部客户数据年度统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
DownLoadStudentMarketYear
()
{
var
query
=
new
RB_Student_Market_Extend
()
{
YearStr
=
base
.
ParmJObj
.
GetInt
(
"YearStr"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
studentStatModule
.
GetStudentMarketListYearModule
(
query
);
string
excelName
=
"市场部年度数据统计.xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
try
{
ExcelDataSource
header
=
new
ExcelDataSource
{
ExcelRows
=
new
List
<
ExcelColumn
>()
{
new
ExcelColumn
(
"名称"
){
CellWidth
=
25
},
new
ExcelColumn
(
"2021"
){
CellWidth
=
15
},
new
ExcelColumn
(
"2022"
){
CellWidth
=
15
},
new
ExcelColumn
(
"成长率"
){
CellWidth
=
10
},
}
};
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
item
.
ItemName
)
};
columns
.
Add
(
new
ExcelColumn
(
item
.
FirstYear
.
ToString
()));
columns
.
Add
(
new
ExcelColumn
(
item
.
SecondYear
.
ToString
()));
columns
.
Add
(
new
ExcelColumn
(
item
.
YearRate
+
"%"
));
var
dataRow
=
new
ExcelDataSource
()
{
ExcelRows
=
columns
};
slist
.
Add
(
dataRow
);
}
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
excelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"OutToExcelOrderStudentClassHoursList"
);
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
excelName
);
}
}
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
...
...
@@ -1116,6 +1445,62 @@ namespace Edu.WebApi.Controllers.User
var
list
=
studentStatModule
.
GetStudentMarketListYearRateModule
(
query
);
return
ApiResult
.
Success
(
data
:
list
);
}
/// <summary>
/// 下载客户数据年度成长率统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
DownLoadStudentMarketYearRate
()
{
var
query
=
new
RB_Student_Market_Extend
()
{
YearStr
=
base
.
ParmJObj
.
GetInt
(
"YearStr"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
studentStatModule
.
GetStudentMarketListYearRateModule
(
query
);
string
excelName
=
"市场部年度成长率统计.xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
try
{
ExcelDataSource
header
=
new
ExcelDataSource
{
ExcelRows
=
new
List
<
ExcelColumn
>()
{
new
ExcelColumn
(
"名称"
){
CellWidth
=
25
},
new
ExcelColumn
(
"2021"
){
CellWidth
=
15
},
new
ExcelColumn
(
"2022"
){
CellWidth
=
15
},
new
ExcelColumn
(
"成长率"
){
CellWidth
=
10
},
}
};
slist
.
Add
(
header
);
foreach
(
var
item
in
list
)
{
var
columns
=
new
List
<
ExcelColumn
>
{
new
ExcelColumn
(
item
.
ItemName
)
};
columns
.
Add
(
new
ExcelColumn
(
item
.
FirstYear
.
ToString
()));
columns
.
Add
(
new
ExcelColumn
(
item
.
SecondYear
.
ToString
()));
columns
.
Add
(
new
ExcelColumn
(
item
.
YearRate
+
"%"
));
var
dataRow
=
new
ExcelDataSource
()
{
ExcelRows
=
columns
};
slist
.
Add
(
dataRow
);
}
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
excelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"OutToExcelOrderStudentClassHoursList"
);
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
excelName
);
}
}
#
endregion
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment