Commit 2c817811 authored by 黄奎's avatar 黄奎

页面修改

parent 7448104f
......@@ -4,3 +4,4 @@ obj/
EduSpider.WebApi/EduSpider.WebApi.csproj.user
EduSpider.WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
EduSpider/EduSpider.csproj.user
EduSpider.WebApi/Properties/PublishProfiles/FolderProfile.pubxml
......@@ -25,6 +25,13 @@ namespace EduSpider.Repository
/// <returns></returns>
public bool BatchSetCourseOtherRepository(List<rb_course_hk> courses);
/// <summary>
/// 批量修改录树
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchSetCourseRecordNumRepository(List<rb_course_hk> courses);
/// <summary>
/// 获取课程分页列表
/// </summary>
......
......@@ -19,6 +19,13 @@ namespace EduSpider.Repository
/// <returns></returns>
public bool BatchSetCourseStudentRepository(List<RB_Course_Student> courses);
/// <summary>
/// 批量删除课程学员
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchDeleteCourseStudentRepository(List<RB_Course_Student> courses);
/// <summary>
/// 跟进查询条件获取课程学员列表
......
......@@ -45,6 +45,26 @@ WHERE courseId=@courseId ";
return Execute(sql, parameters) > 0;
}
/// <summary>
/// 批量修改其他字段
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchSetCourseRecordNumRepository(List<rb_course_hk> courses)
{
var parameters = new DynamicParameters();
string sql = @"
UPDATE rb_course_hk
SET RecordNum=@RecordNum
WHERE courseId=@courseId ";
parameters.Add("RecordNum", courses[0].RecordNum);
parameters.Add("courseId", courses[0].CourseId);
return Execute(sql, parameters) > 0;
}
/// <summary>
/// 获取课程列表
/// </summary>
......
......@@ -26,6 +26,19 @@ namespace EduSpider.Repository
return flag;
}
/// <summary>
/// 批量删除课程学员
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchDeleteCourseStudentRepository(List<RB_Course_Student> courses)
{
string sql = string.Format("DELETE FROM RB_Course_Student WHERE courseId IN({0}) ", string.Join(",", courses.Select(qitem => qitem.courseId)));
return base.Execute(sql) > 0;
}
/// <summary>
/// 跟进查询条件获取课程学员列表
/// </summary>
......
using EduSpider.Utility.Plugin;
using OpenCvSharp;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Support.UI;
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Http;
......@@ -83,12 +81,11 @@ namespace TicketSpider.Spiders.ClassInRule
//google隐身模式
//option.AddArgument("headless");
//火狐隐身模式
//option.AddArgument("--headless");
option.AddArgument("--headless");
//option.AddArgument("--disable-gpu");
// option.AddArgument("ingore-certificate-errors");
}
option.AddArgument("--headless");
option.AddArgument("--disable-infobars");
option.AddArgument("window-size=1920*1080");
// option.AddArgument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0");
......@@ -131,7 +128,7 @@ namespace TicketSpider.Spiders.ClassInRule
//开始登录
buttonEle.Click();
//开始模拟登录
for (var loginCount = 0; loginCount <= 4; loginCount++)
for (var loginCount = 0; loginCount <= 3; loginCount++)
{
InfoHelper.WriteLine($"正在进行第{loginCount}次模拟登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在进行第{loginCount}次模拟登录...");
......
......@@ -5,10 +5,12 @@ using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Web;
using VTX.FW.Helper;
namespace EduSpider.Spiders.ClassInRule
......@@ -23,7 +25,7 @@ namespace EduSpider.Spiders.ClassInRule
/// </summary>
public static async void RunCourse(string cookie)
{
int perpage = 20;
int perpage = 200;
var pageCount = 1;
var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = "page={0}&perpage={1}";
......@@ -54,6 +56,7 @@ namespace EduSpider.Spiders.ClassInRule
RunCourseStudent(cookie, item.CourseId);
RunCourseTeacher(cookie, item.CourseId);
RunCourseInfo(cookie, item.CourseId);
GetCourseLessionList(cookie, item);
}
}
if (totalNum % perpage == 0)
......@@ -89,6 +92,7 @@ namespace EduSpider.Spiders.ClassInRule
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));
......@@ -129,7 +133,7 @@ namespace EduSpider.Spiders.ClassInRule
TotalClassNum = courseObj.GetInt("totalClassNum"),
ExpiryTime = expiryTime,
LiveNum = courseObj.GetInt("liveNum"),
RecordNum = courseObj.GetInt("recordNum"),
RecordNum = 0,
OpenNum = courseObj.GetInt("openNum"),
StudentNum = courseObj.GetInt("studentNum"),
AuditNum = courseObj.GetInt("auditNum"),
......@@ -142,7 +146,7 @@ namespace EduSpider.Spiders.ClassInRule
TeacherName = courseObj.GetString("teacherName"),
TeacherLogo = courseObj.GetString("teacherLogo"),
CourseType = courseObj.GetInt("courseType"),
}); ;
});
}
}
return list;
......@@ -156,6 +160,10 @@ namespace EduSpider.Spiders.ClassInRule
{
var request = Utility.HttpHelper.GenerateHttp(cookie);
string queryStr = "courseId={0}";
if (courseId == 211441479)
{
string str = "";
}
string paramStr = string.Format(queryStr, courseId);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseStudentRepository courseStudentRepository = new CourseStudentRepository();
......@@ -177,6 +185,9 @@ namespace EduSpider.Spiders.ClassInRule
foreach (var jItem in courseStudentArray)
{
JObject courseStuObj = JObject.Parse(jItem.ToString());
string deleteCourseStudentReplay = courseStuObj.GetString("deleteCourseStudentReplay");
if (deleteCourseStudentReplay != "0")
{
list.Add(new RB_Course_Student()
{
id = courseStuObj.GetInt("id"),
......@@ -190,8 +201,10 @@ namespace EduSpider.Spiders.ClassInRule
}
}
}
}
if (list != null && list.Count > 0)
{
courseStudentRepository.BatchDeleteCourseStudentRepository(list);
courseStudentRepository.BatchSetCourseStudentRepository(list);
}
}
......@@ -291,13 +304,13 @@ namespace EduSpider.Spiders.ClassInRule
TotalClassNum = courseObj.GetInt("totalClassNum"),
ExpiryTime = expiryTime,
LiveNum = courseObj.GetInt("liveNum"),
RecordNum = courseObj.GetInt("recordNum"),
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("webCast"),
WebCast = courseObj.GetString("webCastUrl"),
TeacherId = courseObj.GetInt("teacherId"),
TeacherAccount = courseObj.GetString("teacherAccount"),
TeacherUid = courseObj.GetInt("teacherUid"),
......@@ -307,6 +320,7 @@ namespace EduSpider.Spiders.ClassInRule
AddTime = ConvertHelper.UnixToDateTime(courseObj.GetInt("addTime")),
CourseWare = courseObj.GetString("courseWare"),
};
string tempCoverImg = courseObj.GetString("coverImg");
string coverImg = "";
if (!string.IsNullOrWhiteSpace(tempCoverImg))
......@@ -347,5 +361,104 @@ namespace EduSpider.Spiders.ClassInRule
courseTeacherRepository.BatchSetCourseTeacherRepository(teacherList);
}
}
/// <summary>
/// 获取课程章节
/// </summary>
/// <param name="cookie"></param>
/// <param name="cItem"></param>
public static async void GetCourseLessionList(string cookie, rb_course_hk cItem)
{
InfoHelper.WriteLine(string.Format("开始获取{0}课程章节数据", cItem.CourseId));
ICourseRepository courseRepository = new CourseRepository();
List<rb_course_hk> list = new();
Uri uri = new Uri(cItem.WebCast);// 在这里用的Uri这个,如果直接打印出来uri,会将source后面的编码解密出来:"博汇数码"
string queryString = uri.Query;
NameValueCollection col = HttpUtility.ParseQueryString(uri.Query);
string searchKey = col["courseKey"];
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))
{
var rootObj = JObject.Parse(result);
if (rootObj.ContainsKey("data"))
{
JArray dataArray = JArray.Parse(rootObj["data"].ToString());
if (dataArray!=null && dataArray.Count>0 )
{
foreach (var sItem in dataArray)
{
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)
{
var resultList = new List<string>();
//var request2 = Utility.HttpHelper.GenerateHttp(cookie);
//string url2 = "https://live.eeo.cn/saasajax/webcast.ajax.php?action=getLessonWebcastData";
//foreach (var item in lessonKeyList)
//{
// string queryStr2 = $"lessonKey={item}&cookie=e52r4pMWa&account=18140082327&setCookie=83004edb2abaced372ea32ba905f22fb";
// var content2 = new StringContent(queryStr2, Encoding.UTF8, "application/x-www-form-urlencoded");
// var response2 = request2.PostAsync(url2, content2).Result;
// var result2 = response2.Content.ReadAsStringAsync().Result;
// if (!string.IsNullOrWhiteSpace(result2))
// {
// var rootObj = JObject.Parse(result2);
// if (rootObj.ContainsKey("data"))
// {
// var dataObj = JObject.Parse(rootObj["data"].ToString());
// if (dataObj.ContainsKey("lessonData"))
// {
// var array = dataObj["lessonData"].ToString().Contains("fileList") ? dataObj["lessonData"]["fileList"] as JArray : new JArray();
// foreach (JObject sitem in array)
// {
// var subArray = sitem["Playset"] as JArray;
// foreach (JObject subItem in subArray)
// {
// var videoUrl = subItem.GetString("Url");
// if (!string.IsNullOrEmpty(videoUrl))
// {
// resultList.Add(videoUrl);
// }
// }
// }
// }
// }
// }
//}
if (resultList != null && resultList.Count > 0)
{
}
rb_course_hk model = new rb_course_hk()
{
CourseId = cItem.CourseId,
RecordNum = lessonVodCount
};
list.Add(model);
}
if (list != null && list.Count > 0)
{
courseRepository.BatchSetCourseRecordNumRepository(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