diff --git a/Learn.Archives.API/Controllers/SchoolBusinessController.cs b/Learn.Archives.API/Controllers/SchoolBusinessController.cs index 54ee941..610217d 100644 --- a/Learn.Archives.API/Controllers/SchoolBusinessController.cs +++ b/Learn.Archives.API/Controllers/SchoolBusinessController.cs @@ -138,7 +138,6 @@ namespace Learn.Archives.API.Controllers //处理数据 var errorExcelInfo = new List(); var insertInfo = new List(); - var db = schoolService.Context; foreach (var imp in dataList) { var school = await schoolService.GetFirstAsync(s => s.Name == imp.School); @@ -167,7 +166,8 @@ namespace Learn.Archives.API.Controllers .Select(s => s.Name).ToArrayAsync(); if (adminArr == null || adminArr.Length!= adminNameArr.Length) { - imp.Error = $"赴校人员未能完全识别成功"; + var nStr = string.Join(',', adminNameArr.Where(s => !adminArr.Contains(s))); + imp.Error = $"赴校人员未能完全识别成功 ->{nStr}"; errorExcelInfo.Add(imp); continue; } diff --git a/Learn.Archives.API/Controllers/StudentController.cs b/Learn.Archives.API/Controllers/StudentController.cs index 7ff87b2..a4d6d0f 100644 --- a/Learn.Archives.API/Controllers/StudentController.cs +++ b/Learn.Archives.API/Controllers/StudentController.cs @@ -456,25 +456,48 @@ namespace Learn.Archives.API.Controllers s.JoinTime, s.ExitTime, s.Remark}.Any(x => !(x == default || x == null))).ToList(); - // 测试IgnoreColumns是否真实有效 - await baseService.AsUpdateable(updateArr) - .UpdateColumns(s => new - { - s.AmountRelief, - s.ReliefApplication, - s.ReliefType, - s.ReliefSubTime, - s.StudentType, - s.Status, - s.JoinTime, - s.ExitTime, - s.Remark - }) - //更新忽略null并且忽略默认值 (比如int默认值是0就不更新) - .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true) - .WhereColumns(it => new { it.UserCenterId }) - .ExecuteCommandAsync(); + //查询差异 + var addInfoUserArr = updateArr.Select(s => s.UserCenterId).ToArray(); + var hasUIdArr = await baseService.AsQueryable() + .Where(s => addInfoUserArr.Contains(s.UserCenterId)) + .Select(s => s.UserCenterId).ToArrayAsync(); + var hasUIdHash = hasUIdArr.ToHashSet(); + var updateData = new List(10); + var InsertData = new List(10); + foreach (var item in updateArr) + { + if (hasUIdHash.Contains(item.UserCenterId)) + updateData.Add(item); + else + InsertData.Add(item); + } + //开启事务 + baseService.Context.Ado + .UseTran(() => + { + baseService.InsertRange(InsertData); + baseService.AsUpdateable(updateData) + .UpdateColumns(s => new + { + s.AmountRelief, + s.ReliefApplication, + s.ReliefType, + s.ReliefSubTime, + s.StudentType, + s.Status, + s.JoinTime, + s.ExitTime, + s.Remark + }) + //更新忽略null并且忽略默认值 (比如int默认值是0就不更新) + //如果修改为0会出现修改不了的问题 + .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true) + .WhereColumns(it => new { it.UserCenterId }) + .ExecuteCommand(); + return true; + }, ex => { throw ex; }); } + //写入选科方向 if (userCenterUpdate.Count > 0) await userService.AsUpdateable(userCenterUpdate) .UpdateColumns(s => new diff --git a/Learn.Archives.API/appsettings.json b/Learn.Archives.API/appsettings.json index 304f3df..dd9d908 100644 --- a/Learn.Archives.API/appsettings.json +++ b/Learn.Archives.API/appsettings.json @@ -13,8 +13,8 @@ }, "DB": { "ConnectionString": "AllowLoadLocalInfile=true;Server=58.17.132.2;User ID=marking;Password=qwe123!@#;Database=learn.archives;CharSet=utf8mb4;Port=43306;pooling=true;SslMode=None;", - //正式库 - //"ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.archives;CharSet=utf8mb4;pooling=true;SslMode=None", + //正式库 + //"ConnectionString": "AllowLoadLocalInfile=true;Server=archives-mysql.23544.com;User ID=archives;Password=MPsSSNuvFO7wBqADXC9zweh9tdOPNwm6;Port=3306;Database=learn.archives;CharSet=utf8mb4;pooling=true;SslMode=None", "SqlType": "MySql", "UpdateTable": false },