Commit af974ff8 authored by liudong1993's avatar liudong1993

1

parent 964984e9
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......
using EduSpider.Model.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Config;
using VTX.FW.DB;
namespace EduSpider.Repository
{
/// <summary>
/// 老师仓储接口
/// </summary>
public interface ITeacherRepository : IDBRepository<RB_Teacher>, IDependency
{
/// <summary>
/// 批量新增老师
/// </summary>
/// <param name="teachers"></param>
/// <returns></returns>
public bool BatchSetTeache(List<RB_Teacher> teachers);
}
}
......@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Config;
namespace EduSpider.IServices
{
/// <summary>
/// 老师服务层接口
/// </summary>
public interface ITeacherService : IDependency
{
}
}
......@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Attr;
namespace EduSpider.Model.Entity
{
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teacher
{
/// <summary>
/// TeacherId
/// </summary>
public int TeacherId { get; set; }
/// <summary>
/// uid
/// </summary>
public int TeacherUid { get; set; }
/// <summary>
/// 老师姓名
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 老师照片
/// </summary>
public string Logo { get; set; }
/// <summary>
/// 老师介绍
/// </summary>
public string Introduce { get; set; }
/// <summary>
/// 账号(手机号码)
/// </summary>
public string TeacherAccount { get; set; }
/// <summary>
/// 性别 1男 2女
/// </summary>
public int Sex { get; set; }
/// <summary>
/// 在职状态 0在职 1已停职
/// </summary>
public int Status { get; set; }
/// <summary>
/// IsGroup
/// </summary>
public int IsGroup { get; set; }
/// <summary>
/// 老师编号
/// </summary>
public string TeacherNo { get; set; }
/// <summary>
/// 位置
/// </summary>
public string Position { get; set; }
/// <summary>
/// 区域ID
/// </summary>
public int RegionId { get; set; }
/// <summary>
/// 公共授权资源
/// </summary>
public int PublicResourceStatus { get; set; }
/// <summary>
/// 个人授权资源
/// </summary>
public string ClientCreateCourse { get; set; }
/// <summary>
/// 标签
/// </summary>
public string TeacherLabels { get; set; }
/// <summary>
/// 课程进度
/// </summary>
public string Progress { get; set; }
}
}
......@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......
using EduSpider.Model.Entity;
using EduSpider.Repository.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EduSpider.Repository
{
/// <summary>
/// 老师仓储层
/// </summary>
public class TeacherRepository : BaseRepository<RB_Teacher>, ITeacherRepository
{
/// <summary>
/// 批量新增老师
/// </summary>
/// <param name="teachers"></param>
/// <returns></returns>
public bool BatchSetTeache(List<RB_Teacher> teachers)
{
return base.BatchInsert(teachers, isReplace: true);
}
}
}
......@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......

using EduSpider.IServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EduSpider.Services
{
/// <summary>
/// 老师服务实现
/// </summary>
public class TeacherService : ITeacherService
{
}
}
......@@ -6,7 +6,7 @@
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
</Project>
......@@ -15,7 +15,7 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="SqlSugarCore" Version="5.0.8.3" />
<PackageReference Include="StackExchange.Redis" Version="2.0.601" />
<PackageReference Include="VTX.FW" Version="1.0.0" />
<PackageReference Include="VTX.FW" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
......
......@@ -23,10 +23,10 @@ namespace TicketSpider.Spiders.ClassInRule
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("开始获取学员信息");
new StudentManager().RunAsync(loginCookies);
Console.WriteLine("开始获取老师信息");
//new StudentManager().RunAsync(loginCookies);
//new StudentManager().RunCourse(loginCookies);
new TeacherManager().RunTeacher(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 TeacherManager
{
/// <summary>
/// 获取老师列表
/// </summary>
public async void RunTeacher(string cookie)
{
int perpage = 20, pageIndex = 1, pageCount = 1;
var request = Utility.HttpHelper.GenerateHttp(cookie);
List<RB_Teacher> list = new();
while (true) {
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))
{
JObject rootObj = JObject.Parse(result);
if (!string.IsNullOrWhiteSpace(rootObj.GetString("data")))
{
JObject dataObj = JObject.Parse(rootObj.GetString("data"));
var totalNum = dataObj.GetInt("totalNum");
string rlist = dataObj.GetString("list");
if (pageIndex == 1)
{
if (totalNum > perpage)
{
if (totalNum % perpage == 0)
{
pageCount = totalNum / perpage;
}
else
{
pageCount = (totalNum / perpage) + 1;
}
}
}
list.AddRange(ParseJson(rlist));
}
}
else
{
Console.WriteLine("result", result);
}
if (pageIndex == pageCount) {
break;
}
pageIndex++;
}
ITeacherRepository teacherRepository = new TeacherRepository();
teacherRepository.BatchSetTeache(list.OrderBy(x => x.TeacherId).ToList());
}
/// <summary>
/// 数据转换
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static List<RB_Teacher> ParseJson(string data)
{
List<RB_Teacher> list = new();
JArray courseArray = JArray.Parse(data);
if (courseArray != null && courseArray.Count > 0)
{
foreach (var jItem in courseArray)
{
JObject rObj = JObject.Parse(jItem.ToString());
string Logo = rObj.GetString("logo");
if (!string.IsNullOrEmpty(Logo)) {
Logo = "https://console.eeo.cn/upload/images/" + Logo;
}
list.Add(new RB_Teacher()
{
TeacherId = rObj.GetInt("id"),
TeacherUid = rObj.GetInt("uid"),
Introduce = rObj.GetString("introduce"),
IsGroup = rObj.GetInt("isGroup"),
Logo = Logo,
Sex = rObj.GetInt("sex"),
Status = rObj.GetInt("status"),
TeacherAccount = rObj.GetString("account"),
TeacherName = rObj.GetString("name"),
TeacherNo = rObj.GetString("empno"),
Position = rObj.GetString("position"),
RegionId = rObj.GetInt("regionId"),
PublicResourceStatus = rObj.GetInt("publicResourceStatus"),
ClientCreateCourse = rObj.GetString("clientCreateCourse"),
TeacherLabels = rObj.GetString("teacherLabels"),
Progress = rObj.GetString("progress")
});
}
}
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