Commit 94d5dbd2 authored by 黄奎's avatar 黄奎

页面修改

parent 47041ac9
using EduSpider.Spiders.ClassInRule; using EduSpider.Spiders.ClassInRule;
using EduSpider.Utility.Plugin; using EduSpider.Utility.Plugin;
using System;
using System.Threading;
namespace TicketSpider.Spiders.ClassInRule namespace TicketSpider.Spiders.ClassInRule
{ {
......
...@@ -33,76 +33,89 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -33,76 +33,89 @@ namespace EduSpider.Spiders.ClassInRule
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseRepository courseRepository = new CourseRepository(); ICourseRepository courseRepository = new CourseRepository();
int totalCount = 0; int totalCount = 0;
try
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseList";
var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject rootObj = JObject.Parse(result); string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseList";
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data"))) var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject dataObj = JObject.Parse(rootObj.GetString("data")); JObject rootObj = JObject.Parse(result);
var totalNum = dataObj.GetInt("totalCourseNum"); if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
var tempList = ParseJson(dataObj.GetString("courseList"));
if (tempList != null && tempList.Count > 0)
{ {
courseRepository.BatchSetCourseRepository(tempList); JObject dataObj = JObject.Parse(rootObj.GetString("data"));
totalCount += tempList.Count; var totalNum = dataObj.GetInt("totalCourseNum");
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); var tempList = ParseJson(dataObj.GetString("courseList"));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); if (tempList != null && tempList.Count > 0)
foreach (var item in tempList)
{ {
RunCourseStudent(cookie, item.CourseId); courseRepository.BatchSetCourseRepository(tempList);
RunCourseTeacher(cookie, item.CourseId); totalCount += tempList.Count;
RunCourseInfo(cookie, item.CourseId); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
GetCourseLessionList(cookie, item); VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList)
{
RunCourseStudent(cookie, item.CourseId);
RunCourseTeacher(cookie, item.CourseId);
RunCourseInfo(cookie, item.CourseId);
GetCourseLessionList(cookie, item);
}
} }
} if (totalNum % perpage == 0)
if (totalNum % perpage == 0)
{
pageCount = totalNum / perpage;
}
else
{
pageCount = totalNum / perpage + 1;
}
if (totalNum > perpage)
{
for (var i = 2; i <= pageCount; i++)
{ {
Thread.Sleep(1000 * 2); pageCount = totalNum / perpage;
paramStr = string.Format(queryStr, i, perpage); }
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); else
var sub_response = await request.PostAsync(url, sub_content); {
var sub_result = sub_response.Content.ReadAsStringAsync().Result; pageCount = totalNum / perpage + 1;
if (!string.IsNullOrWhiteSpace(sub_result)) }
if (totalNum > perpage)
{
for (var i = 2; i <= pageCount; i++)
{ {
JObject sub_rootObj = JObject.Parse(sub_result); Thread.Sleep(1000 * 2);
if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data"))) paramStr = string.Format(queryStr, i, perpage);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
try
{ {
JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data")); var sub_response = await request.PostAsync(url, sub_content);
var subtempList = ParseJson(sub_dataObj.GetString("courseList")); var sub_result = sub_response.Content.ReadAsStringAsync().Result;
if (subtempList != null && subtempList.Count > 0) if (!string.IsNullOrWhiteSpace(sub_result))
{ {
courseRepository.BatchSetCourseRepository(subtempList); JObject sub_rootObj = JObject.Parse(sub_result);
totalCount += subtempList.Count; if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data")))
foreach (var sItem in subtempList)
{ {
RunCourseStudent(cookie, sItem.CourseId); JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data"));
RunCourseTeacher(cookie, sItem.CourseId); var subtempList = ParseJson(sub_dataObj.GetString("courseList"));
RunCourseInfo(cookie, sItem.CourseId); if (subtempList != null && subtempList.Count > 0)
GetCourseLessionList(cookie, sItem); {
courseRepository.BatchSetCourseRepository(subtempList);
totalCount += subtempList.Count;
foreach (var sItem in subtempList)
{
RunCourseStudent(cookie, sItem.CourseId);
RunCourseTeacher(cookie, sItem.CourseId);
RunCourseInfo(cookie, sItem.CourseId);
GetCourseLessionList(cookie, sItem);
}
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
}
} }
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
catch (Exception ex2)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_RunCourse2", ex: ex2);
}
} }
} }
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_RunCourse", ex: ex);
}
} }
/// <summary> /// <summary>
...@@ -146,7 +159,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -146,7 +159,7 @@ namespace EduSpider.Spiders.ClassInRule
TeacherName = courseObj.GetString("teacherName"), TeacherName = courseObj.GetString("teacherName"),
TeacherLogo = courseObj.GetString("teacherLogo"), TeacherLogo = courseObj.GetString("teacherLogo"),
CourseType = courseObj.GetInt("courseType"), CourseType = courseObj.GetInt("courseType"),
}); });
} }
} }
return list; return list;
...@@ -171,51 +184,57 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -171,51 +184,57 @@ namespace EduSpider.Spiders.ClassInRule
InfoHelper.WriteLine(string.Format("开始获取{0}课程学员数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程学员数据", courseId));
string url = "https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList"; string url = "https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList";
var response = await request.PostAsync(url, content);
var sutResult = response.Content.ReadAsStringAsync().Result;
List<RB_Course_Student> list = new(); List<RB_Course_Student> list = new();
List<RB_Course_Student> deleteList = new List<RB_Course_Student>(); List<RB_Course_Student> deleteList = new List<RB_Course_Student>();
if (!string.IsNullOrWhiteSpace(sutResult)) try
{ {
JObject stuRootObj = JObject.Parse(sutResult); var response = await request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(stuRootObj.GetString("data"))) var sutResult = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sutResult))
{ {
JArray courseStudentArray = JArray.Parse(stuRootObj.GetString("data")); JObject stuRootObj = JObject.Parse(sutResult);
if (courseStudentArray != null && courseStudentArray.Count > 0) if (!string.IsNullOrWhiteSpace(stuRootObj.GetString("data")))
{ {
foreach (var jItem in courseStudentArray) JArray courseStudentArray = JArray.Parse(stuRootObj.GetString("data"));
if (courseStudentArray != null && courseStudentArray.Count > 0)
{ {
JObject courseStuObj = JObject.Parse(jItem.ToString()); foreach (var jItem in courseStudentArray)
string deleteCourseStudentReplay = courseStuObj.GetString("deleteCourseStudentReplay");
if (deleteCourseStudentReplay != "0")
{ {
list.Add(new RB_Course_Student() JObject courseStuObj = JObject.Parse(jItem.ToString());
string deleteCourseStudentReplay = courseStuObj.GetString("deleteCourseStudentReplay");
if (deleteCourseStudentReplay != "0")
{ {
id = courseStuObj.GetInt("id"), list.Add(new RB_Course_Student()
uid = courseStuObj.GetInt("uid"), {
name = courseStuObj.GetString("name"), id = courseStuObj.GetInt("id"),
account = courseStuObj.GetString("account"), uid = courseStuObj.GetInt("uid"),
logo = courseStuObj.GetString("logo"), name = courseStuObj.GetString("name"),
courseId = courseId account = courseStuObj.GetString("account"),
}); logo = courseStuObj.GetString("logo"),
} courseId = courseId
else });
{ }
deleteList.Add(new RB_Course_Student() else
{ {
id = courseStuObj.GetInt("id"), deleteList.Add(new RB_Course_Student()
uid = courseStuObj.GetInt("uid"), {
name = courseStuObj.GetString("name"), id = courseStuObj.GetInt("id"),
account = courseStuObj.GetString("account"), uid = courseStuObj.GetInt("uid"),
logo = courseStuObj.GetString("logo"), name = courseStuObj.GetString("name"),
courseId = courseId account = courseStuObj.GetString("account"),
}); logo = courseStuObj.GetString("logo"),
courseId = courseId
});
}
} }
} }
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_RunCourseStudent", ex: ex);
}
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
courseStudentRepository.BatchSetCourseStudentRepository(list); courseStudentRepository.BatchSetCourseStudentRepository(list);
...@@ -233,48 +252,54 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -233,48 +252,54 @@ namespace EduSpider.Spiders.ClassInRule
/// <param name="courseId"></param> /// <param name="courseId"></param>
public static async void RunCourseTeacher(string cookie, int courseId) public static async void RunCourseTeacher(string cookie, int courseId)
{ {
List<RB_Course_Teacher> list = new();
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = "courseId={0}"; string queryStr = "courseId={0}";
string paramStr = string.Format(queryStr, courseId); string paramStr = string.Format(queryStr, courseId);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository(); ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository();
InfoHelper.WriteLine(string.Format("开始获取{0}课程老师数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程老师数据", courseId));
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseTeacherList"; string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseTeacherList";
var response = await request.PostAsync(url, content); try
var teacherResult = response.Content.ReadAsStringAsync().Result;
List<RB_Course_Teacher> list = new();
if (!string.IsNullOrWhiteSpace(teacherResult))
{ {
JObject teacherRootObj = JObject.Parse(teacherResult); var response = await request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(teacherRootObj.GetString("data"))) var teacherResult = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(teacherResult))
{ {
JObject teacherObj= JObject.Parse(teacherRootObj.GetString("data")); JObject teacherRootObj = JObject.Parse(teacherResult);
if (!string.IsNullOrWhiteSpace(teacherObj.GetString("teacherList"))) if (!string.IsNullOrWhiteSpace(teacherRootObj.GetString("data")))
{ {
JArray courseTeacherArray = JArray.Parse(teacherObj.GetString("teacherList")); JObject teacherObj = JObject.Parse(teacherRootObj.GetString("data"));
if (courseTeacherArray != null && courseTeacherArray.Count > 0) if (!string.IsNullOrWhiteSpace(teacherObj.GetString("teacherList")))
{ {
foreach (var jItem in courseTeacherArray) JArray courseTeacherArray = JArray.Parse(teacherObj.GetString("teacherList"));
if (courseTeacherArray != null && courseTeacherArray.Count > 0)
{ {
JObject courseTeacherObj = JObject.Parse(jItem.ToString()); foreach (var jItem in courseTeacherArray)
JObject infoObj = JObject.Parse(courseTeacherObj.GetString("teacherInfo"));
list.Add(new RB_Course_Teacher()
{ {
id = infoObj.GetInt("id"), JObject courseTeacherObj = JObject.Parse(jItem.ToString());
uid = infoObj.GetInt("uid"), JObject infoObj = JObject.Parse(courseTeacherObj.GetString("teacherInfo"));
phone = infoObj.GetString("phone"), list.Add(new RB_Course_Teacher()
logo = infoObj.GetString("logo"), {
name = infoObj.GetString("name"), id = infoObj.GetInt("id"),
courseId = courseId, uid = infoObj.GetInt("uid"),
courseTeacherId= courseTeacherObj.GetInt("courseTeacherId") phone = infoObj.GetString("phone"),
}); logo = infoObj.GetString("logo"),
name = infoObj.GetString("name"),
courseId = courseId,
courseTeacherId = courseTeacherObj.GetInt("courseTeacherId")
});
}
} }
} }
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_RunCourseTeacher", ex: ex);
}
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
courseTeacherRepository.BatchSetCourseTeacherRepository(list); courseTeacherRepository.BatchSetCourseTeacherRepository(list);
...@@ -288,87 +313,95 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -288,87 +313,95 @@ namespace EduSpider.Spiders.ClassInRule
/// <param name="courseId"></param> /// <param name="courseId"></param>
public static async void RunCourseInfo(string cookie, int courseId) public static async void RunCourseInfo(string cookie, int courseId)
{ {
List<rb_course_hk> list = new();
List<RB_Course_Teacher> teacherList = new();
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = "courseId={0}"; string queryStr = "courseId={0}";
string paramStr = string.Format(queryStr, courseId); string paramStr = string.Format(queryStr, courseId);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseRepository courseRepository = new CourseRepository(); ICourseRepository courseRepository = new CourseRepository();
ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository(); ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository();
InfoHelper.WriteLine(string.Format("开始获取{0}课程详情数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程详情数据", courseId));
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseInfo"; string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseInfo";
var response = await request.PostAsync(url, content); try
var courseInfoResult = response.Content.ReadAsStringAsync().Result;
List<rb_course_hk> list = new();
List<RB_Course_Teacher> teacherList = new();
if (!string.IsNullOrWhiteSpace(courseInfoResult))
{ {
JObject courseRootObj = JObject.Parse(courseInfoResult); var response = await request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(courseRootObj.GetString("data"))) var courseInfoResult = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(courseInfoResult))
{ {
JObject courseObj = JObject.Parse(courseRootObj.GetString("data")); JObject courseRootObj = JObject.Parse(courseInfoResult);
var expiryTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("expiryTime")); if (!string.IsNullOrWhiteSpace(courseRootObj.GetString("data")))
if (ConvertHelper.FormatTime(expiryTime) == "1970-01-01 08:00:00")
{
expiryTime = new DateTime(0001, 01, 01);
}
var courseModel = new rb_course_hk()
{
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=0,
OpenNum = courseObj.GetInt("openNum"),
StudentNum = courseObj.GetInt("studentNum"),
AuditNum = courseObj.GetInt("auditNum"),
TeacherNum = courseObj.GetInt("teacherNum"),
CourseStatus = courseObj.GetInt("courseStatus"),
WebCast = courseObj.GetString("webCastUrl"),
TeacherId = courseObj.GetInt("teacherId"),
TeacherAccount = courseObj.GetString("teacherAccount"),
TeacherUid = courseObj.GetInt("teacherUid"),
TeacherName = courseObj.GetString("teacherName"),
TeacherLogo = courseObj.GetString("teacherLogo"),
CourseType = courseObj.GetInt("courseType"),
AddTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("addTime")),
CourseWare = courseObj.GetString("courseWare"),
};
string tempCoverImg = courseObj.GetString("coverImg");
string coverImg = "";
if (!string.IsNullOrWhiteSpace(tempCoverImg))
{ {
coverImg = "https://console.eeo.cn/upload/images/" + tempCoverImg; JObject courseObj = JObject.Parse(courseRootObj.GetString("data"));
} var expiryTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("expiryTime"));
courseModel.CoverImg = coverImg; if (ConvertHelper.FormatTime(expiryTime) == "1970-01-01 08:00:00")
list.Add(courseModel);
if (courseModel.TeacherUid > 0)
{
var cTeacherModel = courseTeacherRepository.GetTeacherCourseListRepository(new Model.Query.CourseQuery()
{ {
CourseId = courseModel.CourseId, expiryTime = new DateTime(0001, 01, 01);
TeacherIds = courseModel.TeacherUid.ToString() }
}).FirstOrDefault(); var courseModel = new rb_course_hk()
int newId = Convert.ToInt32(DateTime.Now.ToString("yyyyMMdd"));
var courseTeacher = new RB_Course_Teacher()
{ {
id = cTeacherModel?.id ?? newId, CourseId = courseObj.GetInt("courseId"),
uid = Convert.ToInt32(courseModel.TeacherUid), CourseName = courseObj.GetString("courseName"),
phone = courseModel.TeacherAccount, BeginTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("beginTime")),
logo = courseModel.TeacherLogo, CompleteNum = courseObj.GetInt("completeNum"),
name = courseModel.TeacherName, TotalClassNum = courseObj.GetInt("totalClassNum"),
courseId = courseId, ExpiryTime = expiryTime,
courseTeacherId = courseModel.TeacherId LiveNum = courseObj.GetInt("liveNum"),
RecordNum = 0,
OpenNum = courseObj.GetInt("openNum"),
StudentNum = courseObj.GetInt("studentNum"),
AuditNum = courseObj.GetInt("auditNum"),
TeacherNum = courseObj.GetInt("teacherNum"),
CourseStatus = courseObj.GetInt("courseStatus"),
WebCast = courseObj.GetString("webCastUrl"),
TeacherId = courseObj.GetInt("teacherId"),
TeacherAccount = courseObj.GetString("teacherAccount"),
TeacherUid = courseObj.GetInt("teacherUid"),
TeacherName = courseObj.GetString("teacherName"),
TeacherLogo = courseObj.GetString("teacherLogo"),
CourseType = courseObj.GetInt("courseType"),
AddTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("addTime")),
CourseWare = courseObj.GetString("courseWare"),
}; };
teacherList.Add(courseTeacher);
string tempCoverImg = courseObj.GetString("coverImg");
string coverImg = "";
if (!string.IsNullOrWhiteSpace(tempCoverImg))
{
coverImg = "https://console.eeo.cn/upload/images/" + tempCoverImg;
}
courseModel.CoverImg = coverImg;
list.Add(courseModel);
if (courseModel.TeacherUid > 0)
{
var cTeacherModel = courseTeacherRepository.GetTeacherCourseListRepository(new Model.Query.CourseQuery()
{
CourseId = courseModel.CourseId,
TeacherIds = courseModel.TeacherUid.ToString()
}).FirstOrDefault();
int newId = Convert.ToInt32(DateTime.Now.ToString("yyyyMMdd"));
var courseTeacher = new RB_Course_Teacher()
{
id = cTeacherModel?.id ?? newId,
uid = Convert.ToInt32(courseModel.TeacherUid),
phone = courseModel.TeacherAccount,
logo = courseModel.TeacherLogo,
name = courseModel.TeacherName,
courseId = courseId,
courseTeacherId = courseModel.TeacherId
};
teacherList.Add(courseTeacher);
}
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_RunCourseInfo", ex: ex);
}
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
courseRepository.BatchSetCourseOtherRepository(list); courseRepository.BatchSetCourseOtherRepository(list);
...@@ -397,33 +430,40 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -397,33 +430,40 @@ namespace EduSpider.Spiders.ClassInRule
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = $"courseKey={searchKey}"; string queryStr = $"courseKey={searchKey}";
var content = new StringContent(queryStr, Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(queryStr, Encoding.UTF8, "application/x-www-form-urlencoded");
string url = "https://live.eeo.cn/saasajax/webcast.ajax.php?action=getLessonList";
var response = request.PostAsync(url, content).Result;
var result = response.Content.ReadAsStringAsync().Result;
var lessonKeyList = new List<string>(); var lessonKeyList = new List<string>();
int lessonVodCount = 0; int lessonVodCount = 0;
if (!string.IsNullOrWhiteSpace(result)) string url = "https://live.eeo.cn/saasajax/webcast.ajax.php?action=getLessonList";
try
{ {
var rootObj = JObject.Parse(result); var response = request.PostAsync(url, content).Result;
if (rootObj.ContainsKey("data")) var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JArray dataArray = JArray.Parse(rootObj["data"].ToString()); var rootObj = JObject.Parse(result);
if (dataArray!=null && dataArray.Count>0 ) if (rootObj.ContainsKey("data"))
{ {
foreach (var sItem in dataArray) JArray dataArray = JArray.Parse(rootObj["data"].ToString());
if (dataArray != null && dataArray.Count > 0)
{ {
JObject sObj = JObject.Parse(JsonHelper.Serialize(sItem)); foreach (var sItem in dataArray)
lessonKeyList.Add(sObj.GetString("lessonKey"));
int lessonStatus = sObj.GetInt("lessonStatus");
if (lessonStatus == 1)
{ {
lessonVodCount += sObj.GetInt("lessonVodCount"); JObject sObj = JObject.Parse(JsonHelper.Serialize(sItem));
lessonKeyList.Add(sObj.GetString("lessonKey"));
int lessonStatus = sObj.GetInt("lessonStatus");
if (lessonStatus == 1)
{
lessonVodCount += sObj.GetInt("lessonVodCount");
}
} }
} }
} }
} }
} }
if (lessonVodCount>0) catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("CourseManager_GetCourseLessionList", ex: ex);
}
if (lessonVodCount > 0)
{ {
var resultList = new List<string>(); var resultList = new List<string>();
//var request2 = Utility.HttpHelper.GenerateHttp(cookie); //var request2 = Utility.HttpHelper.GenerateHttp(cookie);
...@@ -463,7 +503,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -463,7 +503,7 @@ namespace EduSpider.Spiders.ClassInRule
//} //}
if (resultList != null && resultList.Count > 0) if (resultList != null && resultList.Count > 0)
{ {
} }
rb_course_hk model = new rb_course_hk() rb_course_hk model = new rb_course_hk()
{ {
......
...@@ -33,75 +33,88 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -33,75 +33,88 @@ namespace EduSpider.Spiders.ClassInRule
IHomeWorkRepository homeWorkRepository = new HomeWorkRepository(); IHomeWorkRepository homeWorkRepository = new HomeWorkRepository();
IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository(); IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository();
int totalCount = 0; int totalCount = 0;
try
string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getHomeworkList";
var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject rootObj = JObject.Parse(result); string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getHomeworkList";
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data"))) var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject dataObj = JObject.Parse(rootObj.GetString("data")); JObject rootObj = JObject.Parse(result);
var totalNum = dataObj.GetInt("total"); if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
var tempList = ParseJson(dataObj.GetString("list"));
if (tempList != null && tempList.Count > 0)
{ {
homeWorkRepository.BatchSetHomeWorkRepository(tempList); JObject dataObj = JObject.Parse(rootObj.GetString("data"));
totalCount += tempList.Count; var totalNum = dataObj.GetInt("total");
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); var tempList = ParseJson(dataObj.GetString("list"));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); if (tempList != null && tempList.Count > 0)
foreach (var item in tempList)
{ {
RunStuHomeWork(cookie, item.Homework_id, item.Course_id); homeWorkRepository.BatchSetHomeWorkRepository(tempList);
totalCount += tempList.Count;
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList)
{
RunStuHomeWork(cookie, item.Homework_id, item.Course_id);
}
}
if (totalNum % perpage == 0)
{
pageCount = totalNum / perpage;
}
else
{
pageCount = totalNum / perpage + 1;
} }
}
if (totalNum % perpage == 0)
{
pageCount = totalNum / perpage;
}
else
{
pageCount = totalNum / perpage + 1;
}
if (totalNum > perpage) if (totalNum > perpage)
{
for (var i = 2; i <= pageCount; i++)
{ {
Thread.Sleep(1000 * 2); for (var i = 2; i <= pageCount; i++)
paramStr = string.Format(queryStr, i, perpage);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var sub_response = await request.PostAsync(url, sub_content);
var sub_result = sub_response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sub_result))
{ {
JObject sub_rootObj = JObject.Parse(sub_result); Thread.Sleep(1000 * 2);
if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data"))) paramStr = string.Format(queryStr, i, perpage);
try
{ {
JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data")); var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var subtempList = ParseJson(sub_dataObj.GetString("list")); var sub_response = await request.PostAsync(url, sub_content);
if (subtempList != null && subtempList.Count > 0) var sub_result = sub_response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sub_result))
{ {
homeWorkRepository.BatchSetHomeWorkRepository(subtempList); JObject sub_rootObj = JObject.Parse(sub_result);
totalCount += subtempList.Count; if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data")))
foreach (var sItem in subtempList)
{
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id);
}
if (i == totalCount)
{ {
// stuHomeWorkRepository.CreateHomeWorkCommentRepository(0); JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data"));
var subtempList = ParseJson(sub_dataObj.GetString("list"));
if (subtempList != null && subtempList.Count > 0)
{
homeWorkRepository.BatchSetHomeWorkRepository(subtempList);
totalCount += subtempList.Count;
foreach (var sItem in subtempList)
{
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id);
}
if (i == totalCount)
{
// stuHomeWorkRepository.CreateHomeWorkCommentRepository(0);
}
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
}
} }
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
catch (Exception ex2)
{
VTX.FW.Helper.LogHelper.WriteError("HomeWorkManager_RunHomeWork2", ex: ex2);
}
} }
} }
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("HomeWorkManager_RunHomeWork", ex: ex);
}
} }
/// <summary> /// <summary>
...@@ -165,7 +178,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -165,7 +178,7 @@ namespace EduSpider.Spiders.ClassInRule
/// </summary> /// </summary>
/// <param name="cookie"></param> /// <param name="cookie"></param>
/// <param name="homework_id"></param> /// <param name="homework_id"></param>
public static async void RunStuHomeWork(string cookie, int homework_id,int courseId) public static async void RunStuHomeWork(string cookie, int homework_id, int courseId)
{ {
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository(); IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository();
...@@ -177,75 +190,78 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -177,75 +190,78 @@ namespace EduSpider.Spiders.ClassInRule
stuIds = string.Join(",", courseStuList.Select(qitem => qitem.uid)); stuIds = string.Join(",", courseStuList.Select(qitem => qitem.uid));
} }
string queryStr = "page=1&perpage=100000&homework_id=[{0}]&course_id=[{1}]&is_del=[0]&student_uid=[{2}]&by=2"; string queryStr = "page=1&perpage=100000&homework_id=[{0}]&course_id=[{1}]&is_del=[0]&student_uid=[{2}]&by=2";
string paramStr = string.Format(queryStr, homework_id, courseId, stuIds); string paramStr = string.Format(queryStr, homework_id, courseId, stuIds);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id)); InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id));
string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getStudentsHomeworkList"; string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getStudentsHomeworkList";
var response = await request.PostAsync(url, content);
var sutHomeWorkResult = response.Content.ReadAsStringAsync().Result;
List<RB_Stu_HomeWork> list = new(); List<RB_Stu_HomeWork> list = new();
if (!string.IsNullOrWhiteSpace(sutHomeWorkResult)) try
{ {
JObject stuHomeRootObj = JObject.Parse(sutHomeWorkResult); var response = await request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(stuHomeRootObj.GetString("data"))) var sutHomeWorkResult = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sutHomeWorkResult))
{ {
JObject stuHomeDataObj = JObject.Parse(stuHomeRootObj.GetString("data")); JObject stuHomeRootObj = JObject.Parse(sutHomeWorkResult);
if (!string.IsNullOrWhiteSpace(stuHomeDataObj.GetString("list"))) if (!string.IsNullOrWhiteSpace(stuHomeRootObj.GetString("data")))
{ {
JArray stuHomeArray = JArray.Parse(stuHomeDataObj.GetString("list")); JObject stuHomeDataObj = JObject.Parse(stuHomeRootObj.GetString("data"));
if (stuHomeArray != null && stuHomeArray.Count > 0) if (!string.IsNullOrWhiteSpace(stuHomeDataObj.GetString("list")))
{ {
foreach (var rootItem in stuHomeArray) JArray stuHomeArray = JArray.Parse(stuHomeDataObj.GetString("list"));
if (stuHomeArray != null && stuHomeArray.Count > 0)
{ {
JObject stuItemObj = JObject.Parse(rootItem.ToString()); foreach (var rootItem in stuHomeArray)
if (!string.IsNullOrWhiteSpace(stuItemObj.GetString("students")))
{ {
JArray stuListArray = JArray.Parse(stuItemObj.GetString("students")); JObject stuItemObj = JObject.Parse(rootItem.ToString());
if (stuListArray != null && stuListArray.Count > 0) if (!string.IsNullOrWhiteSpace(stuItemObj.GetString("students")))
{ {
foreach (var sItem in stuListArray) JArray stuListArray = JArray.Parse(stuItemObj.GetString("students"));
if (stuListArray != null && stuListArray.Count > 0)
{ {
JObject lastObj = JObject.Parse(sItem.ToString()); foreach (var sItem in stuListArray)
list.Add(new RB_Stu_HomeWork()
{ {
stu_homework_id = lastObj.GetInt("stu_homework_id"), JObject lastObj = JObject.Parse(sItem.ToString());
admire = lastObj.GetString("admire"), list.Add(new RB_Stu_HomeWork()
cancel = lastObj.GetString("cancel"), {
correct = lastObj.GetDecimal("correct"), stu_homework_id = lastObj.GetInt("stu_homework_id"),
wrong = lastObj.GetInt("wrong"), admire = lastObj.GetString("admire"),
course_id = lastObj.GetInt("course_id"), cancel = lastObj.GetString("cancel"),
is_cream = lastObj.GetInt("is_cream"), correct = lastObj.GetDecimal("correct"),
emend = lastObj.GetInt("emend"), wrong = lastObj.GetInt("wrong"),
homework_id = lastObj.GetInt("homework_id"), course_id = lastObj.GetInt("course_id"),
homework_share_key = lastObj.GetString("homework_share_key"), is_cream = lastObj.GetInt("is_cream"),
is_draft = lastObj.GetInt("is_draft"), emend = lastObj.GetInt("emend"),
is_reform = lastObj.GetInt("is_reform"), homework_id = lastObj.GetInt("homework_id"),
is_revised = lastObj.GetInt("is_revised"), homework_share_key = lastObj.GetString("homework_share_key"),
is_startd = lastObj.GetInt("is_startd"), is_draft = lastObj.GetInt("is_draft"),
readover = lastObj.GetString("readover"), is_reform = lastObj.GetInt("is_reform"),
ref_time= ConvertHelper.UnixToDateTime(lastObj.GetInt("ref_time")), is_revised = lastObj.GetInt("is_revised"),
comment = lastObj.GetString("comment"), is_startd = lastObj.GetInt("is_startd"),
reform = lastObj.GetString("reform"), readover = lastObj.GetString("readover"),
school_uid = lastObj.GetInt("school_uid"), ref_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("ref_time")),
score = lastObj.GetDecimal("score"), comment = lastObj.GetString("comment"),
score_p = lastObj.GetDecimal("score_p"), reform = lastObj.GetString("reform"),
score_type = lastObj.GetInt("score_type"), school_uid = lastObj.GetInt("school_uid"),
show_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("show_time")), score = lastObj.GetDecimal("score"),
status = lastObj.GetInt("status"), score_p = lastObj.GetDecimal("score_p"),
stu_homework_share_key= lastObj.GetString("stu_homework_share_key"), score_type = lastObj.GetInt("score_type"),
student_account = lastObj.GetString("student_account"), show_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("show_time")),
student_name = lastObj.GetString("student_name"), status = lastObj.GetInt("status"),
student_uid = lastObj.GetInt("student_uid"), stu_homework_share_key = lastObj.GetString("stu_homework_share_key"),
th_account = lastObj.GetString("th_account"), student_account = lastObj.GetString("student_account"),
th_cancel = lastObj.GetString("th_cancel"), student_name = lastObj.GetString("student_name"),
th_name = lastObj.GetString("th_name"), student_uid = lastObj.GetInt("student_uid"),
th_num = lastObj.GetInt("th_num"), th_account = lastObj.GetString("th_account"),
th_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("th_time")), th_cancel = lastObj.GetString("th_cancel"),
th_uid = lastObj.GetInt("th_uid"), th_name = lastObj.GetString("th_name"),
add_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("add_time")), th_num = lastObj.GetInt("th_num"),
update_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("update_time")), th_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("th_time")),
}); th_uid = lastObj.GetInt("th_uid"),
add_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("add_time")),
update_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("update_time")),
});
}
} }
} }
} }
...@@ -254,6 +270,10 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -254,6 +270,10 @@ namespace EduSpider.Spiders.ClassInRule
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("HomeWorkManager_RunStuHomeWork", ex: ex);
}
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
stuHomeWorkRepository.BatchSetStuHomeWorkRepository(list); stuHomeWorkRepository.BatchSetStuHomeWorkRepository(list);
......
...@@ -10,7 +10,6 @@ using System.Linq; ...@@ -10,7 +10,6 @@ using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
using VTX.FW.Helper; using VTX.FW.Helper;
namespace EduSpider.Spiders.ClassInRule namespace EduSpider.Spiders.ClassInRule
...@@ -27,111 +26,126 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -27,111 +26,126 @@ namespace EduSpider.Spiders.ClassInRule
var range = $"[1609430400,{ConvertHelper.DateTimeToUnix(DateTime.Now)}]"; var range = $"[1609430400,{ConvertHelper.DateTimeToUnix(DateTime.Now)}]";
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = "page={0}&perpage={1}&examStatus=&paperName=&courseName=&arrangeTime={2}&display=0"; string queryStr = "page={0}&perpage={1}&examStatus=&paperName=&courseName=&arrangeTime={2}&display=0";
string paramStr = string.Format(queryStr, pageCount, perpage,range); string paramStr = string.Format(queryStr, pageCount, perpage, range);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
IHomeWorkRepository homeWorkRepository = new HomeWorkRepository(); IHomeWorkRepository homeWorkRepository = new HomeWorkRepository();
int totalCount = 0; int totalCount = 0;
string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getExamManageList"; string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getExamManageList";
var response = request.PostAsync(url, content); try
var result = response.Result.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject rootObj = JObject.Parse(result); var response = request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data"))) var result = response.Result.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
JObject dataObj = JObject.Parse(rootObj.GetString("data")); JObject rootObj = JObject.Parse(result);
var totalNum = dataObj.GetInt("totalSum"); if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
var tempList = ParseJson(dataObj.GetString("examsData"),cookie);
if (tempList != null && tempList.Count > 0)
{ {
homeWorkRepository.BatchSetHomeWorkRepository(tempList); JObject dataObj = JObject.Parse(rootObj.GetString("data"));
totalCount += tempList.Count; var totalNum = dataObj.GetInt("totalSum");
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); var tempList = ParseJson(dataObj.GetString("examsData"), cookie);
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); if (tempList != null && tempList.Count > 0)
foreach (var item in tempList)
{ {
RunStuHomeWork(cookie, item.Homework_id, item.Course_id,item); homeWorkRepository.BatchSetHomeWorkRepository(tempList);
totalCount += tempList.Count;
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList)
{
RunStuHomeWork(cookie, item.Homework_id, item.Course_id, item);
}
} }
} if (totalNum % perpage == 0)
if (totalNum % perpage == 0) {
{ pageCount = totalNum / perpage;
pageCount = totalNum / perpage; }
} else
else
{
pageCount = totalNum / perpage + 1;
}
if (totalNum > perpage)
{
for (var i = 2; i <= pageCount; i++)
{ {
Thread.Sleep(1000 * 2); pageCount = totalNum / perpage + 1;
}
paramStr = string.Format(queryStr, i, perpage, range);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var sub_response = request.PostAsync(url, sub_content);
var sub_result = sub_response.Result.Content.ReadAsStringAsync().Result; if (totalNum > perpage)
if (!string.IsNullOrWhiteSpace(sub_result)) {
for (var i = 2; i <= pageCount; i++)
{ {
JObject sub_rootObj = JObject.Parse(sub_result); Thread.Sleep(1000 * 2);
if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data"))) paramStr = string.Format(queryStr, i, perpage, range);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
try
{ {
JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data")); var sub_response = request.PostAsync(url, sub_content);
var subtempList = ParseJson(sub_dataObj.GetString("list"),cookie); var sub_result = sub_response.Result.Content.ReadAsStringAsync().Result;
if (subtempList != null && subtempList.Count > 0) if (!string.IsNullOrWhiteSpace(sub_result))
{ {
homeWorkRepository.BatchSetHomeWorkRepository(subtempList); JObject sub_rootObj = JObject.Parse(sub_result);
totalCount += subtempList.Count; if (!string.IsNullOrWhiteSpace(sub_rootObj.GetString("data")))
foreach (var sItem in subtempList)
{ {
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id, sItem); JObject sub_dataObj = JObject.Parse(sub_rootObj.GetString("data"));
var subtempList = ParseJson(sub_dataObj.GetString("list"), cookie);
if (subtempList != null && subtempList.Count > 0)
{
homeWorkRepository.BatchSetHomeWorkRepository(subtempList);
totalCount += subtempList.Count;
foreach (var sItem in subtempList)
{
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id, sItem);
}
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
}
} }
InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
catch (Exception ex2)
{
VTX.FW.Helper.LogHelper.WriteError("QuestionManager_RunHomeWork2", ex: ex2);
}
} }
} }
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("QuestionManager_RunHomeWork", ex: ex);
}
} }
public static void RequestExamDetail(string cookie,int courseId, int examId, int tid,ref RB_HomeWork m) public static void RequestExamDetail(string cookie, int courseId, int examId, int tid, ref RB_HomeWork m)
{ {
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
VTX.FW.Helper.LogHelper.WriteInfo("RequestExamDetail", $"正在查询测验详细信息"); VTX.FW.Helper.LogHelper.WriteInfo("RequestExamDetail", $"正在查询测验详细信息");
var paramStr = $"courseId={courseId}&examsId=[{examId}]&teachersId=[{tid}]&page=1&perpage=20"; var paramStr = $"courseId={courseId}&examsId=[{examId}]&teachersId=[{tid}]&page=1&perpage=20";
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var response = request.PostAsync("https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamAnalysisList", content); try
var resultStr = response.Result.Content.ReadAsStringAsync().Result ?? string.Empty;
var result = resultStr.TryToJObject();
if (result.flag)
{ {
var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject; var response = request.PostAsync("https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamAnalysisList", content);
var homeObj = (data["examsData"] as JArray)?.FirstOrDefault() as JObject; var resultStr = response.Result.Content.ReadAsStringAsync().Result ?? string.Empty;
if (homeObj != null) var result = resultStr.TryToJObject();
if (result.flag)
{ {
m.Num = homeObj.GetInt("shouldStSum"); var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject;
m.Cream_num = homeObj.GetInt("excellentStSum"); var homeObj = (data["examsData"] as JArray)?.FirstOrDefault() as JObject;
m.Revised_num = 0; //未匹配数据; if (homeObj != null)
m.Rnum = homeObj.GetInt("beReviewStSum"); {
m.Cnum = homeObj.GetInt("endStSum"); m.Num = homeObj.GetInt("shouldStSum");
m.Cream_num = homeObj.GetInt("excellentStSum");
m.Score_value = homeObj.GetDecimal("score_value"); m.Revised_num = 0; //未匹配数据;
m.Rnum = homeObj.GetInt("beReviewStSum");
m.Th_cancel = string.Empty; m.Cnum = homeObj.GetInt("endStSum");
m.Score_value = homeObj.GetDecimal("score_value");
m.Ref_num = homeObj.GetInt("needReStSum"); m.Th_cancel = string.Empty;
m.Refc_num = homeObj.GetInt("alreadyReStSum"); m.Ref_num = homeObj.GetInt("needReStSum");
m.Av_score = homeObj.GetDecimal("averageScore") / 100; m.Refc_num = homeObj.GetInt("alreadyReStSum");
m.Max_score = homeObj.GetDecimal("highestScore") / 100; m.Av_score = homeObj.GetDecimal("averageScore") / 100;
m.Min_score = homeObj.GetDecimal("lowestScore") / 100; m.Max_score = homeObj.GetDecimal("highestScore") / 100;
m.Min_score = homeObj.GetDecimal("lowestScore") / 100;
}
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("QuestionManager_RequestExamDetail", ex: ex);
}
} }
/// <summary> /// <summary>
...@@ -139,7 +153,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -139,7 +153,7 @@ namespace EduSpider.Spiders.ClassInRule
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
/// <returns></returns> /// <returns></returns>
public static List<RB_HomeWork> ParseJson(string data,string cookie) public static List<RB_HomeWork> ParseJson(string data, string cookie)
{ {
List<RB_HomeWork> list = new(); List<RB_HomeWork> list = new();
if (!string.IsNullOrWhiteSpace(data)) if (!string.IsNullOrWhiteSpace(data))
...@@ -215,74 +229,77 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -215,74 +229,77 @@ namespace EduSpider.Spiders.ClassInRule
InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id)); InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id));
VTX.FW.Helper.LogHelper.WriteInfo("RunStuHomeWork", string.Format("开始获取{0}作业学员数据", homework_id)); VTX.FW.Helper.LogHelper.WriteInfo("RunStuHomeWork", string.Format("开始获取{0}作业学员数据", homework_id));
string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamsStDetailList"; string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamsStDetailList";
var response = request.PostAsync(url, content);
var sutHomeWorkResult = response.Result.Content.ReadAsStringAsync().Result;
List<RB_Stu_HomeWork> list = new(); List<RB_Stu_HomeWork> list = new();
if (!string.IsNullOrWhiteSpace(sutHomeWorkResult)) try
{ {
JObject stuHomeRootObj = JObject.Parse(sutHomeWorkResult); var response = request.PostAsync(url, content);
if (!string.IsNullOrWhiteSpace(stuHomeRootObj.GetString("data"))) var sutHomeWorkResult = response.Result.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sutHomeWorkResult))
{ {
JObject stuHomeDataObj = JObject.Parse(stuHomeRootObj.GetString("data")); JObject stuHomeRootObj = JObject.Parse(sutHomeWorkResult);
if (!string.IsNullOrWhiteSpace(stuHomeDataObj.GetString("examsData"))) if (!string.IsNullOrWhiteSpace(stuHomeRootObj.GetString("data")))
{ {
JArray stuHomeArray = JArray.Parse(stuHomeDataObj.GetString("examsData")); JObject stuHomeDataObj = JObject.Parse(stuHomeRootObj.GetString("data"));
if (stuHomeArray != null && stuHomeArray.Count > 0) if (!string.IsNullOrWhiteSpace(stuHomeDataObj.GetString("examsData")))
{ {
foreach (var rootItem in stuHomeArray) JArray stuHomeArray = JArray.Parse(stuHomeDataObj.GetString("examsData"));
if (stuHomeArray != null && stuHomeArray.Count > 0)
{ {
JObject stuItemObj = JObject.Parse(rootItem.ToString()); foreach (var rootItem in stuHomeArray)
if (!string.IsNullOrWhiteSpace(stuItemObj.GetString("studentsDetail")))
{ {
JArray stuListArray = JArray.Parse(stuItemObj.GetString("studentsDetail")); JObject stuItemObj = JObject.Parse(rootItem.ToString());
if (stuListArray != null && stuListArray.Count > 0) if (!string.IsNullOrWhiteSpace(stuItemObj.GetString("studentsDetail")))
{ {
foreach (var sItem in stuListArray) JArray stuListArray = JArray.Parse(stuItemObj.GetString("studentsDetail"));
if (stuListArray != null && stuListArray.Count > 0)
{ {
JObject lastObj = JObject.Parse(sItem.ToString()); foreach (var sItem in stuListArray)
var tempCream = lastObj.GetString("scoreRate").Replace("%", "");
tempCream = tempCream == "-" ? "0" : tempCream;
var tempStatus = lastObj.GetInt("stStatus");
tempStatus = tempStatus == 0 ? 0 : (tempStatus == 6 ? 2 : 1);
list.Add(new RB_Stu_HomeWork()
{ {
stu_homework_id = Int64.Parse($"{homework_id}{lastObj.GetInt("studentId")}"), JObject lastObj = JObject.Parse(sItem.ToString());
admire = string.Empty, var tempCream = lastObj.GetString("scoreRate").Replace("%", "");
cancel = string.Empty, tempCream = tempCream == "-" ? "0" : tempCream;
correct = lastObj.GetDecimal("correctSum"), var tempStatus = lastObj.GetInt("stStatus");
wrong = lastObj.GetInt("mistakeSum"), tempStatus = tempStatus == 0 ? 0 : (tempStatus == 6 ? 2 : 1);
course_id = courseId, list.Add(new RB_Stu_HomeWork()
is_cream = Convert.ToDecimal(tempCream)>=80?1:0, {
emend = 0, stu_homework_id = Int64.Parse($"{homework_id}{lastObj.GetInt("studentId")}"),
homework_id = homework_id, admire = string.Empty,
homework_share_key = string.Empty, cancel = string.Empty,
is_draft = 0, correct = lastObj.GetDecimal("correctSum"),
is_reform = 0, wrong = lastObj.GetInt("mistakeSum"),
is_revised = 1, course_id = courseId,
is_startd = 1, is_cream = Convert.ToDecimal(tempCream) >= 80 ? 1 : 0,
readover = string.Empty, emend = 0,
ref_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")), homework_id = homework_id,
comment = string.Empty, homework_share_key = string.Empty,
reform = string.Empty, is_draft = 0,
school_uid = 0, is_reform = 0,
score = lastObj.GetDecimal("examScore")/100, is_revised = 1,
score_p = Convert.ToDecimal(tempCream)/100, is_startd = 1,
score_type = 5, readover = string.Empty,
show_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")), ref_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")),
status = tempStatus, comment = string.Empty,
stu_homework_share_key = string.Empty, reform = string.Empty,
student_account = lastObj.GetString("studentAccount"), school_uid = 0,
student_name = lastObj.GetString("studentName"), score = lastObj.GetDecimal("examScore") / 100,
student_uid = lastObj.GetInt("studentId"), score_p = Convert.ToDecimal(tempCream) / 100,
th_account = m.Teacher_account, score_type = 5,
th_cancel = String.Empty, show_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")),
th_name = m.Teacher_name, status = tempStatus,
th_num = 1, stu_homework_share_key = string.Empty,
th_time = DateTime.Now, student_account = lastObj.GetString("studentAccount"),
th_uid = m.Teacher_uid, student_name = lastObj.GetString("studentName"),
add_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")), student_uid = lastObj.GetInt("studentId"),
update_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")), th_account = m.Teacher_account,
}); th_cancel = String.Empty,
th_name = m.Teacher_name,
th_num = 1,
th_time = DateTime.Now,
th_uid = m.Teacher_uid,
add_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")),
update_time = ConvertHelper.UnixToDateTime(lastObj.GetInt("endTime")),
});
}
} }
} }
} }
...@@ -291,6 +308,10 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -291,6 +308,10 @@ namespace EduSpider.Spiders.ClassInRule
} }
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("QuestionManager_RunStuHomeWork", ex: ex);
}
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
stuHomeWorkRepository.BatchSetStuHomeWorkRepository(list); stuHomeWorkRepository.BatchSetStuHomeWorkRepository(list);
......
...@@ -18,10 +18,14 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -18,10 +18,14 @@ namespace EduSpider.Spiders.ClassInRule
private static readonly IStudentRepository courseRepository = new StudentRepository(); private static readonly IStudentRepository courseRepository = new StudentRepository();
/// <summary>
/// 获取学生数据
/// </summary>
/// <param name="cookie"></param>
public static async void RunAsync(string cookie) public static async void RunAsync(string cookie)
{ {
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
int pageIndex = 1, pageCount = 1, pageSize=500; int pageIndex = 1, pageCount = 1, pageSize = 500;
#region 获取最大学生ID #region 获取最大学生ID
//更新账户 //更新账户
...@@ -31,78 +35,81 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -31,78 +35,81 @@ namespace EduSpider.Spiders.ClassInRule
List<rb_account_hk> accountList = new(); List<rb_account_hk> accountList = new();
#endregion #endregion
while (pageIndex <= pageCount) while (pageIndex <= pageCount)
{ {
InfoHelper.WriteLine($"正在查询第{pageIndex}-{pageSize}页学员信息"); InfoHelper.WriteLine($"正在查询第{pageIndex}-{pageSize}页学员信息");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在查询第{pageIndex}-{pageSize}页学员信息"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在查询第{pageIndex}-{pageSize}页学员信息");
var paramStr = $"page={pageIndex}&perpage={pageSize}&isdel=0"; var paramStr = $"page={pageIndex}&perpage={pageSize}&isdel=0";
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var response = await request.PostAsync("https://console.eeo.cn/saasajax/student.ajax.php?action=getSchoolStudentListByPage", content); try
var resultStr = response.Content.ReadAsStringAsync().Result ?? string.Empty;
var result = resultStr.TryToJObject();
if (result.flag)
{ {
var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject; var response = await request.PostAsync("https://console.eeo.cn/saasajax/student.ajax.php?action=getSchoolStudentListByPage", content);
if (data.ContainsKey("totalStudentNum")) { var resultStr = response.Content.ReadAsStringAsync().Result ?? string.Empty;
var result = resultStr.TryToJObject();
#region 更新PageCount if (result.flag)
{
if (pageIndex == 1) var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject;
if (data.ContainsKey("totalStudentNum"))
{ {
pageCount = (int)Math.Ceiling(data.GetDecimal("totalStudentNum") / pageSize); #region 更新PageCount
} if (pageIndex == 1)
#endregion
#region 组装实体
var stus = new List<rb_student_hk>();
var stuArray = (data["studentList"] as JArray);
foreach (JObject x in stuArray)
{
stus.Add(new rb_student_hk()
{ {
AddTime = ConvertHelper.UnixToDateTime(x.GetString("addTime")), pageCount = (int)Math.Ceiling(data.GetDecimal("totalStudentNum") / pageSize);
StudentAccount=x.GetString("studentAccount"), }
Isdel= x.GetInt("isdel",0), #endregion
IsGroup = x.GetInt("isGroup", 0),
StudId = x.GetInt("studId", 0),
Progress = x.GetString("progress"),
PublicResourceStatus = x.GetInt("publicResourceStatus", 0),
ServeState = x.GetInt("serveState", 0),
StudentName = x.GetString("studentName"),
StudentUid = x.GetInt("studentUid", 0),
Stuno = x.GetString("stuno"),
});
}
courseRepository.BatchSetStudent(stus);
InfoHelper.WriteLine($"已导入第{pageIndex}-{pageSize}页学员信息");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"已导入第{pageIndex}-{pageSize}页学员信息");
#endregion
#region 写入账号 #region 组装实体
if (stus.Any(x => x.StudId > MaxStuId)) { var stus = new List<rb_student_hk>();
foreach (var item in stus.Where(x => x.StudId > MaxStuId)) var stuArray = (data["studentList"] as JArray);
foreach (JObject x in stuArray)
{ {
accountList.Add(new rb_account_hk() stus.Add(new rb_student_hk()
{ {
UniqueId = 0, AddTime = ConvertHelper.UnixToDateTime(x.GetString("addTime")),
Id = item.StudId, StudentAccount = x.GetString("studentAccount"),
Account = item.StudentAccount, Isdel = x.GetInt("isdel", 0),
AccountId = item.StudentUid, IsGroup = x.GetInt("isGroup", 0),
AccountType = Utility.Enum.AccountTypeEnum.Student, StudId = x.GetInt("studId", 0),
OpenId = "", Progress = x.GetString("progress"),
Password = DESHepler.Encrypt(item.StudentAccount[^6..]), PublicResourceStatus = x.GetInt("publicResourceStatus", 0),
Status = 0, ServeState = x.GetInt("serveState", 0),
UnionId = "" StudentName = x.GetString("studentName"),
StudentUid = x.GetInt("studentUid", 0),
Stuno = x.GetString("stuno"),
}); });
} }
courseRepository.BatchSetStudent(stus);
InfoHelper.WriteLine($"已导入第{pageIndex}-{pageSize}页学员信息");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"已导入第{pageIndex}-{pageSize}页学员信息");
#endregion
#region 写入账号
if (stus.Any(x => x.StudId > MaxStuId))
{
foreach (var item in stus.Where(x => x.StudId > MaxStuId))
{
accountList.Add(new rb_account_hk()
{
UniqueId = 0,
Id = item.StudId,
Account = item.StudentAccount,
AccountId = item.StudentUid,
AccountType = Utility.Enum.AccountTypeEnum.Student,
OpenId = "",
Password = DESHepler.Encrypt(item.StudentAccount[^6..]),
Status = 0,
UnionId = ""
});
}
}
#endregion
} }
#endregion
} }
} }
catch (Exception ex)
{
VTX.FW.Helper.LogHelper.WriteError("StudentManager_RunAsync", ex: ex);
}
pageIndex++; pageIndex++;
} }
...@@ -115,8 +122,6 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -115,8 +122,6 @@ namespace EduSpider.Spiders.ClassInRule
InfoHelper.WriteLine("学员同步完成"); InfoHelper.WriteLine("学员同步完成");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"学员同步完成"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"学员同步完成");
} }
} }
} }
...@@ -29,39 +29,45 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -29,39 +29,45 @@ namespace EduSpider.Spiders.ClassInRule
{ {
string paramStr = string.Format("page={0}&perpage={1}", pageIndex, perpage); string paramStr = string.Format("page={0}&perpage={1}", pageIndex, perpage);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var response = await request.PostAsync("https://console.eeo.cn/saasajax/teacher.ajax.php?action=getSchoolTeacherFullList", content); try
var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(result))
{ {
VTX.FW.Helper.LogHelper.WriteInfo("RunTeacher", $"result: {result}"); var response = await request.PostAsync("https://console.eeo.cn/saasajax/teacher.ajax.php?action=getSchoolTeacherFullList", content);
JObject rootObj = JObject.Parse(result); var result = response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data"))) if (!string.IsNullOrWhiteSpace(result))
{ {
JObject dataObj = JObject.Parse(rootObj.GetString("data")); VTX.FW.Helper.LogHelper.WriteInfo("RunTeacher", $"result: {result}");
var totalNum = dataObj.GetInt("totalNum"); JObject rootObj = JObject.Parse(result);
string rlist = dataObj.GetString("list"); if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
if (pageIndex == 1)
{ {
if (totalNum > perpage) JObject dataObj = JObject.Parse(rootObj.GetString("data"));
var totalNum = dataObj.GetInt("totalNum");
string rlist = dataObj.GetString("list");
if (pageIndex == 1)
{ {
if (totalNum % perpage == 0) if (totalNum > perpage)
{ {
pageCount = totalNum / perpage; if (totalNum % perpage == 0)
} {
else pageCount = totalNum / perpage;
{ }
pageCount = (totalNum / perpage) + 1; else
{
pageCount = (totalNum / perpage) + 1;
}
} }
} }
list.AddRange(ParseJson(rlist));
} }
}
list.AddRange(ParseJson(rlist)); else
{
Console.WriteLine("result", result);
VTX.FW.Helper.LogHelper.WriteInfo("RunTeacher", $"result: {result}");
} }
} }
else catch (Exception ex)
{ {
Console.WriteLine("result", result); VTX.FW.Helper.LogHelper.WriteError("RunTeacher",ex:ex);
VTX.FW.Helper.LogHelper.WriteInfo("RunTeacher", $"result: {result}");
} }
if (pageIndex == pageCount) if (pageIndex == pageCount)
{ {
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TicketSpider.Spiders
{
public interface ICookiesManager
{
}
}
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