|
@@ -35,94 +35,7 @@ namespace TEAMModelOS.FunctionV4.HttpTrigger
|
|
_azureRedis = azureRedis;
|
|
_azureRedis = azureRedis;
|
|
_thirdApisService = thirdApisService;
|
|
_thirdApisService = thirdApisService;
|
|
}
|
|
}
|
|
- /// <summary>
|
|
|
|
- /// 数据推送接口
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="req"></param>
|
|
|
|
- /// <param name="log"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [Function("SchoolDataPush")]
|
|
|
|
- public async Task<HttpResponseData> SchoolDataPush([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req)
|
|
|
|
- {
|
|
|
|
- var response = req.CreateResponse(HttpStatusCode.OK);
|
|
|
|
- var client = _azureCosmos.GetCosmosClient();
|
|
|
|
- string data = await new StreamReader(req.Body).ReadToEndAsync();
|
|
|
|
- JsonElement accessConfig = data.ToObject<JsonElement>().GetProperty("accessConfig");
|
|
|
|
- ScAccessConfig config = $"{accessConfig}".ToObject<ScAccessConfig>();
|
|
|
|
- JsonElement school = data.ToObject<JsonElement>().GetProperty("school");
|
|
|
|
- StringBuilder queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain'");
|
|
|
|
- List<GroupList> yxtrain = new List<GroupList>();
|
|
|
|
- await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryText.ToString(),
|
|
|
|
- requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
|
|
|
|
- {
|
|
|
|
- yxtrain.Add(item);
|
|
|
|
- }
|
|
|
|
- List<TeacherTrain> trains = new List<TeacherTrain>();
|
|
|
|
- var members = yxtrain.SelectMany(x => x.members).ToList();
|
|
|
|
- if (members.IsNotEmpty())
|
|
|
|
- {
|
|
|
|
- queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain' " +
|
|
|
|
- $"and c.id in ({string.Join(",", members.Select(x => $"'{x.id}'"))}) ");
|
|
|
|
- await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TeacherTrain>(queryText: queryText.ToString(),
|
|
|
|
- requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"TeacherTrain-{school}") }))
|
|
|
|
- {
|
|
|
|
- trains.Add(item);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- string sql = $" SELECT value(c) FROM c join a in c.binds where ARRAY_LENGTH(c.binds)>0 and a.type='{config.config}' ";
|
|
|
|
- List<Teacher> teachers = new List<Teacher>();
|
|
|
|
- await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<Teacher>(queryText: sql,
|
|
|
|
- requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
|
|
|
|
- {
|
|
|
|
- teachers.Add(item);
|
|
|
|
- }
|
|
|
|
- //5.3.1.12学员培训基本情况批量回写-UpdateTeacherListSituation
|
|
|
|
- List<TeacherTrain> trains53112OK = new List<TeacherTrain>();
|
|
|
|
-
|
|
|
|
- //5.3.1.13学员能力点测评结果批量回写-UpdateTeacherListDiagnosis
|
|
|
|
- List<TeacherTrain> trains53113OK = new List<TeacherTrain>();
|
|
|
|
-
|
|
|
|
- //5.3.1.17学员课堂实录批量回写-UploadKTSLList
|
|
|
|
- List<TeacherTrain> trains53117OK = new List<TeacherTrain>();
|
|
|
|
-
|
|
|
|
- //5.3.1.22学员校本教研PDF(每人可以返回多条)批量回写-UploadSBTARPDFListV2
|
|
|
|
- List<TeacherTrain> trains53122OK = new List<TeacherTrain>();
|
|
|
|
-
|
|
|
|
- List<KeyValuePair<TeacherTrain, string>> trainsNO = new List<KeyValuePair<TeacherTrain, string>>();
|
|
|
|
- List<PushFail> fails = new List<PushFail>();
|
|
|
|
- trains.ForEach(x => {
|
|
|
|
- var teacher = teachers.Find(t => t.id.Equals(x.id));
|
|
|
|
- if (teacher == null)
|
|
|
|
- {
|
|
|
|
- fails.Add(new PushFail { tmdid = x.id, msgs = new List<KeyValuePair<string, string>> { new KeyValuePair<string, string>("tmdid-unexistent", "账号不存在!") } });
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- List<KeyValuePair<string, string>> msgs = new List<KeyValuePair<string, string>>();
|
|
|
|
- var binddata = teachers.Where(t => t.id.Equals(x.id)).SelectMany(z => z.binds)
|
|
|
|
- .Where(d => d.data.IsNotEmpty()).SelectMany(d => d.data)
|
|
|
|
- .Where(d => string.IsNullOrEmpty(d) && d.Contains(config.config) && d.Contains(config.path));
|
|
|
|
- if (binddata != null && binddata.Count() > 0)
|
|
|
|
- {
|
|
|
|
- var bindData = binddata.First().ToObject<ScBindData>();
|
|
|
|
- if (binddata != null)
|
|
|
|
- {
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- //如果没有找到绑定信息,则去blob查找。
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- //如果没有找到绑定信息,则去blob查找。
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- await response.WriteAsJsonAsync(new { });
|
|
|
|
- return response;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 5.3.1.1获取项目列表
|
|
/// 5.3.1.1获取项目列表
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -512,13 +425,101 @@ namespace TEAMModelOS.FunctionV4.HttpTrigger
|
|
return response;
|
|
return response;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 数据推送接口
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="req"></param>
|
|
|
|
+ /// <param name="log"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [Function("SchoolDataPush")]
|
|
|
|
+ public async Task<HttpResponseData> SchoolDataPush([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req)
|
|
|
|
+ {
|
|
|
|
+ var response = req.CreateResponse(HttpStatusCode.OK);
|
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
|
+ string data = await new StreamReader(req.Body).ReadToEndAsync();
|
|
|
|
+ JsonElement accessConfig = data.ToObject<JsonElement>().GetProperty("accessConfig");
|
|
|
|
+ ScAccessConfig config = $"{accessConfig}".ToObject<ScAccessConfig>();
|
|
|
|
+ JsonElement school = data.ToObject<JsonElement>().GetProperty("school");
|
|
|
|
+ StringBuilder queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain'");
|
|
|
|
+ List<GroupList> yxtrain = new List<GroupList>();
|
|
|
|
+ await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryText.ToString(),
|
|
|
|
+ requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
|
|
|
|
+ {
|
|
|
|
+ yxtrain.Add(item);
|
|
|
|
+ }
|
|
|
|
+ List<TeacherTrain> trains = new List<TeacherTrain>();
|
|
|
|
+ var members = yxtrain.SelectMany(x => x.members).ToList();
|
|
|
|
+ if (members.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain' " +
|
|
|
|
+ $"and c.id in ({string.Join(",", members.Select(x => $"'{x.id}'"))}) ");
|
|
|
|
+ await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TeacherTrain>(queryText: queryText.ToString(),
|
|
|
|
+ requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"TeacherTrain-{school}") }))
|
|
|
|
+ {
|
|
|
|
+ trains.Add(item);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ string sql = $" SELECT value(c) FROM c join a in c.binds where ARRAY_LENGTH(c.binds)>0 and a.type='{config.config}' ";
|
|
|
|
+ List<Teacher> teachers = new List<Teacher>();
|
|
|
|
+ await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<Teacher>(queryText: sql,
|
|
|
|
+ requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
|
|
|
|
+ {
|
|
|
|
+ teachers.Add(item);
|
|
|
|
+ }
|
|
|
|
+ //5.3.1.12学员培训基本情况批量回写-UpdateTeacherListSituation
|
|
|
|
+ List<TeacherTrain> trains53112OK = new List<TeacherTrain>();
|
|
|
|
|
|
|
|
+ //5.3.1.13学员能力点测评结果批量回写-UpdateTeacherListDiagnosis
|
|
|
|
+ List<TeacherTrain> trains53113OK = new List<TeacherTrain>();
|
|
|
|
+
|
|
|
|
+ //5.3.1.17学员课堂实录批量回写-UploadKTSLList
|
|
|
|
+ List<TeacherTrain> trains53117OK = new List<TeacherTrain>();
|
|
|
|
+
|
|
|
|
+ //5.3.1.22学员校本教研PDF(每人可以返回多条)批量回写-UploadSBTARPDFListV2
|
|
|
|
+ List<TeacherTrain> trains53122OK = new List<TeacherTrain>();
|
|
|
|
+
|
|
|
|
+ List<KeyValuePair<TeacherTrain, string>> trainsNO = new List<KeyValuePair<TeacherTrain, string>>();
|
|
|
|
+ List<PushFail> fails = new List<PushFail>();
|
|
|
|
+ trains.ForEach(x => {
|
|
|
|
+ var teacher = teachers.Find(t => t.id.Equals(x.id));
|
|
|
|
+ if (teacher == null)
|
|
|
|
+ {
|
|
|
|
+ fails.Add(new PushFail { tmdid = x.id, msgs = new List<KeyValuePair<string, string>> { new KeyValuePair<string, string>("tmdid-unexistent", "账号不存在!") } });
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ List<KeyValuePair<string, string>> msgs = new List<KeyValuePair<string, string>>();
|
|
|
|
+ var binddata = teachers.Where(t => t.id.Equals(x.id)).SelectMany(z => z.binds)
|
|
|
|
+ .Where(d => d.data.IsNotEmpty()).SelectMany(d => d.data)
|
|
|
|
+ .Where(d => string.IsNullOrEmpty(d) && d.Contains(config.config) && d.Contains(config.path));
|
|
|
|
+ if (binddata != null && binddata.Count() > 0)
|
|
|
|
+ {
|
|
|
|
+ var bindData = binddata.First().ToObject<ScBindData>();
|
|
|
|
+ if (binddata != null)
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ //如果没有找到绑定信息,则去blob查找。
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ //如果没有找到绑定信息,则去blob查找。
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ await response.WriteAsJsonAsync(new { });
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
public (int t53112OK, List<KeyValuePair<string, string>> msgs) check53112(TeacherTrain teacherTrain, List<KeyValuePair<string, string>> msgs)
|
|
public (int t53112OK, List<KeyValuePair<string, string>> msgs) check53112(TeacherTrain teacherTrain, List<KeyValuePair<string, string>> msgs)
|
|
{
|
|
{
|
|
//校验 基本情况是否满足
|
|
//校验 基本情况是否满足
|
|
int t53112OK = 1;
|
|
int t53112OK = 1;
|
|
if (teacherTrain.finalScore < 0)
|
|
if (teacherTrain.finalScore < 0)
|
|
- {
|
|
|
|
|
|
+ {
|
|
|
|
+ //总体认定结果0、未认定 1、合格 2、优秀 3、不合格 4、其他
|
|
msgs.Add(new KeyValuePair<string, string>("finalScore", $"最终评定结果参数:{teacherTrain.finalScore}"));
|
|
msgs.Add(new KeyValuePair<string, string>("finalScore", $"最终评定结果参数:{teacherTrain.finalScore}"));
|
|
t53112OK = 0;
|
|
t53112OK = 0;
|
|
}
|
|
}
|
|
@@ -536,27 +537,27 @@ namespace TEAMModelOS.FunctionV4.HttpTrigger
|
|
return (t53112OK, msgs);
|
|
return (t53112OK, msgs);
|
|
}
|
|
}
|
|
|
|
|
|
- public (int t53112OK, List<KeyValuePair<string, string>> msgs) check53113(TeacherTrain teacherTrain, List<KeyValuePair<string, string>> msgs)
|
|
|
|
|
|
+ public (int t53113OK, List<KeyValuePair<string, string>> msgs) check53113(TeacherTrain teacherTrain, List<KeyValuePair<string, string>> msgs)
|
|
{
|
|
{
|
|
//校验 基本情况是否满足
|
|
//校验 基本情况是否满足
|
|
- int t53112OK = 1;
|
|
|
|
|
|
+ int t53113OK = 1;
|
|
if (teacherTrain.finalScore < 0)
|
|
if (teacherTrain.finalScore < 0)
|
|
{
|
|
{
|
|
msgs.Add(new KeyValuePair<string, string>("finalScore", $"最终评定结果参数:{teacherTrain.finalScore}"));
|
|
msgs.Add(new KeyValuePair<string, string>("finalScore", $"最终评定结果参数:{teacherTrain.finalScore}"));
|
|
- t53112OK = 0;
|
|
|
|
|
|
+ t53113OK = 0;
|
|
}
|
|
}
|
|
if (string.IsNullOrEmpty(teacherTrain.summary) || teacherTrain.summary.Length > 300)
|
|
if (string.IsNullOrEmpty(teacherTrain.summary) || teacherTrain.summary.Length > 300)
|
|
{
|
|
{
|
|
string msg = string.IsNullOrEmpty(teacherTrain.summary) ? "未填写" : teacherTrain.summary.Length > 300 ? "字数超过300." : "";
|
|
string msg = string.IsNullOrEmpty(teacherTrain.summary) ? "未填写" : teacherTrain.summary.Length > 300 ? "字数超过300." : "";
|
|
msgs.Add(new KeyValuePair<string, string>("summary", $"教师培训总结:{msg}"));
|
|
msgs.Add(new KeyValuePair<string, string>("summary", $"教师培训总结:{msg}"));
|
|
- t53112OK = 0;
|
|
|
|
|
|
+ t53113OK = 0;
|
|
}
|
|
}
|
|
if (teacherTrain.totalTime <= 0)
|
|
if (teacherTrain.totalTime <= 0)
|
|
{
|
|
{
|
|
msgs.Add(new KeyValuePair<string, string>("totalTime", $"未获得学时:{teacherTrain.totalTime}"));
|
|
msgs.Add(new KeyValuePair<string, string>("totalTime", $"未获得学时:{teacherTrain.totalTime}"));
|
|
- t53112OK = 0;
|
|
|
|
|
|
+ t53113OK = 0;
|
|
}
|
|
}
|
|
- return (t53112OK, msgs);
|
|
|
|
|
|
+ return (t53113OK, msgs);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|