😎代码优化

This commit is contained in:
zuohuaijun 2025-04-16 12:35:16 +08:00
parent 4fad9e5f15
commit 8525434149
2 changed files with 11 additions and 9 deletions

View File

@ -27,7 +27,7 @@
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" /> <PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" /> <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" Aliases="BouncyCastleV2" /> <PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" Aliases="BouncyCastleV2" />
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.17.4" /> <PackageReference Include="Elastic.Clients.Elasticsearch" Version="9.0.0" />
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.43" /> <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.43" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.43" /> <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.43" />
<PackageReference Include="Furion.Pure" Version="4.9.7.43" /> <PackageReference Include="Furion.Pure" Version="4.9.7.43" />

View File

@ -123,29 +123,31 @@ public class SysEnumService : IDynamicApiController, ITransient
var newEnumType = enumTypeList.Where(u => !updatedEnumCodes.Contains(u.TypeName)).ToList(); var newEnumType = enumTypeList.Where(u => !updatedEnumCodes.Contains(u.TypeName)).ToList();
var (newDictTypes, newDictDatas) = GetNewSysDicts(newEnumType); var (newDictTypes, newDictDatas) = GetNewSysDicts(newEnumType);
// 若是sqlite、pg、mysql、sqlserver则采用批量处理 // 若是Sqlite、PostgreSQL、MySql、SqlServer、GaussDB、Kdbndp则采用批量处理
bool useBulk = _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.Sqlite bool enableBulk = _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.Sqlite
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.PostgreSQL || _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.PostgreSQL
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.MySql || _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.MySql
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.MySqlConnector || _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.MySqlConnector
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.SqlServer; || _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.SqlServer
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.GaussDB
|| _db.CurrentConnectionConfig.DbType == SqlSugar.DbType.Kdbndp;
// 执行数据库操作 // 执行数据库操作
if (updatedDictTypes.Count > 0) if (updatedDictTypes.Count > 0)
{ {
if (useBulk) await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(updatedDictTypes); if (enableBulk) await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(updatedDictTypes);
else await _db.Updateable(updatedDictTypes).ExecuteCommandAsync(); else await _db.Updateable(updatedDictTypes).ExecuteCommandAsync();
} }
if (updatedDictDatas.Count > 0) if (updatedDictDatas.Count > 0)
{ {
if (useBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(updatedDictDatas); if (enableBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(updatedDictDatas);
else await _db.Updateable(updatedDictDatas).ExecuteCommandAsync(); else await _db.Updateable(updatedDictDatas).ExecuteCommandAsync();
} }
if (newSysDictDatas.Count > 0) if (newSysDictDatas.Count > 0)
{ {
if (useBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newSysDictDatas); if (enableBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newSysDictDatas);
else else
{ {
// 达梦用db.Insertable(newSysDictDatas).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入 // 达梦用db.Insertable(newSysDictDatas).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入
@ -157,13 +159,13 @@ public class SysEnumService : IDynamicApiController, ITransient
if (newDictTypes.Count > 0) if (newDictTypes.Count > 0)
{ {
if (useBulk) await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(newDictTypes); if (enableBulk) await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(newDictTypes);
else await _db.Insertable(newDictTypes).ExecuteCommandAsync(); else await _db.Insertable(newDictTypes).ExecuteCommandAsync();
} }
if (newDictDatas.Count > 0) if (newDictDatas.Count > 0)
{ {
if (useBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newDictDatas); if (enableBulk) await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newDictDatas);
else else
{ {
// 达梦用db.Insertable(newDictDatas).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入 // 达梦用db.Insertable(newDictDatas).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入