|
@@ -130,7 +130,17 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
return BadRequest(new { status = -1, msg = "您未加入该学校!" });
|
|
return BadRequest(new { status = -1, msg = "您未加入该学校!" });
|
|
}
|
|
}
|
|
- //设置教师的科目信息
|
|
|
|
|
|
+ //修改教师的最大课例保存数量
|
|
|
|
+ case bool when $"{_opt}".Equals("UpdateLessonLimit", StringComparison.OrdinalIgnoreCase) && (request.TryGetProperty("lessonLimit", out JsonElement _lessonLimit)):
|
|
|
|
+ teacher.lessonLimit = int.Parse($"{_lessonLimit}");
|
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<Teacher>(teacher, userid, new PartitionKey("Base"));
|
|
|
|
+ return Ok(new { teacher, status = 1 });
|
|
|
|
+ //修改教师设置自动将课例发布给谁的设置
|
|
|
|
+ case bool when $"{_opt}".Equals("UpdateLessonShow", StringComparison.OrdinalIgnoreCase) && (request.TryGetProperty("lessonShow", out JsonElement _lessonShow)):
|
|
|
|
+ teacher.lessonShow = _lessonShow.Deserialize<List<string>>();
|
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<Teacher>(teacher, userid, new PartitionKey("Base"));
|
|
|
|
+ return Ok(new { teacher, status = 1 });
|
|
|
|
+ //设置教师的科目信息
|
|
case bool when $"{_opt}".Equals("SetTeacherSubject", StringComparison.OrdinalIgnoreCase) && request.TryGetProperty("targerTecher", out JsonElement _targetTecher)
|
|
case bool when $"{_opt}".Equals("SetTeacherSubject", StringComparison.OrdinalIgnoreCase) && request.TryGetProperty("targerTecher", out JsonElement _targetTecher)
|
|
&& request.TryGetProperty("subjectIds", out JsonElement _subjectIds):
|
|
&& request.TryGetProperty("subjectIds", out JsonElement _subjectIds):
|
|
if (_subjectIds.ValueKind.Equals(JsonValueKind.Array))
|
|
if (_subjectIds.ValueKind.Equals(JsonValueKind.Array))
|
|
@@ -252,12 +262,21 @@ namespace TEAMModelOS.Controllers
|
|
TeacherInfo teacherInfo= await TeacherService.TeacherInfo(_azureCosmos, teacher, $"{name}", $"{picture}", id, _azureStorage, _option);
|
|
TeacherInfo teacherInfo= await TeacherService.TeacherInfo(_azureCosmos, teacher, $"{name}", $"{picture}", id, _azureStorage, _option);
|
|
teacherInfo.areas.ForEach(x => { if (x.setting != null) { x.setting.accessConfig=x.setting.accessConfig; } });
|
|
teacherInfo.areas.ForEach(x => { if (x.setting != null) { x.setting.accessConfig=x.setting.accessConfig; } });
|
|
LoginLog(id, $"{name}", 200);
|
|
LoginLog(id, $"{name}", 200);
|
|
|
|
+ int lessonLimit = teacherInfo.teacher.lessonLimit;
|
|
|
|
+ if (teacherInfo.teacher.lessonLimit == 0)
|
|
|
|
+ {
|
|
|
|
+ //未设置的的采用系统设置的默认值30
|
|
|
|
+ lessonLimit = Constant.private_lesson_limit;
|
|
|
|
+ }
|
|
return Ok(new { location = _option.Location, teacherInfo. auth_token, teacherInfo. blob_uri, teacherInfo.blob_sas, teacherInfo.schools, teacherInfo.defaultschool, teacherInfo. courses,
|
|
return Ok(new { location = _option.Location, teacherInfo. auth_token, teacherInfo. blob_uri, teacherInfo.blob_sas, teacherInfo.schools, teacherInfo.defaultschool, teacherInfo. courses,
|
|
teacherInfo.total,
|
|
teacherInfo.total,
|
|
teacherInfo.osblob_uri,
|
|
teacherInfo.osblob_uri,
|
|
teacherInfo.osblob_sas,
|
|
teacherInfo.osblob_sas,
|
|
teacherInfo.tsize, status = 200,
|
|
teacherInfo.tsize, status = 200,
|
|
- teacherInfo. areas });
|
|
|
|
|
|
+ teacherInfo. areas ,
|
|
|
|
+ lessonLimit,
|
|
|
|
+ teacherInfo.teacher.lessonShow
|
|
|
|
+ });
|
|
}
|
|
}
|
|
catch (CosmosException ex)
|
|
catch (CosmosException ex)
|
|
{
|
|
{
|
|
@@ -550,10 +569,19 @@ namespace TEAMModelOS.Controllers
|
|
///https://teammodelstorage.blob.core.chinacloudapi.cn/teammodelos
|
|
///https://teammodelstorage.blob.core.chinacloudapi.cn/teammodelos
|
|
var (osblob_uri, osblob_sas) = roles.Contains("area") ? _azureStorage.GetBlobContainerSAS("teammodelos", BlobContainerSasPermissions.Write | BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List | BlobContainerSasPermissions.Delete) : _azureStorage.GetBlobContainerSAS("teammodelos", BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List);
|
|
var (osblob_uri, osblob_sas) = roles.Contains("area") ? _azureStorage.GetBlobContainerSAS("teammodelos", BlobContainerSasPermissions.Write | BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List | BlobContainerSasPermissions.Delete) : _azureStorage.GetBlobContainerSAS("teammodelos", BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List);
|
|
areas.ForEach(x => { { if (x.setting != null) { x.setting.accessConfig = x.setting.accessConfig; } } });
|
|
areas.ForEach(x => { { if (x.setting != null) { x.setting.accessConfig = x.setting.accessConfig; } } });
|
|
|
|
+
|
|
|
|
+ int lessonLimit =teacher.lessonLimit;
|
|
|
|
+ if (teacher.lessonLimit == 0)
|
|
|
|
+ {
|
|
|
|
+ //未设置的的采用系统设置的默认值30
|
|
|
|
+ lessonLimit = Constant.private_lesson_limit;
|
|
|
|
+ }
|
|
return Ok(new { auth_token, blob_uri, blob_sas, school_base,
|
|
return Ok(new { auth_token, blob_uri, blob_sas, school_base,
|
|
school_courses, school_classes, school_rooms, size,
|
|
school_courses, school_classes, school_rooms, size,
|
|
osblob_uri, osblob_sas, status = 200, areas , currArea ,
|
|
osblob_uri, osblob_sas, status = 200, areas , currArea ,
|
|
- productSum= new {
|
|
|
|
|
|
+ lessonLimit,
|
|
|
|
+ teacher.lessonShow,
|
|
|
|
+ productSum = new {
|
|
serial = serials,
|
|
serial = serials,
|
|
service= services
|
|
service= services
|
|
} });
|
|
} });
|
|
@@ -770,13 +798,8 @@ namespace TEAMModelOS.Controllers
|
|
if (response.Status == 200)
|
|
if (response.Status == 200)
|
|
{
|
|
{
|
|
teacherImport = JsonDocument.Parse(response.Content).RootElement.Deserialize<TeacherImport>();
|
|
teacherImport = JsonDocument.Parse(response.Content).RootElement.Deserialize<TeacherImport>();
|
|
- var tchs = teacherImport?.teachers?.FindAll(x => !string.IsNullOrWhiteSpace(x.id) && x.id.Equals(id));
|
|
|
|
- if (tchs.IsNotEmpty())
|
|
|
|
- {
|
|
|
|
- var tch = tchs[0];
|
|
|
|
-
|
|
|
|
- await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(teacherImport, $"{school_code}", new PartitionKey("TeacherImport"));
|
|
|
|
- }
|
|
|
|
|
|
+ var tchs = teacherImport?.teachers?.RemoveAll(x => !string.IsNullOrWhiteSpace(x.id) && x.id.Equals(id));
|
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(teacherImport, $"{school_code}", new PartitionKey("TeacherImport"));
|
|
}
|
|
}
|
|
|
|
|
|
return Ok(new { stauts = 1 });
|
|
return Ok(new { stauts = 1 });
|
|
@@ -834,12 +857,13 @@ namespace TEAMModelOS.Controllers
|
|
};
|
|
};
|
|
var response = await client.GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(st, new PartitionKey($"Teacher-{school_code}"));
|
|
var response = await client.GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(st, new PartitionKey($"Teacher-{school_code}"));
|
|
}
|
|
}
|
|
|
|
+ Azure.Response responseImport = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemStreamAsync($"{school_code}", new PartitionKey("TeacherImport"));
|
|
|
|
+ TeacherImport teacherImport = null;
|
|
if ($"{grant_type}".Equals("request")) {
|
|
if ($"{grant_type}".Equals("request")) {
|
|
- Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemStreamAsync($"{school_code}", new PartitionKey("TeacherImport"));
|
|
|
|
- TeacherImport teacherImport = null;
|
|
|
|
- if (response.Status == 200)
|
|
|
|
|
|
+
|
|
|
|
+ if (responseImport.Status == 200)
|
|
{
|
|
{
|
|
- teacherImport = JsonDocument.Parse(response.Content).RootElement.Deserialize<TeacherImport>();
|
|
|
|
|
|
+ teacherImport = JsonDocument.Parse(responseImport.Content).RootElement.Deserialize<TeacherImport>();
|
|
var tchs = teacherImport?.teachers?.FindAll(x => string.IsNullOrWhiteSpace(x.iname) && x.iname.Equals($"{name}") && string.IsNullOrWhiteSpace(x.id));
|
|
var tchs = teacherImport?.teachers?.FindAll(x => string.IsNullOrWhiteSpace(x.iname) && x.iname.Equals($"{name}") && string.IsNullOrWhiteSpace(x.id));
|
|
if (tchs.IsNotEmpty())
|
|
if (tchs.IsNotEmpty())
|
|
{
|
|
{
|
|
@@ -869,7 +893,21 @@ namespace TEAMModelOS.Controllers
|
|
}
|
|
}
|
|
if (grant_type.ToString().Equals("join"))
|
|
if (grant_type.ToString().Equals("join"))
|
|
{
|
|
{
|
|
- await TmdUserService.JoinSchool(client, teacher.id, teacher.picture, teacher.name, school.schoolId, school.name);
|
|
|
|
|
|
+ if (responseImport.Status == 200)
|
|
|
|
+ {
|
|
|
|
+ teacherImport = JsonDocument.Parse(responseImport.Content).RootElement.Deserialize<TeacherImport>();
|
|
|
|
+ teacherImport?.teachers.ForEach(x => {
|
|
|
|
+ if (x.id.Equals(teacher.id)) {
|
|
|
|
+ x.name=teacher.name;
|
|
|
|
+ x.status = "join";
|
|
|
|
+ x.time=DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
|
+ x.picture=teacher.picture;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(teacherImport, $"{school_code}", new PartitionKey("TeacherImport"));
|
|
|
|
+ await TmdUserService.JoinSchool(client, teacher.id, teacher.picture, teacher.name, school.schoolId, school.name);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
Notification notification = null;
|
|
Notification notification = null;
|
|
|
|
|