From 7e474a002a52d5d73a7f622e5d986e66aef046ad Mon Sep 17 00:00:00 2001
From: wyw <571921741@qq.com>
Date: Thu, 23 Oct 2025 11:03:02 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9F=90=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E7=9A=84conn=20FullGet=20=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IServices/OP/IOPTenantDBConnService.cs | 7 ++
.../Services/OP/OPTenantDBConnService.cs | 68 ++++++++++++++++++-
.../Controllers/Api/ApproveController.cs | 16 ++++-
3 files changed, 88 insertions(+), 3 deletions(-)
diff --git a/APT.BaseData.Domain/IServices/OP/IOPTenantDBConnService.cs b/APT.BaseData.Domain/IServices/OP/IOPTenantDBConnService.cs
index e9151ba..d493f25 100644
--- a/APT.BaseData.Domain/IServices/OP/IOPTenantDBConnService.cs
+++ b/APT.BaseData.Domain/IServices/OP/IOPTenantDBConnService.cs
@@ -15,5 +15,12 @@ namespace APT.BaseData.Domain.IServices.OP
///
///
Dictionary GetConnDictionary(Guid? ORG_IDBeside);
+
+ ///
+ /// 获取 ORG_ID的数据库链接
+ ///
+ /// 过滤值
+ ///
+ string GetConnByORGID(Guid ORG_ID);
}
}
diff --git a/APT.BaseData.Services/Services/OP/OPTenantDBConnService.cs b/APT.BaseData.Services/Services/OP/OPTenantDBConnService.cs
index f9995b3..f4a9c4a 100644
--- a/APT.BaseData.Services/Services/OP/OPTenantDBConnService.cs
+++ b/APT.BaseData.Services/Services/OP/OPTenantDBConnService.cs
@@ -78,7 +78,7 @@ namespace APT.BaseData.Services.Services.OP
}
}
}
- }
+ }
#endregion
if (dicORGCONN != null && dicORGCONN.Count > 0)
@@ -98,5 +98,71 @@ namespace APT.BaseData.Services.Services.OP
}
return dicORGCONN;
}
+
+ ///
+ /// 获取 ORG_ID的数据库链接
+ ///
+ /// 过滤值
+ ///
+ public string GetConnByORGID(Guid ORG_ID)
+ {
+ Dictionary dicORGCONN = new Dictionary();
+ //从Redis中获取所有数据库链接值
+
+ bool isRedisConfig = true;
+ var redisConfig = APT.Infrastructure.Api.ConfigurationManager.AppSettings["RedisFormConfig"];
+ if (!string.IsNullOrEmpty(redisConfig))
+ isRedisConfig = bool.Parse(redisConfig);
+ if (isRedisConfig)
+ {
+ if (CsRedisManager.KeyExists(RedisCacheKey.ConnAll))
+ dicORGCONN = CsRedisManager.StringGet>(RedisCacheKey.ConnAll);
+ }
+ #region Redis没找到 去数据库查找
+
+ if (dicORGCONN == null || dicORGCONN.Count < 1)
+ {
+ string conn = string.Empty;
+ IEnumerable listTent = null;
+ using (var context = new MigrationContext())
+ {
+ Expression> expression = e => e.DB_CONN_ID.HasValue;
+ listTent = context.GetEntities(expression, null, null);
+ List listConnID = listTent.Select(e => e.DB_CONN_ID.Value).ToList();
+ var listDbConn = context.GetEntities(e => listConnID.Contains(e.ID), null, null);
+ if (listDbConn != null && listDbConn.Count() > 0)
+ {
+ var env = ConfigurationManager.AppSettings["Env"];
+ foreach (var item in listDbConn)
+ {
+ conn = item.DB_CONN;
+ if (env == ((int)EnvType.外网).ToString())
+ {
+ conn = item.DB_CONN_WAN;
+ }
+ if (!dicORGCONN.ContainsKey(item.ID))
+ {
+ dicORGCONN.Add(listTent.First(e => e.DB_CONN_ID == item.ID).ID, conn);
+ }
+ }
+ if (isRedisConfig && dicORGCONN.Count > 0)
+ {
+ try
+ {
+ CsRedisManager.StringSet>(RedisCacheKey.ConnAll, dicORGCONN);//所有数据库链接 存入 Redis
+ }
+ catch { }
+ }
+ }
+ }
+ }
+ #endregion
+
+ if (dicORGCONN != null && dicORGCONN.Count > 0 && dicORGCONN.ContainsKey(ORG_ID))
+ {
+ return dicORGCONN[ORG_ID];
+ }
+ return "";
+ }
}
}
diff --git a/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs b/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs
index 4b9d122..3f77f8d 100644
--- a/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs
+++ b/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs
@@ -31,6 +31,7 @@
using APT.BaseData.Services.Services.FM;
using APT.BaseData.Services.Sys;
using APT.MS.Domain.Entities.FO;
+ using APT.BaseData.Domain.IServices.OP;
[Route("api/PF/PFApprove")]
public partial class ApproveController : AuthorizeApiController
@@ -43,8 +44,9 @@
IFMDepartmentService DepartmentService { get; set; }
IFMUserService UserService { get; set; }
+ IOPTenantDBConnService OPTenantDBConnService { get; set; }
- public ApproveController(IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IRepository repository, IPFCodeRuleService codeRuleService, IFMDepartmentService departmentService, IFMUserService userService)
+ public ApproveController(IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IRepository repository, IPFCodeRuleService codeRuleService, IFMDepartmentService departmentService, IFMUserService userService, IOPTenantDBConnService oPTenantDBConnService)
{
NotificationTaskService = notificationTaskService;
SysLogService = sysLogService;
@@ -52,6 +54,7 @@
CodeRuleService = codeRuleService;
DepartmentService = departmentService;
UserService = userService;
+ OPTenantDBConnService = oPTenantDBConnService;
}
///
/// 更新或新增数据
@@ -653,8 +656,17 @@
//集团人员 通过 首页点击 获取对应的数据库链接 返回结果
//这边怎么调用 原生的 GetEntity 方法
- //ICommonService service = _serviceLocator.GetService();
+ string conn = OPTenantDBConnService.GetConnByORGID(new Guid(filter.Parameter1));
+ //var service = APT.Infrastructure.Api.ServiceLocator.Instance.GetService();
+ filter.IgnoreOrgRule = true;
+ //filter.OrgId = null;
+ filter.SpecifyDbConn = conn;
+ filter.SpecifyTenant = "0005";
+ //var ccc = service.GetEntities(e => !e.IS_DELETED, filter, null);
+
+
+ var aaa = GetEntities(e => !e.IS_DELETED, filter, null);
}
else
{