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

页面修改

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