diff --git a/Tiobon.Core.Api/Controllers/Base/BaseController.cs b/Tiobon.Core.Api/Controllers/Base/BaseController.cs index 624d5a24..ca5da490 100644 --- a/Tiobon.Core.Api/Controllers/Base/BaseController.cs +++ b/Tiobon.Core.Api/Controllers/Base/BaseController.cs @@ -1,4 +1,5 @@ using System.Reflection; +using SkyWalking.NetworkProtocol.V3; namespace Tiobon.Core.Controllers; @@ -112,6 +113,20 @@ public class BaseController + /// 扣费记录 -- 批量更新数据 + /// + /// + [HttpPut] + [Route("BulkUpdate")] + public async Task BulkUpdate([FromBody] Dictionary editModels) + { + var data = Success("更新成功"); + var flag = Convert.ToBoolean(await InvokeServiceAsync("Update", [editModels])); + if (!flag) + return Failed("更新失败"); + return data; + } #endregion #region 删除 diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index ebbfae5e..7c519fee 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -114,6 +114,12 @@ + + + 扣费记录 -- 批量更新数据 + + + 删除数据 diff --git a/Tiobon.Core.Api/appsettings.json b/Tiobon.Core.Api/appsettings.json index c58bbf2f..38158ebc 100644 --- a/Tiobon.Core.Api/appsettings.json +++ b/Tiobon.Core.Api/appsettings.json @@ -107,8 +107,8 @@ "ConnId": "WMTiobon_MSSQL_Main", "DBType": 1, "Enabled": true, - "Connection": "Data Source=47.99.54.186;User ID=GHR;Password=Tiobon20190101;Database=GHR30;Encrypt=True;TrustServerCertificate=True;", - //"Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;", + //"Connection": "Data Source=47.99.54.186;User ID=GHR;Password=Tiobon20190101;Database=GHR30;Encrypt=True;TrustServerCertificate=True;", + "Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;", "ProviderName": "System.Data.SqlClient" }, { diff --git a/Tiobon.Core.IServices/BASE/IBaseServices.cs b/Tiobon.Core.IServices/BASE/IBaseServices.cs index 613eb556..c2552467 100644 --- a/Tiobon.Core.IServices/BASE/IBaseServices.cs +++ b/Tiobon.Core.IServices/BASE/IBaseServices.cs @@ -103,6 +103,7 @@ namespace Tiobon.Core.IServices.BASE Task DeleteByIds(object[] ids); Task Update(long Id, TEditDto model); + Task Update(Dictionary editModels); Task Update(List model); Task Update(TEntity entity, string where); diff --git a/Tiobon.Core.Repository/BASE/BaseRepository.cs b/Tiobon.Core.Repository/BASE/BaseRepository.cs index c6b8db3c..6d3b1452 100644 --- a/Tiobon.Core.Repository/BASE/BaseRepository.cs +++ b/Tiobon.Core.Repository/BASE/BaseRepository.cs @@ -82,6 +82,16 @@ namespace Tiobon.Core.Repository.Base return await _db.Queryable().In(objId).AnyAsync(); } + /// + /// 查询实体数据是否存在 + /// + /// + /// + public bool Any(object objId) + { + return _db.Queryable().In(objId).Any(); + } + /// /// 根据ID查询一条数据 /// diff --git a/Tiobon.Core.Repository/BASE/IBaseRepository.cs b/Tiobon.Core.Repository/BASE/IBaseRepository.cs index 66e9d0ab..d396c93a 100644 --- a/Tiobon.Core.Repository/BASE/IBaseRepository.cs +++ b/Tiobon.Core.Repository/BASE/IBaseRepository.cs @@ -20,6 +20,13 @@ namespace Tiobon.Core.IRepository.Base /// Task AnyAsync(object objId); + /// + /// 查询实体数据是否存在 + /// + /// + /// + bool Any(object objId); + /// /// 根据Id查询实体 /// diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs index a4b8ed0a..3aeaa55d 100644 --- a/Tiobon.Core.Services/BASE/BaseServices.cs +++ b/Tiobon.Core.Services/BASE/BaseServices.cs @@ -12,6 +12,7 @@ using Tiobon.Core.Common.UserManager; using Tiobon.Core.IRepository.Base; using Tiobon.Core.IServices.BASE; using Tiobon.Core.Model; +using Tiobon.Core.Repository.Base; namespace Tiobon.Core.Services.BASE { @@ -464,6 +465,29 @@ namespace Tiobon.Core.Services.BASE ent.UpdateProg = api; return await BaseDal.Update(entity); } + public async Task Update(Dictionary editModels) + { + HttpRequest request = UserContext.Context.Request; + var api = request.Path.ObjToString().TrimEnd('/').ToLower(); + var ip = GetUserIp(UserContext.Context); + + List entities = new List(); + foreach (var keyValuePairs in editModels) + { + if (keyValuePairs.Value == null || !BaseDal.Any(keyValuePairs.Key)) + continue; + + var entity = await BaseDal.QueryById(keyValuePairs.Key); + + ConvertTEditDto2TEntity(keyValuePairs.Value, entity); + BasePoco ent = entity as BasePoco; + ent.UpdateIP = ip; + ent.UpdateProg = api; + entities.Add(entity); + } + + return await BaseDal.Update(entities); + } /// /// 更新实体数据 ///