Commit d1b92aa1 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/viitto/eduspider

# Conflicts:
#	EduSpider.Repository/StudentRepository.cs
#	EduSpider/Spiders/ClassInRule/StudentManager.cs
parents 2c25c30a 964984e9
...@@ -8,4 +8,8 @@ ...@@ -8,4 +8,8 @@
<PackageReference Include="VTX.FW" Version="1.0.0" /> <PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.Utility\EduSpider.Utility.csproj" />
</ItemGroup>
</Project> </Project>
using EduSpider.Utility.Enum;
using System;
using VTX.FW.Attr;
namespace EduSpider.Model.Entity
{
/// <summary>
/// 课程实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Course
{
/// <summary>
/// 课程编号
/// </summary>
public int courseId { get; set; }
/// <summary>
/// 课程名称
/// </summary>
public string courseName { get; set; }
/// <summary>
/// 首次课日期
/// </summary>
public DateTime? beginTime { get; set; }
/// <summary>
/// 完成次数
/// </summary>
public int? completeNum { get; set; }
/// <summary>
/// 总次数
/// </summary>
public int? totalClassNum { get; set; }
/// <summary>
/// 有效日期
/// </summary>
public DateTime? expiryTime { get; set; }
/// <summary>
/// 直播数
/// </summary>
public int? liveNum { get; set; }
/// <summary>
/// 录课数
/// </summary>
public int? recordNum { get; set; }
/// <summary>
/// 回放数
/// </summary>
public int? openNum { get; set; }
/// <summary>
/// 学生数
/// </summary>
public int? studentNum { get; set; }
/// <summary>
/// 旁听数
/// </summary>
public int? auditNum { get; set; }
/// <summary>
/// 教师数
/// </summary>
public int? teacherNum { get; set; }
/// <summary>
/// 课程状态(未结课,课程进度未完成,已结课)
/// </summary>
public CourseStatusEnum courseStatus { get; set; }
/// <summary>
/// 回放地址
/// </summary>
public string webCast { get; set; }
/// <summary>
/// 班主任编号
/// </summary>
public int? teacherId { get; set; }
/// <summary>
/// 班主任账号
/// </summary>
public string teacherAccount { get; set; }
/// <summary>
/// 班主任账号Id
/// </summary>
public int? teacherUid { get; set; }
/// <summary>
/// 班主任姓名
/// </summary>
public string teacherName { get; set; }
/// <summary>
/// 班主任头像
/// </summary>
public string teacherLogo { get; set; }
/// <summary>
/// 课程类型(1-标准课,公开课)
/// </summary>
public CourseTypeEnum courseType { get; set; }
}
}
using System; using VTX.FW.Attr;
using VTX.FW.Attr;
namespace EduSpider.Model.Entity namespace EduSpider.Utility.Enum
{ {
/// <summary> /// <summary>
/// 课程实体类 /// 课程状态
/// </summary> /// </summary>
[Serializable] public enum CourseStatusEnum
[DB(ConnectionName = "DefaultConnection")]
public class RB_Course
{ {
/// <summary> /// <summary>
/// 课程编号 /// 未结课
/// </summary> /// </summary>
public int courseId { get; set; } [EnumField("未结课")]
NotFinish = 1,
/// <summary> /// <summary>
/// 课程名称 /// 已结课
/// </summary> /// </summary>
public string courseName { get; set; } [EnumField("已结课")]
Finished =2,
/// <summary> /// <summary>
/// 开始时间 /// 课程进度未完成
/// </summary> /// </summary>
public int beginTime { get; set; } [EnumField("课程进度未完成")]
NotSchedule =3,
} }
} }
using VTX.FW.Attr;
namespace EduSpider.Utility.Enum
{
/// <summary>
/// 课程类型枚举
/// </summary>
public enum CourseTypeEnum
{
/// <summary>
/// 标准课
/// </summary>
[EnumField("标准课")]
StandardClass = 1,
/// <summary>
/// 公开课
/// </summary>
[EnumField("公开课")]
PublicClass = 2,
}
}
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<PackageReference Include="SqlSugarCore" Version="5.0.8.3" /> <PackageReference Include="SqlSugarCore" Version="5.0.8.3" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.3" /> <PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
<PackageReference Include="System.Drawing.Common" Version="6.0.0" /> <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
<PackageReference Include="VTX.FW" Version="1.0.0" /> <PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
...@@ -10,8 +10,8 @@ namespace EduSpider ...@@ -10,8 +10,8 @@ namespace EduSpider
static void Main(string[] args) static void Main(string[] args)
{ {
ThreadPool.SetMaxThreads(255, 255); //ThreadPool.SetMaxThreads(255, 255);
ThreadPool.SetMinThreads(255, 255); //ThreadPool.SetMinThreads(255, 255);
new ClassInFlow().StartAsync(); new ClassInFlow().StartAsync();
......
...@@ -18,7 +18,11 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -18,7 +18,11 @@ namespace TicketSpider.Spiders.ClassInRule
public async void StartAsync() public async void StartAsync()
{ {
Console.WriteLine("开始模拟登录信息......."); Console.WriteLine("开始模拟登录信息.......");
string loginCookies = ClassInAccountManager.GetInstance(); string loginCookies = "";
//loginCookies= ClassInAccountManager.GetInstance();
loginCookies = "_eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=%2Fupload%2Fimages%2F20200126%2F709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_remember=1; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu%2BU2EFgLpSGyg%3D%3D; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2212780052%22%2C%22first_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%7D; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhFOuRmo3R6CQ5GeSsJx1IEakyt2K%2B3ifco%3D; PHPSESSID=3etqs18ka2s425omq6uqsus8s2; __tk_id=7a20b97a04709afc3137ec211e756d5f";
Console.WriteLine("开始获取学员信息"); Console.WriteLine("开始获取学员信息");
new StudentManager().RunAsync(loginCookies); new StudentManager().RunAsync(loginCookies);
//new StudentManager().RunCourse(loginCookies); //new StudentManager().RunCourse(loginCookies);
......
using EduSpider.Model.Entity;
using EduSpider.Repository;
using EduSpider.Utility.Enum;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using VTX.FW.Helper;
namespace EduSpider.Spiders.ClassInRule
{
/// <summary>
/// 课程关联
/// </summary>
public class CourseManager
{
/// <summary>
/// 获取课程列表
/// </summary>
public async void RunCourse(string cookie)
{
int perpage = 20;
var request = Utility.HttpHelper.GenerateHttp(cookie);
string paramStr = string.Format("page={0}&perpage={1}&courseState=1", "1", 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/course.ajax.php?action=getCourseList", content);
var result = response.Content.ReadAsStringAsync().Result;
List<RB_Course> list = new();
if (!string.IsNullOrWhiteSpace(result))
{
JObject rootObj = JObject.Parse(result);
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
{
JObject dataObj = JObject.Parse(rootObj.GetString("data"));
var totalNum = dataObj.GetInt("totalCourseNum");
var pageCount = 1;
if (totalNum % perpage == 0)
{
pageCount = totalNum % perpage;
}
else
{
pageCount = totalNum % perpage + 1;
}
if (totalNum > perpage)
{
}
}
}
ICourseRepository courseRepository = new CourseRepository();
courseRepository.BatchSetCourse(list);
Console.WriteLine("result", result);
}
public List<RB_Course> ParseJson(string data)
{
//dataObj.GetString("courseList")
List<RB_Course> list = new List<RB_Course>();
JArray courseArray = JArray.Parse(data);
if (courseArray != null && courseArray.Count > 0)
{
foreach (var jItem in courseArray)
{
JObject courseObj = JObject.Parse(jItem.ToString());
list.Add(new RB_Course()
{
courseId = courseObj.GetInt("courseId"),
courseName = courseObj.GetString("courseName"),
beginTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("beginTime")),
completeNum = courseObj.GetInt("completeNum"),
totalClassNum = courseObj.GetInt("totalClassNum"),
expiryTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("expiryTime")),
liveNum = courseObj.GetInt("liveNum"),
recordNum = courseObj.GetInt("recordNum"),
openNum = courseObj.GetInt("openNum"),
studentNum = courseObj.GetInt("studentNum"),
auditNum = courseObj.GetInt("auditNum"),
teacherNum = courseObj.GetInt("teacherNum"),
courseStatus = (CourseStatusEnum)courseObj.GetInt("courseStatus"),
webCast = courseObj.GetString("webCast"),
teacherId = courseObj.GetInt("teacherId"),
teacherAccount = courseObj.GetString("teacherAccount"),
teacherUid = courseObj.GetInt("teacherUid"),
teacherName = courseObj.GetString("teacherName"),
teacherLogo = courseObj.GetString("teacherLogo"),
courseType = (CourseTypeEnum)courseObj.GetInt("courseType"),
}); ;
}
}
return list;
}
}
}
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