Commit fb19b747 authored by 罗超's avatar 罗超

调整

parent 3976aca0
...@@ -9,20 +9,17 @@ namespace EduSpider.Utility ...@@ -9,20 +9,17 @@ namespace EduSpider.Utility
{ {
public static class JObjectHelper public static class JObjectHelper
{ {
public static bool TryFromString(this JObject obj, string str) public static (bool flag,JObject val) TryToJObject(this string str)
{ {
var flag = true;
try try
{ {
obj = JObject.Parse(str); return (true, JObject.Parse(str));
} }
catch (Exception) catch (Exception)
{ {
flag = false; return (false, new JObject());
obj=new JObject();
} }
return flag;
} }
} }
} }
using EduSpider.Model.Entity; using EduSpider.IRepository;
using EduSpider.Model.Entity;
using EduSpider.Repository; using EduSpider.Repository;
using EduSpider.Utility; using EduSpider.Utility;
using Newtonsoft.Json; using Newtonsoft.Json;
...@@ -13,22 +14,27 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -13,22 +14,27 @@ namespace EduSpider.Spiders.ClassInRule
{ {
public class StudentManager public class StudentManager
{ {
private static readonly IStudentRepository courseRepository = new StudentRepository();
public async void RunAsync(string cookie) public async void RunAsync(string cookie)
{ {
var request = Utility.HttpHelper.GenerateHttp(cookie); var request = Utility.HttpHelper.GenerateHttp(cookie);
int pageIndex = 1, pageCount = 1, pageSize=10000; int pageIndex = 1, pageCount = 1, pageSize=500;
while (pageIndex <= pageCount) while (pageIndex <= pageCount)
{ {
Console.WriteLine($"正在查询第{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); 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 resultStr = response.Content.ReadAsStringAsync().Result ?? string.Empty;
var result = new JObject(); var result = resultStr.TryToJObject();
if (result.TryFromString(resultStr))
if (result.flag)
{ {
var data = (result.ContainsKey("data") ? result["data"] : new JObject()) as JObject; var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject;
if (data.ContainsKey("totalStudentNum")) { if (data.ContainsKey("totalStudentNum")) {
#region 更新PageCount #region 更新PageCount
...@@ -38,11 +44,38 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -38,11 +44,38 @@ namespace EduSpider.Spiders.ClassInRule
} }
#endregion #endregion
var students = JsonConvert.DeserializeObject<RB_Student>(data.GetString("studentList"));
#region 组装实体
var stus = new List<RB_Student>();
var stuArray = (data["studentList"] as JArray);
foreach (JObject x in stuArray)
{
stus.Add(new RB_Student()
{
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);
Console.WriteLine($"已导入第{pageIndex}-{pageSize}页学员信息");
#endregion
} }
} }
pageIndex++;
} }
Console.WriteLine("学员同步完成");
} }
} }
......
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