😎1、恢复不自动时间本地化 2、优化枚举转字典入库速度 3、升级依赖

This commit is contained in:
zuohuaijun 2025-04-05 11:55:35 +08:00
parent 63f7dbd17f
commit cb1f063bfc
3 changed files with 22 additions and 35 deletions

View File

@ -123,31 +123,22 @@ 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);
// 执行数据库操作 // 需要更新的字典类型
if (updatedDictTypes.Count > 0) if (updatedDictTypes.Count > 0)
await _db.Updateable(updatedDictTypes).ExecuteCommandAsync(); await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(updatedDictTypes);
// 需要更新的字典数据
if (updatedDictDatas.Count > 0) if (updatedDictDatas.Count > 0)
await _db.Updateable(updatedDictDatas).ExecuteCommandAsync(); await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(updatedDictDatas);
// 需要新增的字典数据
if (newSysDictDatas.Count > 0) if (newSysDictDatas.Count > 0)
{ await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newSysDictDatas);
// 达梦用db.Insertable(newDictTypes).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入 // 需要新增的字典类型
// 达梦不支持storageable2.BulkUpdateAsync 功能
foreach (var dd in newSysDictDatas)
await _db.Insertable(dd).ExecuteCommandAsync();
}
if (newDictTypes.Count > 0) if (newDictTypes.Count > 0)
await _db.Insertable(newDictTypes).ExecuteCommandAsync(); await _db.Fastest<SysDictType>().PageSize(300).BulkMergeAsync(newDictTypes);
// 需要新增的字典数据
if (newDictDatas.Count > 0) if (newDictDatas.Count > 0)
{ await _db.Fastest<SysDictData>().PageSize(300).BulkMergeAsync(newDictDatas);
// 达梦用db.Insertable(newDictTypes).ExecuteCommandAsync(stoppingToken)插入400条以上会内容溢出错误所以改用逐条插入
// 达梦不支持storageable2.BulkUpdateAsync 功能
foreach (var dd in newDictDatas)
await _db.Insertable(dd).ExecuteCommandAsync();
}
} }
/// <summary> /// <summary>

View File

@ -24,17 +24,14 @@ using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using MQTTnet.AspNetCore; using MQTTnet.AspNetCore;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using OnceMi.AspNetCore.OSS; using OnceMi.AspNetCore.OSS;
using RabbitMQ.Client; using RabbitMQ.Client;
using SixLabors.ImageSharp.Web.DependencyInjection; using SixLabors.ImageSharp.Web.DependencyInjection;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode; using System.Text.Unicode;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -99,7 +96,7 @@ public class Startup : AppStartup
{ {
setting.DateFormatHandling = DateFormatHandling.IsoDateFormat; setting.DateFormatHandling = DateFormatHandling.IsoDateFormat;
setting.DateTimeZoneHandling = DateTimeZoneHandling.Local; setting.DateTimeZoneHandling = DateTimeZoneHandling.Local;
setting.Converters.AddDateTimeTypeConverters(localized: true); // 时间本地化 //setting.Converters.AddDateTimeTypeConverters(localized: true); // 时间本地化
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // 时间格式化 setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // 时间格式化
setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用 setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用
// setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写 // setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写
@ -107,12 +104,11 @@ public class Startup : AppStartup
// setting.Converters.AddLongTypeConverters(); // long转string防止js精度溢出 超过17位开启 // setting.Converters.AddLongTypeConverters(); // long转string防止js精度溢出 超过17位开启
// setting.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; // 解决DateTimeOffset异常 // setting.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; // 解决DateTimeOffset异常
// setting.DateParseHandling = DateParseHandling.None; // 解决DateTimeOffset异常 // setting.DateParseHandling = DateParseHandling.None; // 解决DateTimeOffset异常
// setting.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); // 解决DateTimeOffset异常 //setting.Converters.Add(new IsoDateTimeConverter
setting.Converters.Add(new IsoDateTimeConverter //{
{ // DateTimeFormat = "yyyy-MM-dd HH:mm:ss", // 时间格式
DateTimeFormat = "yyyy-MM-dd HH:mm:ss", // 时间格式 // DateTimeStyles = DateTimeStyles.AssumeLocal | DateTimeStyles.AdjustToUniversal
DateTimeStyles = DateTimeStyles.AssumeLocal | DateTimeStyles.AdjustToUniversal //}); // 解决DateTimeOffset异常
}); // 解决DateTimeOffset异常
} }
services.AddControllersWithViews() services.AddControllersWithViews()
@ -124,7 +120,7 @@ public class Startup : AppStartup
.AddJsonOptions(options => .AddJsonOptions(options =>
{ {
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); // 禁止Unicode转码 options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); // 禁止Unicode转码
options.JsonSerializerOptions.Converters.AddDateTimeTypeConverters("yyyy-MM-dd HH:mm:ss", localized: true); // 时间格式 //options.JsonSerializerOptions.Converters.AddDateTimeTypeConverters("yyyy-MM-dd HH:mm:ss", localized: true); // 时间格式
}); });
// SqlSugar // SqlSugar

View File

@ -2,7 +2,7 @@
"name": "admin.net.pro", "name": "admin.net.pro",
"type": "module", "type": "module",
"version": "2.4.33", "version": "2.4.33",
"lastBuildTime": "2025.04.03", "lastBuildTime": "2025.04.05",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架", "description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun", "author": "zuohuaijun",
"license": "MIT", "license": "MIT",
@ -97,21 +97,21 @@
"@vitejs/plugin-vue-jsx": "^4.1.2", "@vitejs/plugin-vue-jsx": "^4.1.2",
"@vue/compiler-sfc": "^3.5.13", "@vue/compiler-sfc": "^3.5.13",
"code-inspector-plugin": "^0.20.7", "code-inspector-plugin": "^0.20.7",
"eslint": "^9.23.0", "eslint": "^9.24.0",
"eslint-plugin-vue": "^10.0.0", "eslint-plugin-vue": "^10.0.0",
"globals": "^16.0.0", "globals": "^16.0.0",
"less": "^4.2.2", "less": "^4.2.2",
"openapi-ts-request": "^1.3.0", "openapi-ts-request": "^1.3.0",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.86.2", "sass": "^1.86.3",
"terser": "^5.39.0", "terser": "^5.39.0",
"typescript": "^5.8.2", "typescript": "^5.8.3",
"vite": "^6.2.5", "vite": "^6.2.5",
"vite-plugin-cdn-import": "^1.0.1", "vite-plugin-cdn-import": "^1.0.1",
"vite-plugin-compression2": "^1.3.3", "vite-plugin-compression2": "^1.3.3",
"vite-plugin-vue-setup-extend": "^0.4.0", "vite-plugin-vue-setup-extend": "^0.4.0",
"vue-eslint-parser": "^10.1.1" "vue-eslint-parser": "^10.1.2"
}, },
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [