Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
EduSpider
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
viitto
EduSpider
Commits
d74dd1e8
Commit
d74dd1e8
authored
May 25, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增实体类
parent
852eb413
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
363 additions
and
39 deletions
+363
-39
IHomeWorkRepository.cs
EduSpider.IRepository/IHomeWorkRepository.cs
+25
-0
RB_Course.cs
EduSpider.Model/Entity/RB_Course.cs
+15
-0
RB_Course_Teacher.cs
EduSpider.Model/Entity/RB_Course_Teacher.cs
+5
-0
RB_HomeWork.cs
EduSpider.Model/Entity/RB_HomeWork.cs
+144
-0
CourseRepository.cs
EduSpider.Repository/CourseRepository.cs
+2
-2
HomeWorkRepository.cs
EduSpider.Repository/HomeWorkRepository.cs
+25
-0
ClassInAccountManager.cs
EduSpider/Spiders/ClassInRule/ClassInAccountManager.cs
+12
-20
CourseManager.cs
EduSpider/Spiders/ClassInRule/CourseManager.cs
+135
-16
StudentManager.cs
EduSpider/Spiders/ClassInRule/StudentManager.cs
+0
-1
No files found.
EduSpider.IRepository/IHomeWorkRepository.cs
0 → 100644
View file @
d74dd1e8
using
EduSpider.Model.Entity
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VTX.FW.Config
;
using
VTX.FW.DB
;
namespace
EduSpider.IRepository
{
/// <summary>
/// 作业仓储层接口
/// </summary>
public
interface
IHomeWorkRepository
:
IDBRepository
<
RB_HomeWork
>,
IDependency
{
/// <summary>
/// 批量添加学生家庭作业
/// </summary>
/// <param name="homeWorks"></param>
/// <returns></returns>
public
bool
BatchSetHomeWorkRepository
(
List
<
RB_HomeWork
>
homeWorks
);
}
}
EduSpider.Model/Entity/RB_Course.cs
View file @
d74dd1e8
...
@@ -110,5 +110,20 @@ namespace EduSpider.Model.Entity
...
@@ -110,5 +110,20 @@ namespace EduSpider.Model.Entity
/// 课程类型(1-标准课,公开课)
/// 课程类型(1-标准课,公开课)
/// </summary>
/// </summary>
public
CourseTypeEnum
courseType
{
get
;
set
;
}
public
CourseTypeEnum
courseType
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
public
DateTime
addTime
{
get
;
set
;
}
/// <summary>
/// 课程图片
/// </summary>
public
string
courseWare
{
get
;
set
;
}
/// <summary>
/// 封面图
/// </summary>
public
string
coverImg
{
get
;
set
;
}
}
}
}
}
EduSpider.Model/Entity/RB_Course_Teacher.cs
View file @
d74dd1e8
...
@@ -39,5 +39,10 @@ namespace EduSpider.Model.Entity
...
@@ -39,5 +39,10 @@ namespace EduSpider.Model.Entity
/// 课程编号
/// 课程编号
/// </summary>
/// </summary>
public
int
courseId
{
get
;
set
;
}
public
int
courseId
{
get
;
set
;
}
/// <summary>
/// 课程教师编号
/// </summary>
public
int
courseTeacherId
{
get
;
set
;
}
}
}
}
}
EduSpider.Model/Entity/RB_HomeWork.cs
0 → 100644
View file @
d74dd1e8
using
System
;
using
VTX.FW.Attr
;
namespace
EduSpider.Model.Entity
{
/// <summary>
/// 作业实体类
/// </summary>
[
Serializable
]
[
DB
(
ConnectionName
=
"DefaultConnection"
)]
public
class
RB_HomeWork
{
/// <summary>
/// 作业编号
/// </summary>
public
int
homework_id
{
get
;
set
;
}
/// <summary>
/// 作业标题
/// </summary>
public
string
homework_title
{
get
;
set
;
}
/// <summary>
/// 作业分享Key
/// </summary>
public
string
homework_share_key
{
get
;
set
;
}
/// <summary>
/// 课程编号
/// </summary>
public
int
?
course_id
{
get
;
set
;
}
/// <summary>
/// 课程名称
/// </summary>
public
string
course_name
{
get
;
set
;
}
/// <summary>
/// 作业开始时间
/// </summary>
public
DateTime
?
start_time
{
get
;
set
;
}
/// <summary>
/// 作业结束时间
/// </summary>
public
DateTime
?
end_time
{
get
;
set
;
}
/// <summary>
/// 作业状态(0-未开始,1-进行中,2-已结束)
/// </summary>
public
int
?
status
{
get
;
set
;
}
/// <summary>
/// 显示状态(0-客户端显示,1-客户端隐藏)
/// </summary>
public
int
?
is_del
{
get
;
set
;
}
/// <summary>
/// 是否公开作业(1-公开作业,2-不公开,3-公开优秀)
/// </summary>
public
string
is_open
{
get
;
set
;
}
/// <summary>
/// 公开方式(1-结束后)
/// </summary>
public
string
open_type
{
get
;
set
;
}
/// <summary>
/// 是否允许补交(1-否,2-是)
/// </summary>
public
string
is_revise
{
get
;
set
;
}
/// <summary>
/// 学生数
/// </summary>
public
int
?
num
{
get
;
set
;
}
/// <summary>
/// 优秀人数
/// </summary>
public
int
?
cream_num
{
get
;
set
;
}
/// <summary>
/// revised_num
/// </summary>
public
int
?
revised_num
{
get
;
set
;
}
/// <summary>
/// 已批阅
/// </summary>
public
int
?
rnum
{
get
;
set
;
}
/// <summary>
/// 已提交
/// </summary>
public
int
?
cnum
{
get
;
set
;
}
/// <summary>
/// 学校编号
/// </summary>
public
int
?
school_uid
{
get
;
set
;
}
/// <summary>
/// 评分机制(5-自定义,4-不评分,3-等第制,2-十分制,1-百分制)
/// </summary>
public
int
?
score_type
{
get
;
set
;
}
/// <summary>
/// 自定义分数
/// </summary>
public
decimal
?
score_value
{
get
;
set
;
}
/// <summary>
/// 教师账号
/// </summary>
public
string
teacher_account
{
get
;
set
;
}
/// <summary>
/// 教师姓名
/// </summary>
public
string
teacher_name
{
get
;
set
;
}
/// <summary>
/// 教师编号
/// </summary>
public
int
?
teacher_uid
{
get
;
set
;
}
/// <summary>
/// th_cancel
/// </summary>
public
string
th_cancel
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
public
DateTime
add_time
{
get
;
set
;
}
/// <summary>
/// 更新时间
/// </summary>
public
DateTime
update_time
{
get
;
set
;
}
}
}
EduSpider.Repository/CourseRepository.cs
View file @
d74dd1e8
...
@@ -33,7 +33,7 @@ namespace EduSpider.Repository
...
@@ -33,7 +33,7 @@ namespace EduSpider.Repository
public
List
<
RB_Course
>
GetCourseListRepository
(
CourseQuery
query
)
public
List
<
RB_Course
>
GetCourseListRepository
(
CourseQuery
query
)
{
{
var
parameters
=
new
DynamicParameters
();
var
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
StringBuilder
builder
=
new
();
builder
.
AppendFormat
(
@"
builder
.
AppendFormat
(
@"
SELECT A.*
SELECT A.*
FROM RB_Course AS A
FROM RB_Course AS A
...
@@ -65,7 +65,7 @@ WHERE 1=1
...
@@ -65,7 +65,7 @@ WHERE 1=1
public
List
<
RB_Course
>
GetCoursePageRepository
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
CourseQuery
query
)
public
List
<
RB_Course
>
GetCoursePageRepository
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
CourseQuery
query
)
{
{
var
parameters
=
new
DynamicParameters
();
var
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
StringBuilder
builder
=
new
();
builder
.
AppendFormat
(
@"
builder
.
AppendFormat
(
@"
SELECT A.*
SELECT A.*
FROM RB_Course AS A
FROM RB_Course AS A
...
...
EduSpider.Repository/HomeWorkRepository.cs
0 → 100644
View file @
d74dd1e8
using
EduSpider.IRepository
;
using
EduSpider.Model.Entity
;
using
EduSpider.Repository.Base
;
using
System.Collections.Generic
;
namespace
EduSpider.Repository
{
/// <summary>
/// 作业仓储层实现
/// </summary>
public
class
HomeWorkRepository
:
BaseRepository
<
RB_HomeWork
>,
IHomeWorkRepository
{
/// <summary>
/// 批量添加学生家庭作业
/// </summary>
/// <param name="homeWorks"></param>
/// <returns></returns>
public
bool
BatchSetHomeWorkRepository
(
List
<
RB_HomeWork
>
homeWorks
)
{
bool
flag
;
flag
=
base
.
BatchInsert
(
homeWorks
,
isReplace
:
true
);
return
flag
;
}
}
}
EduSpider/Spiders/ClassInRule/ClassInAccountManager.cs
View file @
d74dd1e8
using
Newtonsoft.Json.Linq
;
using
OpenCvSharp
;
using
OpenCvSharp
;
using
OpenQA.Selenium
;
using
OpenQA.Selenium
;
using
OpenQA.Selenium.Chrome
;
using
OpenQA.Selenium.Chrome
;
using
OpenQA.Selenium.Interactions
;
using
OpenQA.Selenium.Interactions
;
using
OpenQA.Selenium.Remote
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.ObjectModel
;
using
System.Drawing
;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.IO
;
using
System.Linq
;
using
System.Net
;
using
System.Net
;
using
System.Net.Http
;
using
System.Net.Http
;
using
System.Text
;
using
System.Threading
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
...
@@ -68,8 +60,8 @@ namespace TicketSpider.Spiders.ClassInRule
...
@@ -68,8 +60,8 @@ namespace TicketSpider.Spiders.ClassInRule
public
static
bool
RunAsync
()
public
static
bool
RunAsync
()
{
{
var
flag
=
false
;
var
flag
=
false
;
IWebElement
inputEle
=
null
;
IWebElement
inputEle
;
IWebElement
pwdEle
=
null
;
IWebElement
pwdEle
;
var
option
=
new
ChromeOptions
();
var
option
=
new
ChromeOptions
();
option
.
AddArgument
(
"--incognito"
);
option
.
AddArgument
(
"--incognito"
);
option
.
AddArgument
(
"headless"
);
option
.
AddArgument
(
"headless"
);
...
@@ -240,9 +232,8 @@ namespace TicketSpider.Spiders.ClassInRule
...
@@ -240,9 +232,8 @@ namespace TicketSpider.Spiders.ClassInRule
var
res
=
new
Mat
();
var
res
=
new
Mat
();
Cv2
.
MatchTemplate
(
bgPic
,
tpPic
,
res
,
TemplateMatchModes
.
CCoeffNormed
);
Cv2
.
MatchTemplate
(
bgPic
,
tpPic
,
res
,
TemplateMatchModes
.
CCoeffNormed
);
double
minVal
=
0
,
maxVal
=
0
;
OpenCvSharp
.
Point
minLoc
=
new
OpenCvSharp
.
Point
(),
maxLoc
=
new
OpenCvSharp
.
Point
();
OpenCvSharp
.
Point
minLoc
=
new
OpenCvSharp
.
Point
(),
maxLoc
=
new
OpenCvSharp
.
Point
();
Cv2
.
MinMaxLoc
(
res
,
out
minVal
,
out
maxVal
,
out
minLoc
,
out
maxLoc
);
Cv2
.
MinMaxLoc
(
res
,
out
double
minVal
,
out
double
maxVal
,
out
minLoc
,
out
maxLoc
);
var
bt
=
new
OpenCvSharp
.
Point
(
maxLoc
.
X
+
tpPic
.
Width
,
maxLoc
.
Y
+
tpPic
.
Height
);
var
bt
=
new
OpenCvSharp
.
Point
(
maxLoc
.
X
+
tpPic
.
Width
,
maxLoc
.
Y
+
tpPic
.
Height
);
Cv2
.
Rectangle
(
bgImg
,
maxLoc
,
bt
,
Scalar
.
Red
,
2
);
Cv2
.
Rectangle
(
bgImg
,
maxLoc
,
bt
,
Scalar
.
Red
,
2
);
...
@@ -256,16 +247,17 @@ namespace TicketSpider.Spiders.ClassInRule
...
@@ -256,16 +247,17 @@ namespace TicketSpider.Spiders.ClassInRule
{
{
while
(
_openHeartTimer
)
while
(
_openHeartTimer
)
{
{
var
handler
=
new
HttpClientHandler
();
var
handler
=
new
HttpClientHandler
handler
.
AllowAutoRedirect
=
false
;
{
handler
.
UseCookies
=
true
;
AllowAutoRedirect
=
false
,
handler
.
CookieContainer
=
CreateCookie
();
UseCookies
=
true
,
handler
.
AutomaticDecompression
=
DecompressionMethods
.
GZip
;
CookieContainer
=
CreateCookie
(),
handler
.
ClientCertificateOptions
=
ClientCertificateOption
.
Automatic
;
AutomaticDecompression
=
DecompressionMethods
.
GZip
,
ClientCertificateOptions
=
ClientCertificateOption
.
Automatic
};
var
http
=
new
HttpClient
(
handler
);
var
http
=
new
HttpClient
(
handler
);
http
.
GetAsync
(
"https://console.eeo.cn/saas/school/index.html#/fullPage/Index?lang=zh-CN"
);
http
.
GetAsync
(
"https://console.eeo.cn/saas/school/index.html#/fullPage/Index?lang=zh-CN"
);
//TODO:检查是否需要重新登录
//TODO:检查是否需要重新登录
Thread
.
Sleep
(
60
*
1000
);
Thread
.
Sleep
(
60
*
1000
);
}
}
}
}
...
...
EduSpider/Spiders/ClassInRule/CourseManager.cs
View file @
d74dd1e8
...
@@ -44,11 +44,13 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -44,11 +44,13 @@ namespace EduSpider.Spiders.ClassInRule
if
(
tempList
!=
null
&&
tempList
.
Count
>
0
)
if
(
tempList
!=
null
&&
tempList
.
Count
>
0
)
{
{
courseRepository
.
BatchSetCourseRepository
(
tempList
);
courseRepository
.
BatchSetCourseRepository
(
tempList
);
totalCount
+=
tempList
.
Count
()
;
totalCount
+=
tempList
.
Count
;
Console
.
WriteLine
(
string
.
Format
(
"第{0}次,导入完成{1}条."
,
pageCount
,
totalCount
));
Console
.
WriteLine
(
string
.
Format
(
"第{0}次,导入完成{1}条."
,
pageCount
,
totalCount
));
foreach
(
var
item
in
tempList
)
foreach
(
var
item
in
tempList
)
{
{
RunCourseStudent
(
cookie
,
item
.
courseId
);
RunCourseStudent
(
cookie
,
item
.
courseId
);
RunCourseTeacher
(
cookie
,
item
.
courseId
);
RunCourseInfo
(
cookie
,
item
.
courseId
);
}
}
}
}
if
(
totalNum
%
perpage
==
0
)
if
(
totalNum
%
perpage
==
0
)
...
@@ -80,11 +82,13 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -80,11 +82,13 @@ namespace EduSpider.Spiders.ClassInRule
if
(
subtempList
!=
null
&&
subtempList
.
Count
>
0
)
if
(
subtempList
!=
null
&&
subtempList
.
Count
>
0
)
{
{
courseRepository
.
BatchSetCourseRepository
(
subtempList
);
courseRepository
.
BatchSetCourseRepository
(
subtempList
);
totalCount
+=
subtempList
.
Count
()
;
totalCount
+=
subtempList
.
Count
;
Console
.
WriteLine
(
string
.
Format
(
"第{0}次,导入完成{1}条."
,
i
,
totalCount
));
Console
.
WriteLine
(
string
.
Format
(
"第{0}次,导入完成{1}条."
,
i
,
totalCount
));
foreach
(
var
sItem
in
subtempList
)
foreach
(
var
sItem
in
subtempList
)
{
{
RunCourseStudent
(
cookie
,
sItem
.
courseId
);
RunCourseStudent
(
cookie
,
sItem
.
courseId
);
RunCourseTeacher
(
cookie
,
sItem
.
courseId
);
RunCourseInfo
(
cookie
,
sItem
.
courseId
);
}
}
}
}
}
}
...
@@ -101,7 +105,7 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -101,7 +105,7 @@ namespace EduSpider.Spiders.ClassInRule
/// </summary>
/// </summary>
/// <param name="data"></param>
/// <param name="data"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
RB_Course
>
ParseJson
(
string
data
)
public
static
List
<
RB_Course
>
ParseJson
(
string
data
)
{
{
List
<
RB_Course
>
list
=
new
List
<
RB_Course
>();
List
<
RB_Course
>
list
=
new
List
<
RB_Course
>();
JArray
courseArray
=
JArray
.
Parse
(
data
);
JArray
courseArray
=
JArray
.
Parse
(
data
);
...
@@ -144,10 +148,10 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -144,10 +148,10 @@ namespace EduSpider.Spiders.ClassInRule
}
}
/// <summary>
/// <summary>
/// 获取课程学员列表
/// 获取课程
关联
学员列表
/// </summary>
/// </summary>
public
async
void
RunCourseStudent
(
string
cookie
,
int
courseId
)
public
static
async
void
RunCourseStudent
(
string
cookie
,
int
courseId
)
{
{
var
request
=
Utility
.
HttpHelper
.
GenerateHttp
(
cookie
);
var
request
=
Utility
.
HttpHelper
.
GenerateHttp
(
cookie
);
string
queryStr
=
"courseId={0}"
;
string
queryStr
=
"courseId={0}"
;
...
@@ -157,14 +161,14 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -157,14 +161,14 @@ namespace EduSpider.Spiders.ClassInRule
Console
.
WriteLine
(
string
.
Format
(
"开始获取{0}课程学员数据"
,
courseId
));
Console
.
WriteLine
(
string
.
Format
(
"开始获取{0}课程学员数据"
,
courseId
));
var
response
=
await
request
.
PostAsync
(
"https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList"
,
content
);
var
response
=
await
request
.
PostAsync
(
"https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList"
,
content
);
var
r
esult
=
response
.
Content
.
ReadAsStringAsync
().
Result
;
var
sutR
esult
=
response
.
Content
.
ReadAsStringAsync
().
Result
;
List
<
RB_Course_Student
>
list
=
new
List
<
RB_Course_Student
>();
List
<
RB_Course_Student
>
list
=
new
List
<
RB_Course_Student
>();
if
(!
string
.
IsNullOrWhiteSpace
(
r
esult
))
if
(!
string
.
IsNullOrWhiteSpace
(
sutR
esult
))
{
{
JObject
rootObj
=
JObject
.
Parse
(
r
esult
);
JObject
stuRootObj
=
JObject
.
Parse
(
sutR
esult
);
if
(!
string
.
IsNullOrWhiteSpace
(
r
ootObj
.
GetString
(
"data"
)))
if
(!
string
.
IsNullOrWhiteSpace
(
stuR
ootObj
.
GetString
(
"data"
)))
{
{
JArray
courseStudentArray
=
JArray
.
Parse
(
r
ootObj
.
GetString
(
"data"
));
JArray
courseStudentArray
=
JArray
.
Parse
(
stuR
ootObj
.
GetString
(
"data"
));
if
(
courseStudentArray
!=
null
&&
courseStudentArray
.
Count
>
0
)
if
(
courseStudentArray
!=
null
&&
courseStudentArray
.
Count
>
0
)
{
{
foreach
(
var
jItem
in
courseStudentArray
)
foreach
(
var
jItem
in
courseStudentArray
)
...
@@ -172,12 +176,12 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -172,12 +176,12 @@ namespace EduSpider.Spiders.ClassInRule
JObject
courseStuObj
=
JObject
.
Parse
(
jItem
.
ToString
());
JObject
courseStuObj
=
JObject
.
Parse
(
jItem
.
ToString
());
list
.
Add
(
new
RB_Course_Student
()
list
.
Add
(
new
RB_Course_Student
()
{
{
id
=
courseStuObj
.
GetInt
(
"id"
),
id
=
courseStuObj
.
GetInt
(
"id"
),
uid
=
courseStuObj
.
GetInt
(
"uid"
),
uid
=
courseStuObj
.
GetInt
(
"uid"
),
name
=
courseStuObj
.
GetString
(
"name"
),
name
=
courseStuObj
.
GetString
(
"name"
),
account
=
courseStuObj
.
GetString
(
"account"
),
account
=
courseStuObj
.
GetString
(
"account"
),
logo
=
courseStuObj
.
GetString
(
"logo"
),
logo
=
courseStuObj
.
GetString
(
"logo"
),
courseId
=
courseId
courseId
=
courseId
});
});
}
}
}
}
...
@@ -188,5 +192,120 @@ namespace EduSpider.Spiders.ClassInRule
...
@@ -188,5 +192,120 @@ namespace EduSpider.Spiders.ClassInRule
courseStudentRepository
.
BatchSetCourseStudentRepository
(
list
);
courseStudentRepository
.
BatchSetCourseStudentRepository
(
list
);
}
}
}
}
/// <summary>
/// 获取课程关联老师列表
/// </summary>
/// <param name="cookie"></param>
/// <param name="courseId"></param>
public
static
async
void
RunCourseTeacher
(
string
cookie
,
int
courseId
)
{
var
request
=
Utility
.
HttpHelper
.
GenerateHttp
(
cookie
);
string
queryStr
=
"courseId={0}"
;
string
paramStr
=
string
.
Format
(
queryStr
,
courseId
);
var
content
=
new
StringContent
(
paramStr
,
System
.
Text
.
Encoding
.
UTF8
,
"application/x-www-form-urlencoded"
);
ICourseTeacherRepository
courseTeacherRepository
=
new
CourseTeacherRepository
();
Console
.
WriteLine
(
string
.
Format
(
"开始获取{0}课程老师数据"
,
courseId
));
var
response
=
await
request
.
PostAsync
(
"https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseTeacherList"
,
content
);
var
teacherResult
=
response
.
Content
.
ReadAsStringAsync
().
Result
;
List
<
RB_Course_Teacher
>
list
=
new
List
<
RB_Course_Teacher
>();
if
(!
string
.
IsNullOrWhiteSpace
(
teacherResult
))
{
JObject
teacherRootObj
=
JObject
.
Parse
(
teacherResult
);
if
(!
string
.
IsNullOrWhiteSpace
(
teacherRootObj
.
GetString
(
"data"
)))
{
JObject
teacherObj
=
JObject
.
Parse
(
teacherRootObj
.
GetString
(
"data"
));
if
(!
string
.
IsNullOrWhiteSpace
(
teacherObj
.
GetString
(
"teacherList"
)))
{
JArray
courseTeacherArray
=
JArray
.
Parse
(
teacherObj
.
GetString
(
"teacherList"
));
if
(
courseTeacherArray
!=
null
&&
courseTeacherArray
.
Count
>
0
)
{
foreach
(
var
jItem
in
courseTeacherArray
)
{
JObject
courseTeacherObj
=
JObject
.
Parse
(
jItem
.
ToString
());
JObject
infoObj
=
JObject
.
Parse
(
courseTeacherObj
.
GetString
(
"teacherInfo"
));
list
.
Add
(
new
RB_Course_Teacher
()
{
id
=
infoObj
.
GetInt
(
"id"
),
uid
=
infoObj
.
GetInt
(
"uid"
),
phone
=
infoObj
.
GetString
(
"phone"
),
logo
=
infoObj
.
GetString
(
"logo"
),
name
=
infoObj
.
GetString
(
"name"
),
courseId
=
courseId
,
courseTeacherId
=
courseTeacherObj
.
GetInt
(
"courseTeacherId"
)
});
}
}
}
}
}
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
courseTeacherRepository
.
BatchSetCourseTeacherRepository
(
list
);
}
}
/// <summary>
/// 查询课程信息
/// </summary>
/// <param name="cookie"></param>
/// <param name="courseId"></param>
public
static
async
void
RunCourseInfo
(
string
cookie
,
int
courseId
)
{
var
request
=
Utility
.
HttpHelper
.
GenerateHttp
(
cookie
);
string
queryStr
=
"courseId={0}"
;
string
paramStr
=
string
.
Format
(
queryStr
,
courseId
);
var
content
=
new
StringContent
(
paramStr
,
System
.
Text
.
Encoding
.
UTF8
,
"application/x-www-form-urlencoded"
);
ICourseRepository
courseRepository
=
new
CourseRepository
();
Console
.
WriteLine
(
string
.
Format
(
"开始获取{0}课程详情数据"
,
courseId
));
var
response
=
await
request
.
PostAsync
(
"https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseInfo"
,
content
);
var
courseInfoResult
=
response
.
Content
.
ReadAsStringAsync
().
Result
;
List
<
RB_Course
>
list
=
new
List
<
RB_Course
>();
if
(!
string
.
IsNullOrWhiteSpace
(
courseInfoResult
))
{
JObject
courseRootObj
=
JObject
.
Parse
(
courseInfoResult
);
if
(!
string
.
IsNullOrWhiteSpace
(
courseRootObj
.
GetString
(
"data"
)))
{
JObject
courseObj
=
JObject
.
Parse
(
courseRootObj
.
GetString
(
"data"
));
var
expiryTime
=
ConvertHelper
.
UnixToDateTime
(
courseObj
.
GetInt
(
"expiryTime"
));
if
(
ConvertHelper
.
FormatTime
(
expiryTime
)
==
"1970-01-01 08:00:00"
)
{
expiryTime
=
new
DateTime
(
0001
,
01
,
01
);
}
list
.
Add
(
new
RB_Course
()
{
courseId
=
courseObj
.
GetInt
(
"courseId"
),
courseName
=
courseObj
.
GetString
(
"courseName"
),
beginTime
=
ConvertHelper
.
UnixToDateTime
(
courseObj
.
GetInt
(
"beginTime"
)),
completeNum
=
courseObj
.
GetInt
(
"completeNum"
),
totalClassNum
=
courseObj
.
GetInt
(
"totalClassNum"
),
expiryTime
=
expiryTime
,
liveNum
=
courseObj
.
GetInt
(
"liveNum"
),
recordNum
=
courseObj
.
GetInt
(
"recordNum"
),
openNum
=
courseObj
.
GetInt
(
"openNum"
),
studentNum
=
courseObj
.
GetInt
(
"studentNum"
),
auditNum
=
courseObj
.
GetInt
(
"auditNum"
),
teacherNum
=
courseObj
.
GetInt
(
"teacherNum"
),
courseStatus
=
(
CourseStatusEnum
)
courseObj
.
GetInt
(
"courseStatus"
),
webCast
=
courseObj
.
GetString
(
"webCast"
),
teacherId
=
courseObj
.
GetInt
(
"teacherId"
),
teacherAccount
=
courseObj
.
GetString
(
"teacherAccount"
),
teacherUid
=
courseObj
.
GetInt
(
"teacherUid"
),
teacherName
=
courseObj
.
GetString
(
"teacherName"
),
teacherLogo
=
courseObj
.
GetString
(
"teacherLogo"
),
courseType
=
(
CourseTypeEnum
)
courseObj
.
GetInt
(
"courseType"
),
addTime
=
ConvertHelper
.
UnixToDateTime
(
courseObj
.
GetInt
(
"addTime"
)),
courseWare
=
courseObj
.
GetString
(
"courseWare"
),
coverImg
=
courseObj
.
GetString
(
"coverImg"
),
});
}
}
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
courseRepository
.
BatchSetCourseRepository
(
list
);
}
}
}
}
}
}
EduSpider/Spiders/ClassInRule/StudentManager.cs
View file @
d74dd1e8
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
using
EduSpider.Model.Entity
;
using
EduSpider.Model.Entity
;
using
EduSpider.Repository
;
using
EduSpider.Repository
;
using
EduSpider.Utility
;
using
EduSpider.Utility
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
Newtonsoft.Json.Linq
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
...
...
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