Commit 900aff4d authored by liudong1993's avatar liudong1993
parents 52e0f11c 42fffb76
using EduSpider.Model.Entity; using EduSpider.Model.Entity;
using EduSpider.Model.Extend;
using EduSpider.Model.Query;
using System.Collections.Generic; using System.Collections.Generic;
using VTX.FW.Config; using VTX.FW.Config;
using VTX.FW.DB; using VTX.FW.DB;
using System.Text;
using System.Linq;
using EduSpider.Model.Query;
using EduSpider.Model.Extend;
namespace EduSpider.IRepository namespace EduSpider.IRepository
{ {
...@@ -21,6 +19,13 @@ namespace EduSpider.IRepository ...@@ -21,6 +19,13 @@ namespace EduSpider.IRepository
/// <returns></returns> /// <returns></returns>
public bool BatchSetStuHomeWorkRepository(List<RB_Stu_HomeWork> homeWorks); public bool BatchSetStuHomeWorkRepository(List<RB_Stu_HomeWork> homeWorks);
/// <summary>
/// 创建课程作业评论
/// </summary>
/// <param name="CourseId">课程编号</param>
/// <returns></returns>
public List<ExamWorkResult> CreateHomeWorkCommentRepository(int CourseId);
/// <summary> /// <summary>
/// 获取学生作业列表 /// 获取学生作业列表
/// </summary> /// </summary>
......
...@@ -130,5 +130,12 @@ namespace EduSpider.IServices ...@@ -130,5 +130,12 @@ namespace EduSpider.IServices
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public List<RB_Comment> GetSysComment(); public List<RB_Comment> GetSysComment();
/// <summary>
/// 创建课程作业评论
/// </summary>
/// <param name="CourseId">课程编号</param>
/// <returns></returns>
public void CreateHomeWorkComment(int CourseId);
} }
} }
...@@ -115,7 +115,7 @@ namespace EduSpider.Model.Extend ...@@ -115,7 +115,7 @@ namespace EduSpider.Model.Extend
string str = ""; string str = "";
switch (this.HomeWorkStatus) switch (this.HomeWorkStatus)
{ {
case 0: str = "未交作业"; break; case 0: str = "未提交"; break;
case 1: str = "未批阅"; break; case 1: str = "未批阅"; break;
case 2: str = "已批阅"; break; case 2: str = "已批阅"; break;
} }
......
...@@ -79,6 +79,158 @@ WHERE 1=1 ...@@ -79,6 +79,158 @@ WHERE 1=1
return dataList; return dataList;
} }
/// <summary>
/// 创建课程作业评论
/// </summary>
/// <param name="CourseId">课程编号</param>
/// <returns></returns>
public List<ExamWorkResult> CreateHomeWorkCommentRepository(int CourseId)
{
List<ExamWorkResult> list = new();
var dataList = GetStuHomeWorkDetailsListRepository(new CourseQuery() { CourseId = CourseId });
var courseList = dataList.GroupBy(qitem => new { qitem.course_id }).Select(qitem=>new {qitem.Key.course_id });
if (courseList != null && courseList.Count() > 0)
{
foreach (var cItem in courseList)
{
var stuList = dataList.Where(qitem => qitem.course_id == cItem.course_id).GroupBy(qitem => new { qitem.student_uid }).Select(qitem => new{ qitem.Key.student_uid});
//课程配置评论列表
var courseCommentModel = courseCommentRepository.GetCourseCommentListRepository(new CourseQuery() { QCourseIds = cItem.course_id.ToString() }).FirstOrDefault();
foreach (var sItem in stuList)
{
List<ExamWorkResult> homeWorkList = new();
//学员评论列表
var commentList = stuCommentRepository.GetStuCommentListRepository(new CourseQuery() { CourseId = cItem.course_id, StuIds = sItem.student_uid.ToString() });
var tempDataList = dataList.Where(qitem => qitem.course_id == cItem.course_id && qitem.student_uid == sItem.student_uid).ToList();
if (tempDataList != null && tempDataList.Count > 0)
{
int RowNum = 1;
foreach (var item in tempDataList)
{
homeWorkList.Add(new ExamWorkResult()
{
RowNum = RowNum,
CreateTime = item.add_time,
ResultType = 1,
Title = item.Homework_title,
Score = item.score,
Score_p = item.score_p,
ScoreType = item.score_type,
Score_Value = item.Score_value,
HomeWorkStatus = item.status,
ThName = item.th_name,
Stu_HomeWork_Id = item.stu_homework_id,
});
RowNum++;
}
}
string info;
if (homeWorkList != null && homeWorkList.Count > 0)
{
//第一次评价
if (homeWorkList.Count >= 5)
{
var firstList = homeWorkList.Where(qitem => qitem.RowNum <= 5).ToList();
var firstFlag = firstList.Where(qitem => qitem.HomeWorkStatus == 0).Any();
//第一阶段有未提交的作业就不生成系统评价
if (!firstFlag)
{
var firstScore = firstList.Average(qitem => qitem.Score_p) * 100;
string title = firstList.LastOrDefault().ThName + "老师的评语";
info = GetCommentInfo(courseCommentModel, firstScore);
var First_Stu_HomeWork_Id = firstList.LastOrDefault().Stu_HomeWork_Id;
var tempModel = GetSystemCreateComment(commentList, cItem.course_id, First_Stu_HomeWork_Id);
if (tempModel == null || (tempModel != null && tempModel.Id <= 0))
{
var firstNum = CreateRandomNum();
//新增系统生成评价
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = First_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(sItem.student_uid),
CourseId = cItem.course_id,
Times = 1,
Info = info,
CreateType = 1,
CreateByName = firstList.LastOrDefault().ThName,
CreateTime = firstList.LastOrDefault().CreateTime.AddMinutes(firstNum),
ShowType = 3,
});
}
}
}
//第二次评价
if (homeWorkList.Count >= 9)
{
var secondList = homeWorkList.Where(qitem => qitem.RowNum > 5 && qitem.RowNum <= 9).ToList();
var secondFlag = secondList.Where(qitem => qitem.HomeWorkStatus == 0).Any();
if (!secondFlag)
{
var secondScore = secondList.Average(qitem => qitem.Score_p) * 100;
info = GetCommentInfo(courseCommentModel, secondScore);
var Second_Stu_HomeWork_Id = secondList.LastOrDefault().Stu_HomeWork_Id;
var secondModel = GetSystemCreateComment(commentList, cItem.course_id, Second_Stu_HomeWork_Id);
if (secondModel == null || (secondModel != null && secondModel.Id <= 0))
{
var secondNum = CreateRandomNum();
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = Second_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(sItem.student_uid),
CourseId = cItem.course_id,
Times = 2,
Info = info,
CreateType = 1,
CreateByName = secondList.LastOrDefault().ThName,
CreateTime = secondList.LastOrDefault().CreateTime.AddMinutes(secondNum),
ShowType = 3,
});
}
}
}
//第三次评价
if (homeWorkList.Count >= 13)
{
var thirdList = homeWorkList.Where(qitem => qitem.RowNum > 9 && qitem.RowNum <= 13).ToList();
var thirdFlag = thirdList.Where(qitem => qitem.HomeWorkStatus == 0).Any();
if (!thirdFlag)
{
var thirdScore = thirdList.Average(qitem => qitem.Score_p) * 100;
info = GetCommentInfo(courseCommentModel, thirdScore);
var Third_Stu_HomeWork_Id = thirdList.LastOrDefault().Stu_HomeWork_Id;
var thirdModel = GetSystemCreateComment(commentList, cItem.course_id, Third_Stu_HomeWork_Id);
if (thirdModel == null || (thirdModel != null && thirdModel.Id <= 0))
{
var thirdNum = CreateRandomNum();
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = Third_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(sItem.student_uid),
CourseId = cItem.course_id,
Times = 3,
Info = info,
CreateType = 1,
CreateByName = thirdList.LastOrDefault().ThName,
CreateTime = thirdList.LastOrDefault().CreateTime.AddMinutes(thirdNum),
ShowType = 3,
});
}
}
}
}
}
}
}
return list;
}
/// <summary> /// <summary>
/// 获取学生作业列表 /// 获取学生作业列表
/// </summary> /// </summary>
...@@ -110,148 +262,64 @@ WHERE 1=1 ...@@ -110,148 +262,64 @@ WHERE 1=1
RowNum++; RowNum++;
} }
} }
//课程配置评论列表
var courseCommentModel = courseCommentRepository.GetCourseCommentListRepository(new CourseQuery() { QCourseIds = query.CourseId.ToString() }).FirstOrDefault();
//学员评论列表 //学员评论列表
var commentList = stuCommentRepository.GetStuCommentListRepository(new CourseQuery() { CourseId = query.CourseId, StuIds = query.StuIds }); var commentList = stuCommentRepository.GetStuCommentListRepository(new CourseQuery() { CourseId = query.CourseId, StuIds = query.StuIds });
ExamWorkResult firstComment = null; ExamWorkResult firstComment = null;
ExamWorkResult secondComment = null; ExamWorkResult secondComment = null;
ExamWorkResult thirdComment = null; ExamWorkResult thirdComment = null;
string info;
if (homeWorkList != null && homeWorkList.Count > 0) if (homeWorkList != null && homeWorkList.Count > 0)
{ {
//第一次评价 //第一次评价
if (homeWorkList.Count >= 5) if (homeWorkList.Count >= 5)
{ {
var firstList = homeWorkList.Where(qitem => qitem.RowNum <= 5).ToList(); var firstList = homeWorkList.Where(qitem => qitem.RowNum <= 5).ToList();
var firstFlag= firstList.Where(qitem => qitem.HomeWorkStatus == 0).Any(); var First_Stu_HomeWork_Id = firstList.LastOrDefault().Stu_HomeWork_Id;
//第一阶段有未提交的作业就不生成系统评价 var tempModel = GetSystemCreateComment(commentList, query.CourseId, First_Stu_HomeWork_Id);
if (!firstFlag) if (tempModel != null && tempModel.ShowType == 1)
{ {
var firstScore = firstList.Average(qitem => qitem.Score_p) * 100;
string title = firstList.LastOrDefault().ThName + "老师的评语";
info = GetCommentInfo(courseCommentModel, firstScore);
var First_Stu_HomeWork_Id = firstList.LastOrDefault().Stu_HomeWork_Id;
var tempModel = GetSystemCreateComment(commentList, query.CourseId, First_Stu_HomeWork_Id);
firstComment = new ExamWorkResult() firstComment = new ExamWorkResult()
{ {
ResultType = 3, ResultType = 3,
Title = firstList.LastOrDefault().ThName + "老师的评语", Title = firstList.LastOrDefault().ThName + "老师的评语",
}; };
if (tempModel != null) firstComment.CreateTime = tempModel.CreateTime;
{ firstComment.Comment = tempModel.Info;
firstComment.CreateTime = tempModel.CreateTime;
firstComment.Comment = tempModel.Info;
}
else
{
var firstNum = CreateRandomNum();
firstComment.CreateTime = firstList.LastOrDefault().CreateTime.AddMinutes(firstNum);
firstComment.Comment = info;
//新增系统生成评价
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = First_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(query.StuIds),
CourseId = query.CourseId,
Times = 1,
Info = info,
CreateType = 1,
CreateByName = firstList.LastOrDefault().ThName,
CreateTime = firstComment.CreateTime,
ShowType = 3,
});
}
} }
} }
//第二次评价 //第二次评价
if (homeWorkList.Count >= 9) if (homeWorkList.Count >= 9)
{ {
var secondList = homeWorkList.Where(qitem => qitem.RowNum > 5 && qitem.RowNum <= 9).ToList(); var secondList = homeWorkList.Where(qitem => qitem.RowNum > 5 && qitem.RowNum <= 9).ToList();
var secondFlag = secondList.Where(qitem => qitem.HomeWorkStatus == 0).Any(); var Second_Stu_HomeWork_Id = secondList.LastOrDefault().Stu_HomeWork_Id;
if (!secondFlag) var secondModel = GetSystemCreateComment(commentList, query.CourseId, Second_Stu_HomeWork_Id);
if (secondModel != null&&secondModel.ShowType==1)
{ {
var secondScore = secondList.Average(qitem => qitem.Score_p) * 100;
info = GetCommentInfo(courseCommentModel, secondScore);
var Second_Stu_HomeWork_Id = secondList.LastOrDefault().Stu_HomeWork_Id;
var secondModel = GetSystemCreateComment(commentList, query.CourseId, Second_Stu_HomeWork_Id);
secondComment = new ExamWorkResult() secondComment = new ExamWorkResult()
{ {
ResultType = 3, ResultType = 3,
Title = secondList.LastOrDefault().ThName + "老师的评语", Title = secondList.LastOrDefault().ThName + "老师的评语",
}; };
if (secondModel != null) secondComment.CreateTime = secondModel.CreateTime;
{ secondComment.Comment = secondModel.Info;
secondComment.CreateTime = secondModel.CreateTime;
secondComment.Comment = secondModel.Info;
}
else
{
var secondNum = CreateRandomNum();
secondComment.CreateTime = secondList.LastOrDefault().CreateTime.AddMinutes(secondNum);
secondComment.Comment = info;
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = Second_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(query.StuIds),
CourseId = query.CourseId,
Times = 2,
Info = info,
CreateType = 1,
CreateByName = secondList.LastOrDefault().ThName,
CreateTime = secondComment.CreateTime,
ShowType = 3,
});
}
} }
} }
//第三次评价 //第三次评价
if (homeWorkList.Count >= 13) if (homeWorkList.Count >= 13)
{ {
var thirdList = homeWorkList.Where(qitem => qitem.RowNum > 9 && qitem.RowNum <= 13).ToList(); var thirdList = homeWorkList.Where(qitem => qitem.RowNum > 9 && qitem.RowNum <= 13).ToList();
var thirdFlag = thirdList.Where(qitem => qitem.HomeWorkStatus == 0).Any(); var Third_Stu_HomeWork_Id = thirdList.LastOrDefault().Stu_HomeWork_Id;
if (!thirdFlag) var thirdModel = GetSystemCreateComment(commentList, query.CourseId, Third_Stu_HomeWork_Id);
if (thirdModel != null && thirdModel.ShowType == 1)
{ {
var thirdScore = thirdList.Average(qitem => qitem.Score_p) * 100;
info = GetCommentInfo(courseCommentModel, thirdScore);
var Third_Stu_HomeWork_Id = thirdList.LastOrDefault().Stu_HomeWork_Id;
var thirdModel = GetSystemCreateComment(commentList, query.CourseId, Third_Stu_HomeWork_Id);
thirdComment = new ExamWorkResult() thirdComment = new ExamWorkResult()
{ {
ResultType = 3, ResultType = 3,
Title = thirdList.LastOrDefault().ThName + "老师的评语", Title = thirdList.LastOrDefault().ThName + "老师的评语",
}; };
if (thirdModel != null) thirdComment.CreateTime = thirdModel.CreateTime;
{ thirdComment.Comment = thirdModel.Info;
thirdComment.CreateTime = thirdModel.CreateTime;
thirdComment.Comment = thirdModel.Info;
}
else
{
var thirdNum = CreateRandomNum();
thirdComment.CreateTime = thirdList.LastOrDefault().CreateTime.AddMinutes(thirdNum);
thirdComment.Comment = info;
stuCommentRepository.SetStuCommentRepository(new RB_Stu_Comment()
{
Id = 0,
HomeWorkId = Third_Stu_HomeWork_Id,
StuUid = Convert.ToInt32(query.StuIds),
CourseId = query.CourseId,
Times = 3,
Info = info,
CreateType = 1,
CreateByName = thirdList.LastOrDefault().ThName,
CreateTime = thirdComment.CreateTime,
ShowType = 3,
});
}
} }
} }
} }
...@@ -279,13 +347,17 @@ WHERE 1=1 ...@@ -279,13 +347,17 @@ WHERE 1=1
{ {
foreach (var item in commentList?.Where(qitem => qitem.CourseId == qitem.CourseId && qitem.CreateType == 2)) foreach (var item in commentList?.Where(qitem => qitem.CourseId == qitem.CourseId && qitem.CreateType == 2))
{ {
list.Add(new ExamWorkResult() if (item.ShowType == 1)
{ {
CreateTime = item.CreateTime, list.Add(new ExamWorkResult()
ResultType = 3, {
Title = item.CreateByName + "老师的评语", CreateTime = item.CreateTime,
Comment = item?.Info ResultType = 3,
}); Title = item.CreateByName + "老师的评语",
Comment = item?.Info
});
}
} }
} }
return list; return list;
......
...@@ -436,6 +436,16 @@ namespace EduSpider.Services ...@@ -436,6 +436,16 @@ namespace EduSpider.Services
var list = CommentRepository.GetCommentListRepository(); var list = CommentRepository.GetCommentListRepository();
return list; return list;
} }
/// <summary>
/// 创建课程作业评论
/// </summary>
/// <param name="CourseId">课程编号</param>
/// <returns></returns>
public void CreateHomeWorkComment(int CourseId)
{
StuHomeWorkRepository.CreateHomeWorkCommentRepository(CourseId);
}
} }
} }
...@@ -427,5 +427,18 @@ namespace EduSpider.WebApi.Controllers ...@@ -427,5 +427,18 @@ namespace EduSpider.WebApi.Controllers
var list = CourseService.RemoveStuComment(Ids); var list = CourseService.RemoveStuComment(Ids);
return ApiResult.Success(data: list); return ApiResult.Success(data: list);
} }
[HttpPost]
[HttpGet]
/// <summary>
/// 生成课程评论
/// </summary>
/// <returns></returns>
public ApiResult CreateCourseComment()
{
int CourseId = base.ReqParameters.GetInt("CourseId");
CourseService.CreateHomeWorkComment(CourseId);
return ApiResult.Success();
}
} }
} }
...@@ -26,9 +26,9 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -26,9 +26,9 @@ namespace TicketSpider.Spiders.ClassInRule
Console.WriteLine("开始获取老师信息"); Console.WriteLine("开始获取老师信息");
new TeacherManager().RunTeacher(loginCookies); new TeacherManager().RunTeacher(loginCookies);
Console.WriteLine("老师信息更新结束"); Console.WriteLine("老师信息更新结束");
//new StudentManager().RunAsync(loginCookies); new StudentManager().RunAsync(loginCookies);
//new CourseManager().RunCourse(loginCookies); CourseManager.RunCourse(loginCookies);
//new HomeWorkManager().RunHomeWork(loginCookies); HomeWorkManager.RunHomeWork(loginCookies);
} }
} }
} }
...@@ -30,6 +30,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -30,6 +30,7 @@ namespace EduSpider.Spiders.ClassInRule
string paramStr = string.Format(queryStr, pageCount, perpage); string paramStr = string.Format(queryStr, pageCount, perpage);
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");
IHomeWorkRepository homeWorkRepository = new HomeWorkRepository(); IHomeWorkRepository homeWorkRepository = new HomeWorkRepository();
IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository();
int totalCount = 0; int totalCount = 0;
Console.WriteLine(string.Format("开始第{0}次获取家庭作业", pageCount)); Console.WriteLine(string.Format("开始第{0}次获取家庭作业", pageCount));
...@@ -90,6 +91,10 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -90,6 +91,10 @@ namespace EduSpider.Spiders.ClassInRule
{ {
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id); RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id);
} }
if (i == totalCount)
{
stuHomeWorkRepository.CreateHomeWorkCommentRepository(0);
}
} }
} }
} }
...@@ -97,7 +102,6 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -97,7 +102,6 @@ namespace EduSpider.Spiders.ClassInRule
} }
} }
} }
} }
/// <summary> /// <summary>
...@@ -255,7 +259,5 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -255,7 +259,5 @@ namespace EduSpider.Spiders.ClassInRule
stuHomeWorkRepository.BatchSetStuHomeWorkRepository(list); stuHomeWorkRepository.BatchSetStuHomeWorkRepository(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