From 6778472e04ec092e566fb950d0427095dabcae18 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期五, 08 十一月 2024 19:37:36 +0800
Subject: [PATCH] Create WIDESEAWCS_Communicator.DLL使用说明文档2024-11-08.pdf
---
WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
index 70879ee..3dd4ce7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
@@ -5,10 +5,13 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core.Attributes;
using WIDESEAWCS_Core.Const;
+using WIDESEAWCS_Core.DB;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.HttpContextUser;
+using WIDESEAWCS_Core.Seed;
using WIDESEAWCS_Core.Tenants;
namespace WIDESEAWCS_Core.AOP
@@ -26,6 +29,30 @@
{
baseEntity.CreateDate = DateTime.Now;
}
+
+ PropertyInfo propertyInfo = entityInfo.EntityColumnInfo.PropertyInfo;
+ SequenceAttirbute? sequenceAttirbute = propertyInfo.GetCustomAttribute<SequenceAttirbute>();
+ if (sequenceAttirbute != null)
+ {
+ if (propertyInfo.GetValue(entityInfo.EntityValue)?.ObjToInt() <= 0)
+ {
+ SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig
+ {
+ ConfigId = MainDb.CurrentDbConnId,
+ ConnectionString = DBContext.GetMainConnectionDb().Connection,
+ IsAutoCloseConnection = true,
+ DbType = MainDb.DbType,
+ });
+ int count = sugarClient.Ado.GetScalar($"SELECT COUNT(*) FROM sys.sequences WHERE name = '{sequenceAttirbute.SequenceName}'").ObjToInt();
+ if (count == 0)
+ {
+ string sql = $"CREATE SEQUENCE {sequenceAttirbute.SequenceName} AS [int] START WITH {sequenceAttirbute.StartWith} INCREMENT BY {sequenceAttirbute.Increment} MINVALUE {sequenceAttirbute.SeqMinValue} MAXVALUE {sequenceAttirbute.SeqMaxValue} {(sequenceAttirbute.IsCycle ? "CYCLE" : "")} CACHE";
+ sugarClient.Ado.ExecuteCommand(sql);
+ }
+ int seq = sugarClient.Ado.GetScalar($"SELECT NEXT VALUE FOR {sequenceAttirbute.SequenceName}").ObjToInt();
+ propertyInfo.SetValue(entityInfo.EntityValue, seq, null);
+ }
+ }
}
else if (entityInfo.OperationType == DataFilterType.UpdateByObject)
--
Gitblit v1.9.3