|
@@ -371,11 +371,12 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
public async Task TeacherTrainChangeFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "teacher-train-change", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
public async Task TeacherTrainChangeFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "teacher-train-change", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
{
|
|
{
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
- var data = msg.ToObject<TeacherTrainChangeMsg>();
|
|
|
|
|
|
+ var data = msg.ToObject<TeacherTrainChangeMsg>();
|
|
List<TeacherTrain> trains = new List<TeacherTrain>();
|
|
List<TeacherTrain> trains = new List<TeacherTrain>();
|
|
//redis锁
|
|
//redis锁
|
|
- bool lockKey= await _azureRedis.GetRedisClient(8).KeyExistsAsync($"Train:Statistics:Lock:{data.areaId}");
|
|
|
|
- if (!lockKey) {
|
|
|
|
|
|
+ bool lockKey = await _azureRedis.GetRedisClient(8).KeyExistsAsync($"Train:Statistics:Lock:{data.areaId}");
|
|
|
|
+ if (!lockKey)
|
|
|
|
+ {
|
|
await _azureRedis.GetRedisClient(8).SetAddAsync($"Train:Statistics:Lock:{data.areaId}", new RedisValue(data.areaId));
|
|
await _azureRedis.GetRedisClient(8).SetAddAsync($"Train:Statistics:Lock:{data.areaId}", new RedisValue(data.areaId));
|
|
DateTime minutes = DateTime.UtcNow.AddMinutes(15); //15分钟
|
|
DateTime minutes = DateTime.UtcNow.AddMinutes(15); //15分钟
|
|
await _azureRedis.GetRedisClient(8).KeyExpireAsync($"Train:Statistics:Lock:{data.areaId}", minutes);
|
|
await _azureRedis.GetRedisClient(8).KeyExpireAsync($"Train:Statistics:Lock:{data.areaId}", minutes);
|
|
@@ -412,8 +413,9 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
{
|
|
{
|
|
studies.Add(item);
|
|
studies.Add(item);
|
|
}
|
|
}
|
|
- if (school.teachers.Any()) {
|
|
|
|
- string trainSql = $"select value(c) from c where c.id in ({string.Join(",", school.teachers.Select(x =>$"'{x}'"))}) ";
|
|
|
|
|
|
+ if (school.teachers.Any())
|
|
|
|
+ {
|
|
|
|
+ string trainSql = $"select value(c) from c where c.id in ({string.Join(",", school.teachers.Select(x => $"'{x}'"))}) ";
|
|
await foreach (var item in client.GetContainer("TEAMModelOS", Constant.Teacher)
|
|
await foreach (var item in client.GetContainer("TEAMModelOS", Constant.Teacher)
|
|
.GetItemQueryIterator<TeacherTrain>(queryText: trainSql, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TeacherTrain-{school.school}") }))
|
|
.GetItemQueryIterator<TeacherTrain>(queryText: trainSql, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TeacherTrain-{school.school}") }))
|
|
{
|
|
{
|
|
@@ -425,7 +427,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
area.updateTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
area.updateTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
await client.GetContainer(Constant.TEAMModelOS, "Normal").ReplaceItemAsync<Area>(area, $"{data.areaId}", new PartitionKey("Base-Area"));
|
|
await client.GetContainer(Constant.TEAMModelOS, "Normal").ReplaceItemAsync<Area>(area, $"{data.areaId}", new PartitionKey("Base-Area"));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/// <param name="msg"></param>
|
|
/// <param name="msg"></param>
|
|
@@ -811,118 +813,51 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
StudyRecord record = json.ToObject<StudyRecord>();
|
|
StudyRecord record = json.ToObject<StudyRecord>();
|
|
if (record.status == 1)
|
|
if (record.status == 1)
|
|
{
|
|
{
|
|
- if (!string.IsNullOrEmpty(study.workId))
|
|
|
|
|
|
+ var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd");
|
|
|
|
+ var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd");
|
|
|
|
+ string tname = string.Empty;
|
|
|
|
+ List<string> setName = new();
|
|
|
|
+ foreach (string setting in study.settings)
|
|
{
|
|
{
|
|
- var response = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemStreamAsync(study.workId, new PartitionKey($"HomeworkRecord-{id}"));
|
|
|
|
- if (response.Status == 200)
|
|
|
|
|
|
+ if (setting.Equals("sign"))
|
|
{
|
|
{
|
|
- var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd");
|
|
|
|
- var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd");
|
|
|
|
- string tname = string.Empty;
|
|
|
|
- List<string> setName = new();
|
|
|
|
- foreach (string setting in study.settings)
|
|
|
|
- {
|
|
|
|
- if (setting.Equals("sign"))
|
|
|
|
- {
|
|
|
|
- setName.Add("扫码签到");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("hw"))
|
|
|
|
- {
|
|
|
|
- setName.Add("作业提交");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("survey"))
|
|
|
|
- {
|
|
|
|
- setName.Add("问卷反馈");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("exam"))
|
|
|
|
- {
|
|
|
|
- setName.Add("评测活动");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- switch (study.type)
|
|
|
|
- {
|
|
|
|
- case 1:
|
|
|
|
- tname = "信息化教学案例展示与分享";
|
|
|
|
- break;
|
|
|
|
- case 2:
|
|
|
|
- tname = "专家专题培训";
|
|
|
|
- break;
|
|
|
|
- case 3:
|
|
|
|
- tname = "同课同构";
|
|
|
|
- break;
|
|
|
|
- case 4:
|
|
|
|
- tname = "同课异构";
|
|
|
|
- break;
|
|
|
|
- case 5:
|
|
|
|
- tname = "校本2.0培训";
|
|
|
|
- break;
|
|
|
|
- case 6:
|
|
|
|
- tname = "自定义活动";
|
|
|
|
- break;
|
|
|
|
- };
|
|
|
|
- stringBuilder.Append($@"<tr>
|
|
|
|
- <td> {study.topic} </td>
|
|
|
|
- <td> {tname} </td >
|
|
|
|
- <td> {study.hour} </td >
|
|
|
|
- <td> {study.hour} </td >
|
|
|
|
- <td> {start} 到 {end} </td>
|
|
|
|
- <td>{study.desc}</td>
|
|
|
|
- <td> {string.Join("、", setName.Select(x => $"{x}\n"))} </td>
|
|
|
|
- <td> 已完成 </td >
|
|
|
|
- </tr> ");
|
|
|
|
|
|
+ setName.Add("扫码签到");
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if (setting.Equals("hw"))
|
|
{
|
|
{
|
|
- continue;
|
|
|
|
|
|
+ setName.Add("作业提交");
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd");
|
|
|
|
- var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd");
|
|
|
|
- string tname = string.Empty;
|
|
|
|
- List<string> setName = new();
|
|
|
|
- foreach (string setting in study.settings)
|
|
|
|
|
|
+ else if (setting.Equals("survey"))
|
|
{
|
|
{
|
|
- if (setting.Equals("sign"))
|
|
|
|
- {
|
|
|
|
- setName.Add("扫码签到");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("hw"))
|
|
|
|
- {
|
|
|
|
- setName.Add("作业提交");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("survey"))
|
|
|
|
- {
|
|
|
|
- setName.Add("问卷反馈");
|
|
|
|
- }
|
|
|
|
- else if (setting.Equals("exam"))
|
|
|
|
- {
|
|
|
|
- setName.Add("评测活动");
|
|
|
|
- }
|
|
|
|
|
|
+ setName.Add("问卷反馈");
|
|
}
|
|
}
|
|
- switch (study.type)
|
|
|
|
|
|
+ else if (setting.Equals("exam"))
|
|
{
|
|
{
|
|
- case 1:
|
|
|
|
- tname = "信息化教学案例展示与分享";
|
|
|
|
- break;
|
|
|
|
- case 2:
|
|
|
|
- tname = "专家专题培训";
|
|
|
|
- break;
|
|
|
|
- case 3:
|
|
|
|
- tname = "同课同构";
|
|
|
|
- break;
|
|
|
|
- case 4:
|
|
|
|
- tname = "同课异构";
|
|
|
|
- break;
|
|
|
|
- case 5:
|
|
|
|
- tname = "校本2.0培训";
|
|
|
|
- break;
|
|
|
|
- case 6:
|
|
|
|
- tname = "自定义活动";
|
|
|
|
- break;
|
|
|
|
- };
|
|
|
|
- stringBuilder.Append($@"<tr>
|
|
|
|
|
|
+ setName.Add("评测活动");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ switch (study.type)
|
|
|
|
+ {
|
|
|
|
+ case 1:
|
|
|
|
+ tname = "信息化教学案例展示与分享";
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ tname = "专家专题培训";
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ tname = "同课同构";
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ tname = "同课异构";
|
|
|
|
+ break;
|
|
|
|
+ case 5:
|
|
|
|
+ tname = "校本2.0培训";
|
|
|
|
+ break;
|
|
|
|
+ case 6:
|
|
|
|
+ tname = "自定义活动";
|
|
|
|
+ break;
|
|
|
|
+ };
|
|
|
|
+ stringBuilder.Append($@"<tr>
|
|
<td> {study.topic} </td>
|
|
<td> {study.topic} </td>
|
|
<td> {tname} </td >
|
|
<td> {tname} </td >
|
|
<td> {study.hour} </td >
|
|
<td> {study.hour} </td >
|
|
@@ -932,7 +867,6 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
<td> {string.Join("、", setName.Select(x => $"{x}\n"))} </td>
|
|
<td> {string.Join("、", setName.Select(x => $"{x}\n"))} </td>
|
|
<td> 已完成 </td >
|
|
<td> 已完成 </td >
|
|
</tr> ");
|
|
</tr> ");
|
|
- }
|
|
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -1313,7 +1247,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
{
|
|
{
|
|
//更新课堂时长
|
|
//更新课堂时长
|
|
case "up-duration":
|
|
case "up-duration":
|
|
- double.TryParse($"{update.data}",out double duration);
|
|
|
|
|
|
+ double.TryParse($"{update.data}", out double duration);
|
|
lessonRecord.duration = duration;
|
|
lessonRecord.duration = duration;
|
|
msgs.Add(update);
|
|
msgs.Add(update);
|
|
try
|
|
try
|
|
@@ -2276,7 +2210,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
{
|
|
{
|
|
var db = _azureCosmos.GetCosmosClient();
|
|
var db = _azureCosmos.GetCosmosClient();
|
|
foreach (var stu in stus.EnumerateArray())
|
|
foreach (var stu in stus.EnumerateArray())
|
|
- {
|
|
|
|
|
|
+ {
|
|
await foreach (Response item in db.GetContainer(Constant.TEAMModelOS, Constant.Student).GetItemQueryStreamIterator(
|
|
await foreach (Response item in db.GetContainer(Constant.TEAMModelOS, Constant.Student).GetItemQueryStreamIterator(
|
|
queryText: $"SELECT TOP 1 * FROM c WHERE c.stuid = '{stu.GetString()}'",
|
|
queryText: $"SELECT TOP 1 * FROM c WHERE c.stuid = '{stu.GetString()}'",
|
|
requestOptions: new() { PartitionKey = new($"Imei") }))
|
|
requestOptions: new() { PartitionKey = new($"Imei") }))
|