|
@@ -122,7 +122,6 @@ namespace TEAMModelOS.Controllers.Learn
|
|
{
|
|
{
|
|
//根据作业发布对象查找到每一个具体学生生成关联关系表 HomeWorkStudent
|
|
//根据作业发布对象查找到每一个具体学生生成关联关系表 HomeWorkStudent
|
|
List<Target> targets = request.@params.homeWork.target;
|
|
List<Target> targets = request.@params.homeWork.target;
|
|
- List<ClassStudent> Classrooms = new List<ClassStudent>();
|
|
|
|
List<HomeworkRecord> homeWorkStudents = new List<HomeworkRecord>();
|
|
List<HomeworkRecord> homeWorkStudents = new List<HomeworkRecord>();
|
|
foreach (Target target in targets)
|
|
foreach (Target target in targets)
|
|
{
|
|
{
|
|
@@ -156,9 +155,8 @@ namespace TEAMModelOS.Controllers.Learn
|
|
if (student.IsNotEmpty())
|
|
if (student.IsNotEmpty())
|
|
{
|
|
{
|
|
homeWorkStudents1.name = student[0].name;
|
|
homeWorkStudents1.name = student[0].name;
|
|
- homeWorkStudents1.code = student[0].TEAMModelId;
|
|
|
|
- homeWorkStudents1.nativeroom.code = student[0].classroomCode;
|
|
|
|
- //homeWorkStudents1.nativeroomCode.code = student
|
|
|
|
|
|
+ homeWorkStudents1.code = student[0].studentId;
|
|
|
|
+ // homeWorkStudents1.nativeroom.code = student[0].classroomCode;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
await _cosmos.SaveOrUpdateAll<HomeworkRecord>(homeWorkStudents);
|
|
await _cosmos.SaveOrUpdateAll<HomeworkRecord>(homeWorkStudents);
|
|
@@ -167,30 +165,30 @@ namespace TEAMModelOS.Controllers.Learn
|
|
return builder.Data(homeWork).build();
|
|
return builder.Data(homeWork).build();
|
|
}
|
|
}
|
|
|
|
|
|
- private void TimerWork<T>(long startTime,Dictionary<string, object> dict) where T : ID
|
|
|
|
- {
|
|
|
|
- System.Timers.Timer aTimer = new System.Timers.Timer();
|
|
|
|
- // Create a timer with a two second interval.
|
|
|
|
-
|
|
|
|
- long time = Math.Abs(startTime - new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds());
|
|
|
|
- aTimer = new System.Timers.Timer(time);
|
|
|
|
- // Hook up the Elapsed event for the timer.
|
|
|
|
- aTimer.Elapsed += async (sender, e) => await OnTimedEventAsync<T>(_cosmos, dict);
|
|
|
|
- aTimer.AutoReset = false;
|
|
|
|
- aTimer.Enabled = true;
|
|
|
|
- }
|
|
|
|
|
|
+ //private void TimerWork<T>(long startTime,Dictionary<string, object> dict) where T : ID
|
|
|
|
+ //{
|
|
|
|
+ // System.Timers.Timer aTimer = new System.Timers.Timer();
|
|
|
|
+ // // Create a timer with a two second interval.
|
|
|
|
+
|
|
|
|
+ // long time = Math.Abs(startTime - new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds());
|
|
|
|
+ // aTimer = new System.Timers.Timer(time);
|
|
|
|
+ // // Hook up the Elapsed event for the timer.
|
|
|
|
+ // aTimer.Elapsed += async (sender, e) => await OnTimedEventAsync<T>(_cosmos, dict);
|
|
|
|
+ // aTimer.AutoReset = false;
|
|
|
|
+ // aTimer.Enabled = true;
|
|
|
|
+ //}
|
|
|
|
|
|
- private static async System.Threading.Tasks.Task OnTimedEventAsync<T>(IAzureCosmosDBV3Repository _cosmos,Dictionary<string, object> dict)where T:ID
|
|
|
|
- {
|
|
|
|
- List<T> homeWorks = await _cosmos.FindByDict<T>(dict);
|
|
|
|
- if (homeWorks.IsNotEmpty()) {
|
|
|
|
- PropertyInfo propertyInfo = homeWorks[0].GetType().GetProperty("state");
|
|
|
|
- for (int i = 0; i < homeWorks.Count; i++)
|
|
|
|
- propertyInfo.SetValue(homeWorks[i], 200);
|
|
|
|
- await _cosmos.SaveOrUpdateAll<T>(homeWorks);
|
|
|
|
|
|
+ //private static async System.Threading.Tasks.Task OnTimedEventAsync<T>(IAzureCosmosDBV3Repository _cosmos,Dictionary<string, object> dict)where T:ID
|
|
|
|
+ //{
|
|
|
|
+ // List<T> homeWorks = await _cosmos.FindByDict<T>(dict);
|
|
|
|
+ // if (homeWorks.IsNotEmpty()) {
|
|
|
|
+ // PropertyInfo propertyInfo = homeWorks[0].GetType().GetProperty("state");
|
|
|
|
+ // for (int i = 0; i < homeWorks.Count; i++)
|
|
|
|
+ // propertyInfo.SetValue(homeWorks[i], 200);
|
|
|
|
+ // await _cosmos.SaveOrUpdateAll<T>(homeWorks);
|
|
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 新增或修改学生作业关联表
|
|
/// 新增或修改学生作业关联表
|
|
@@ -227,14 +225,13 @@ namespace TEAMModelOS.Controllers.Learn
|
|
{
|
|
{
|
|
HomeworkFindDto homeWorkFindDto = new HomeworkFindDto();
|
|
HomeworkFindDto homeWorkFindDto = new HomeworkFindDto();
|
|
List<string> pro = new List<string>();
|
|
List<string> pro = new List<string>();
|
|
- pro.Add("submissionBool");
|
|
|
|
|
|
+ pro.Add("submit");
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(dict: new Dictionary<string, object> { { "code", homeWork.id } }, propertys: pro);
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(dict: new Dictionary<string, object> { { "code", homeWork.id } }, propertys: pro);
|
|
int sub = 0;
|
|
int sub = 0;
|
|
Dictionary<string, object> dict = new Dictionary<string, object>();
|
|
Dictionary<string, object> dict = new Dictionary<string, object>();
|
|
- homeWorkStudents.GroupBy(x => x.submissionBool).ToList().ForEach(x => { if (x.Key) { sub = x.Count(); } });
|
|
|
|
|
|
+ homeWorkStudents.GroupBy(x => x.submit).ToList().ForEach(x => { if (x.Key) { sub = x.Count(); } });
|
|
dict.Add("Sum", homeWorkStudents.Count);
|
|
dict.Add("Sum", homeWorkStudents.Count);
|
|
dict.Add("Finish", sub);
|
|
dict.Add("Finish", sub);
|
|
-
|
|
|
|
homeWorkFindDto = homeWork.ToJson().FromJson<HomeworkFindDto>();
|
|
homeWorkFindDto = homeWork.ToJson().FromJson<HomeworkFindDto>();
|
|
homeWorkFindDto.statistics = dict;
|
|
homeWorkFindDto.statistics = dict;
|
|
homeWorkFindDtos.Add(homeWorkFindDto);
|
|
homeWorkFindDtos.Add(homeWorkFindDto);
|
|
@@ -315,8 +312,8 @@ namespace TEAMModelOS.Controllers.Learn
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
- [HttpPost("TeacherScoring")]
|
|
|
|
- public async Task<BaseJosnRPCResponse> TeacherScoring(JosnRPCRequest<HomeworkScoringDto> request)
|
|
|
|
|
|
+ [HttpPost("tchScore")]
|
|
|
|
+ public async Task<BaseJosnRPCResponse> TchScore(JosnRPCRequest<HomeworkScoringDto> request)
|
|
{
|
|
{
|
|
JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(new Dictionary<string, object> { { "id", request.@params.id }, { "code", request.@params.homeWorkId } });
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(new Dictionary<string, object> { { "id", request.@params.id }, { "code", request.@params.homeWorkId } });
|
|
@@ -332,7 +329,7 @@ namespace TEAMModelOS.Controllers.Learn
|
|
TEAMModelId = request.@params.TEAMModelId
|
|
TEAMModelId = request.@params.TEAMModelId
|
|
};
|
|
};
|
|
|
|
|
|
- homeWorkStudents[0].teacherComments = homeWorkComment;
|
|
|
|
|
|
+ homeWorkStudents[0].tchCmt = homeWorkComment;
|
|
data = await _cosmos.SaveOrUpdate(homeWorkStudents[0]);
|
|
data = await _cosmos.SaveOrUpdate(homeWorkStudents[0]);
|
|
}
|
|
}
|
|
return builder.Data(data).build();
|
|
return builder.Data(data).build();
|
|
@@ -371,8 +368,8 @@ namespace TEAMModelOS.Controllers.Learn
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
- [HttpPost("StudentScoring")]
|
|
|
|
- public async Task<BaseJosnRPCResponse> StudentScoring(JosnRPCRequest<HomeworkCommentDto> request)
|
|
|
|
|
|
+ [HttpPost("stuScore")]
|
|
|
|
+ public async Task<BaseJosnRPCResponse> StuScore(JosnRPCRequest<HomeworkCommentDto> request)
|
|
{
|
|
{
|
|
JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(new Dictionary<string, object> { { "id", request.@params.id }, { "code", request.@params.homeWorkId } });
|
|
List<HomeworkRecord> homeWorkStudents = await _cosmos.FindByDict<HomeworkRecord>(new Dictionary<string, object> { { "id", request.@params.id }, { "code", request.@params.homeWorkId } });
|
|
@@ -398,12 +395,12 @@ namespace TEAMModelOS.Controllers.Learn
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
- homeWorkStudents[0].studentComments.Add(homeWorkComment);
|
|
|
|
|
|
+ homeWorkStudents[0].stuCmt.Add(homeWorkComment);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
//回复评论
|
|
//回复评论
|
|
- foreach (StudentComment comment in homeWorkStudents[0].studentComments)
|
|
|
|
|
|
+ foreach (StudentComment comment in homeWorkStudents[0].stuCmt)
|
|
{
|
|
{
|
|
if (comment.commentid == request.@params.commentid)
|
|
if (comment.commentid == request.@params.commentid)
|
|
{
|
|
{
|
|
@@ -430,124 +427,6 @@ namespace TEAMModelOS.Controllers.Learn
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
|
- /// 保存教师评语快捷回复
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="request"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [HttpPost("upsertComments")]
|
|
|
|
- public async Task<BaseJosnRPCResponse> UpsertComments(JosnRPCRequest<TeacherCommentsDto> request)
|
|
|
|
- {
|
|
|
|
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
|
- List<Comments> teacherComments1 = await _cosmos.FindByDict<Comments>(new Dictionary<string, object> { { "TEAMModelId", request.@params.TEAMModelId } });
|
|
|
|
- if (teacherComments1.IsEmpty()) {
|
|
|
|
- teacherComments1 = new List<Comments>();
|
|
|
|
- Comments teacher = new Comments();
|
|
|
|
- teacher.id = Guid.NewGuid().ToString();
|
|
|
|
- teacher.TEAMModelId = request.@params.TEAMModelId;
|
|
|
|
- teacherComments1.Add(teacher);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- foreach (Comments item in teacherComments1) {
|
|
|
|
- Comments.Comment comment = new Comments.Comment();
|
|
|
|
- comment.comment = request.@params.comment;
|
|
|
|
- //comment.createTime = new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
|
|
|
|
- comment.id = CreateRandomCode(6);
|
|
|
|
- item.comment.Add(comment);
|
|
|
|
- }
|
|
|
|
- List<Comments> teacherComments = await _cosmos.SaveOrUpdateAll(teacherComments1);
|
|
|
|
- if (teacherComments.IsNotEmpty()) builder.Data(teacherComments);
|
|
|
|
-
|
|
|
|
- return builder.build();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 查询教师评语罐头
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="request"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [HttpPost("findComments")]
|
|
|
|
- public async Task<BaseJosnRPCResponse> findComments(JosnRPCRequest<Dictionary<string, object>> request)
|
|
|
|
- {
|
|
|
|
- // request.@params.TryAdd("PartitionKey", request.lang);
|
|
|
|
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
|
- List<Comments> data = new List<Comments>();
|
|
|
|
- if (request.@params.Keys.Count > 0)
|
|
|
|
- {
|
|
|
|
- data = await _cosmos.FindByDict<Comments>(request.@params);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- throw new BizException("参数异常", ResponseCode.PARAMS_ERROR);
|
|
|
|
- }
|
|
|
|
- return builder.Data(data.OrderBy(m => m.comment.OrderBy(c => c.order))).Extend(new Dictionary<string, object> { { "count", data.Count } }).build();
|
|
|
|
- }
|
|
|
|
- /// <summary>
|
|
|
|
- /// 删除教师评语罐头
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="request"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [HttpPost("deleteComments")]
|
|
|
|
- public async Task<BaseJosnRPCResponse> DeleteComments(JosnRPCRequest<Dictionary<string, object>> request)
|
|
|
|
- {
|
|
|
|
- // request.@params.TryAdd("PartitionKey", request.lang);
|
|
|
|
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
|
- List<Comments> data = new List<Comments>();
|
|
|
|
- if (request.@params.Keys.Count > 0)
|
|
|
|
- {
|
|
|
|
- request.@params.TryGetValue("TEAMModelId", out object TEAMModelId);
|
|
|
|
- request.@params.TryGetValue("id", out object id);
|
|
|
|
- data = await _cosmos.FindByDict<Comments>(new Dictionary<string, object> { { "TEAMModelId", TEAMModelId.ToString() } });
|
|
|
|
- foreach (Comments teacherComments in data) {
|
|
|
|
- List<Comments.Comment> comment = new List<Comments.Comment>();
|
|
|
|
- comment.AddRange(teacherComments.comment);
|
|
|
|
- comment.AddRange(teacherComments.comment);
|
|
|
|
- comment.ForEach(x =>
|
|
|
|
- {
|
|
|
|
- if (x.id.Equals(id + "")) {
|
|
|
|
- teacherComments.comment.Remove(x);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- data = await _cosmos.SaveOrUpdateAll<Comments>(data);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- throw new BizException("参数异常", ResponseCode.PARAMS_ERROR);
|
|
|
|
- }
|
|
|
|
- return builder.Data(data).build();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 生成随机数
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="codeCount"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public string CreateRandomCode(int codeCount) //生成随机数
|
|
|
|
- {
|
|
|
|
- string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";//没有0O
|
|
|
|
- string[] allCharArray = allChar.Split(',');
|
|
|
|
- string randomCode = "";
|
|
|
|
- int temp = -1;
|
|
|
|
- Random rand = new Random();
|
|
|
|
- for (int i = 0; i < codeCount; i++)
|
|
|
|
- {
|
|
|
|
- if (temp != -1)
|
|
|
|
- {
|
|
|
|
- rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
|
|
|
|
- }
|
|
|
|
- int t = rand.Next(34);
|
|
|
|
- if (temp != -1 && temp == t)
|
|
|
|
- {
|
|
|
|
- return CreateRandomCode(codeCount);
|
|
|
|
- }
|
|
|
|
- temp = t;
|
|
|
|
- randomCode += allCharArray[t];
|
|
|
|
- }
|
|
|
|
- return randomCode;
|
|
|
|
- }
|
|
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|