|
@@ -196,6 +196,117 @@ namespace TEAMModelOS.Controllers.Third
|
|
|
var unbind = ScTeachers.Where(x => string.IsNullOrWhiteSpace(x.tmdid));
|
|
|
return Ok(unbind);
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 4. 同步增加批次的
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [ProducesDefaultResponseType]
|
|
|
+ [HttpPost("get-scs-teacher-add")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<IActionResult> getScsTeacherAdd(JsonElement request) {
|
|
|
+ if (!request.TryGetProperty("accessConfig", out JsonElement accessConfig)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("city", out JsonElement city)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("dist", out JsonElement dist)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("areaId", out JsonElement areaId)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("standard", out JsonElement standard)) return BadRequest();
|
|
|
+ var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
|
|
|
+ var ScTeachers1249 = await table.FindListByDict<ScTeacher>(new Dictionary<string, object>() { { "PartitionKey", "ScTeacher" }, { "ProjectItemID", 1249 } });
|
|
|
+ //数据校验
|
|
|
+ var jsondata = ScTeachers1249.Select(x => new { x.schoolCode, x.tmdid, x.PXID, x.TID, x.TeacherName, x.SchoolName, x.SchoolID, x.Account, x.areaId }).ToJsonString();
|
|
|
+ //当前区已有的教师
|
|
|
+ var ScTeachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object>() { { "PartitionKey", "ScTeacher" }, { "areaId", $"{areaId}" } });
|
|
|
+ //当前区的学校
|
|
|
+ var ScSchools = await table.FindListByDict<ScSchool>(new Dictionary<string, object>() { { "PartitionKey", "ScSchool" }, { "areaId", $"{areaId}" } });
|
|
|
+ Dictionary<string, object> dict = new Dictionary<string, object> { { "accessConfig", $"{accessConfig}" }, { "areaId", $"{areaId}" } };
|
|
|
+ //获取当前期,所有区所有学校的教师
|
|
|
+ (int status, string json) = await _httpTrigger.RequestHttpTrigger(dict, _option.Location, "GetTeachersListByProject");
|
|
|
+ //序列化
|
|
|
+ List<ScTeacher> teachers = json.ToObject<List<ScTeacher>>(new JsonSerializerOptions { PropertyNameCaseInsensitive = false });
|
|
|
+ // 处理省平台后补的教师,教师的学校不在当前区的学校列表中。
|
|
|
+ teachers.RemoveAll(x => !ScSchools.Select(z => z.schoolid).Contains(x.SchoolID));
|
|
|
+ string json_teachers = teachers.ToJsonString();
|
|
|
+ //拿到当前期的所有且是再当前区内的学校的培训id
|
|
|
+ var a = teachers.Select(x => $"{x.PXID}").ToList();
|
|
|
+ var s = ScTeachers.Select(z=>z.RowKey).ToList();
|
|
|
+ //新增的pxid
|
|
|
+ var addPxid = a.Except(s).ToList();
|
|
|
+ //原来已经有的pdxid可能需要更新的,如果需要更新,则需要判断两次的TID是否相同,不相同则需要换绑tmdid,则需要把tmdid置空
|
|
|
+ var updatePxid = a.Where(x=>s.Contains(x)).ToList();
|
|
|
+ if (addPxid.Any())
|
|
|
+ {
|
|
|
+ List<ScTeacher> newTeachers = new List<ScTeacher>();
|
|
|
+ var allScteacher = json.ToObject<List<ScTeacher>>(new JsonSerializerOptions { PropertyNameCaseInsensitive = false });
|
|
|
+ addPxid.ForEach(add =>
|
|
|
+ {
|
|
|
+ var newTeacher = allScteacher.Find(x => $"{x.PXID}".Equals(add));
|
|
|
+ if (newTeacher != null)
|
|
|
+ {
|
|
|
+ var schoolInfo = ScSchools.Find(x => x.schoolid == newTeacher.SchoolID);
|
|
|
+ if (schoolInfo != null)
|
|
|
+ {
|
|
|
+ newTeacher.status = 1;
|
|
|
+ newTeacher.areaId = $"{areaId}";
|
|
|
+ newTeacher.PartitionKey = "ScTeacher";
|
|
|
+ newTeacher.tmdid = null;
|
|
|
+ newTeacher.schoolCode = schoolInfo?.schoolCode;
|
|
|
+ newTeacher.RowKey = $"{newTeacher.PXID}";
|
|
|
+ newTeachers.Add(newTeacher);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ await table.SaveOrUpdateAll(newTeachers);
|
|
|
+ }
|
|
|
+ if (updatePxid.Any()) {
|
|
|
+ List<ScTeacher> updateTeachers = new List<ScTeacher>();
|
|
|
+ var allScteacher = json.ToObject<List<ScTeacher>>(new JsonSerializerOptions { PropertyNameCaseInsensitive = false });
|
|
|
+ updatePxid.ForEach(update => {
|
|
|
+ //数据库的教师
|
|
|
+ var updateTeacherDB = ScTeachers.Find(x => $"{x.RowKey}".Equals(update));
|
|
|
+ //省平台的教师
|
|
|
+ var schoolInfo = ScSchools.Find(x => x.schoolid == updateTeacherDB.SchoolID);
|
|
|
+ var scTeacher = allScteacher.Find(x => $"{x.PXID}".Equals(update));
|
|
|
+ if (updateTeacherDB != null && scTeacher!=null) {
|
|
|
+ if (updateTeacherDB.TID == scTeacher.TID)
|
|
|
+ {
|
|
|
+ //保持tmdid不变
|
|
|
+ updateTeacherDB.TID = scTeacher.TID;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ updateTeacherDB.tmdid = null;
|
|
|
+ }
|
|
|
+ updateTeacherDB.PXID = scTeacher.PXID;
|
|
|
+ updateTeacherDB.TID = scTeacher.TID;
|
|
|
+ updateTeacherDB.TeacherName = scTeacher.TeacherName;
|
|
|
+ updateTeacherDB.status = 1;
|
|
|
+ updateTeacherDB.SchoolID = scTeacher.SchoolID;
|
|
|
+ updateTeacherDB.SchoolName = scTeacher.SchoolName;
|
|
|
+ updateTeacherDB.ProjectID = scTeacher.ProjectID;
|
|
|
+ updateTeacherDB.ProjectItemID = scTeacher.ProjectItemID;
|
|
|
+ updateTeacherDB.ProjectItemTitle = scTeacher.ProjectItemTitle;
|
|
|
+ updateTeacherDB.ProjectTitle = scTeacher.ProjectTitle;
|
|
|
+ updateTeacherDB.CityID = scTeacher.CityID;
|
|
|
+ updateTeacherDB.DistrictID = scTeacher.DistrictID;
|
|
|
+ updateTeacherDB.CityName = scTeacher.CityName;
|
|
|
+ updateTeacherDB.DisName = scTeacher.DisName;
|
|
|
+ updateTeacherDB.Account = scTeacher.Account;
|
|
|
+ updateTeacherDB.TeacherXK = scTeacher.TeacherXK;
|
|
|
+ updateTeacherDB.TeacherXD = scTeacher.TeacherXD;
|
|
|
+ updateTeacherDB.Mobile = scTeacher.Mobile;
|
|
|
+ updateTeacherDB.Email = scTeacher.Email;
|
|
|
+ updateTeacherDB.areaId = $"{areaId}";
|
|
|
+ updateTeacherDB.PartitionKey = "ScTeacher";
|
|
|
+ updateTeacherDB.schoolCode = schoolInfo?.schoolCode;
|
|
|
+ updateTeachers.Add(updateTeacherDB);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ await table.SaveOrUpdateAll(updateTeachers);
|
|
|
+ }
|
|
|
+ return Ok();
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 3. 处理 省平台最新的教师以及 反向更新没有绑定醍摩豆id 的账号。
|
|
|
/// </summary>
|
|
@@ -228,16 +339,20 @@ namespace TEAMModelOS.Controllers.Third
|
|
|
//未保存在数据库的。
|
|
|
var asin = a.Except(s).ToList();
|
|
|
string json_asin = asin.ToJsonString();
|
|
|
- //var aa =a.Except(asin);
|
|
|
- //if (aa.Any()) {
|
|
|
+ var aa = a.Except(asin);
|
|
|
+ //if (aa.Any())
|
|
|
+ //{
|
|
|
// List<ScTeacher> newTeachers = new List<ScTeacher>();
|
|
|
// var allScteacher = json.ToObject<List<ScTeacher>>(new JsonSerializerOptions { PropertyNameCaseInsensitive = false });
|
|
|
- // aa.ToList().ForEach(a => {
|
|
|
+ // aa.ToList().ForEach(a =>
|
|
|
+ // {
|
|
|
// var newTeacher = allScteacher.Find(x => $"{x.TID}".Equals(a));
|
|
|
- // if (newTeacher != null) {
|
|
|
- // var schoolInfo = ScSchools.Find(x => x.schoolid == newTeacher.SchoolID);
|
|
|
- // if (schoolInfo != null) {
|
|
|
- // newTeacher.status = 1;
|
|
|
+ // if (newTeacher != null)
|
|
|
+ // {
|
|
|
+ // var schoolInfo = ScSchools.Find(x => x.schoolid == newTeacher.SchoolID);
|
|
|
+ // if (schoolInfo != null)
|
|
|
+ // {
|
|
|
+ // newTeacher.status = 1;
|
|
|
// newTeacher.areaId = $"{areaId}";
|
|
|
// newTeacher.PartitionKey = "ScTeacher";
|
|
|
// newTeacher.tmdid = null;
|
|
@@ -247,7 +362,7 @@ namespace TEAMModelOS.Controllers.Third
|
|
|
// }
|
|
|
// }
|
|
|
// });
|
|
|
- // await table.SaveOrUpdateAll(newTeachers);
|
|
|
+ // await table.SaveOrUpdateAll(newTeachers);
|
|
|
//}
|
|
|
#region 省平台获取到最新的教师,并添加到Table中。
|
|
|
var adds = teachers.FindAll(x => asin.Contains($"{x.TID}"));
|