From 5a05fe74a34c693b7546f88f86c208f09848670f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E5=B3=B0?= Date: Wed, 15 Jul 2026 18:51:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/RiskEngine/RiskRuleApplication.cs | 2 +- .../Modules/RiskEngine/RiskRuleService.cs | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/YLErpDAL/Modules/RiskEngine/RiskRuleApplication.cs b/YLErpDAL/Modules/RiskEngine/RiskRuleApplication.cs index 68219350..a7a186d9 100644 --- a/YLErpDAL/Modules/RiskEngine/RiskRuleApplication.cs +++ b/YLErpDAL/Modules/RiskEngine/RiskRuleApplication.cs @@ -37,7 +37,7 @@ namespace YLErp.Modules.RiskEngine /// /// 应用状态。 /// 约定: - /// 1 = Active(已生效) + /// 1 = Active(已启用) /// 2 = Disabled(已停用) /// 3 = Deleted(已删除) /// 在实际执行时,通常只加载 Active 状态的应用配置。 diff --git a/YLErpDAL/Modules/RiskEngine/RiskRuleService.cs b/YLErpDAL/Modules/RiskEngine/RiskRuleService.cs index 55cc4893..be59ce93 100644 --- a/YLErpDAL/Modules/RiskEngine/RiskRuleService.cs +++ b/YLErpDAL/Modules/RiskEngine/RiskRuleService.cs @@ -907,7 +907,7 @@ namespace YLErp.Modules.RiskEngine { var rule = DbContext.glms_risk_rule.FirstOrDefault(r => r.id == ruleId && r.Status == RiskRuleStatus.Active); if (rule == null) - throw new ServiceException("仅已生效的规则可以停用"); + throw new ServiceException("仅已启用的规则可以停用"); rule.Status = RiskRuleStatus.Disabled; rule.UpdateOptId = UserId; @@ -1324,7 +1324,7 @@ namespace YLErp.Modules.RiskEngine { var app = DbContext.glms_risk_rule_application.FirstOrDefault(a => a.id == applicationId && a.Status == RiskRuleStatus.Active); if (app == null) - throw new ServiceException("仅已生效的应用配置可以停用"); + throw new ServiceException("仅已启用的应用配置可以停用"); app.Status = RiskRuleStatus.Disabled; app.UpdateOptId = UserId; @@ -1342,17 +1342,23 @@ namespace YLErp.Modules.RiskEngine /// public BatchOperationResult BatchEnableApplications(List applicationIds) { + _logger.Info($"[批量启用] 开始 - 传入应用数: {applicationIds?.Count ?? 0}, IDs: {string.Join(",", applicationIds ?? new List())}"); + var apps = DbContext.glms_risk_rule_application .Where(a => applicationIds.Contains(a.id) && a.Status == RiskRuleStatus.Disabled) .ToList(); + _logger.Info($"[批量启用] DB查询完成 - 匹配到 {apps.Count} 条已停用应用"); + if (apps.Count != applicationIds.Count) throw new ServiceException("部分应用配置不存在或当前状态不允许启用"); var allErrors = new List(); foreach (var app in apps) { + _logger.Info($"[批量启用] 校验规则 - 应用ID: {app.id}, RuleIds: {app.RuleIds}"); var errors = ValidateAndEnsureRuleCache(app.RuleIds); + _logger.Info($"[批量启用] 规则校验结果 - 应用ID: {app.id}, Errors: {(errors.Any() ? string.Join(";", errors) : "无")}"); if (errors.Any()) allErrors.Add($"应用 '{app.Description}':{string.Join(";", errors)}"); } @@ -1370,6 +1376,7 @@ namespace YLErp.Modules.RiskEngine foreach (var app in apps) { + _logger.Info($"[批量启用] 写入状态 - 应用ID: {app.id}"); app.Status = RiskRuleStatus.Active; app.UpdateOptId = UserId; app.UpdateOptName = UserName; @@ -1378,8 +1385,11 @@ namespace YLErp.Modules.RiskEngine WriteAuditLog("APP_BATCH_ENABLE", "APPLICATION", app.id, ResolveRuleNames(app.RuleIds), "批量启用应用配置"); } + _logger.Info("[批量启用] 保存数据库..."); DbContext.SaveChanges(); + _logger.Info("[批量启用] 刷新应用缓存..."); RiskEngineService.GetInstance().RefreshApplication(); + _logger.Info("[批量启用] 完成"); return new BatchOperationResult { @@ -1394,15 +1404,20 @@ namespace YLErp.Modules.RiskEngine /// public BatchOperationResult BatchDisableApplications(List applicationIds) { + _logger.Info($"[批量停用] 开始 - 传入应用数: {applicationIds?.Count ?? 0}, IDs: {string.Join(",", applicationIds ?? new List())}"); + var apps = DbContext.glms_risk_rule_application .Where(a => applicationIds.Contains(a.id) && a.Status == RiskRuleStatus.Active) .ToList(); + _logger.Info($"[批量停用] DB查询完成 - 匹配到 {apps.Count} 条已启用应用"); + if (apps.Count != applicationIds.Count) throw new ServiceException("部分应用配置不存在或当前状态不允许停用"); foreach (var app in apps) { + _logger.Info($"[批量停用] 写入状态 - 应用ID: {app.id}"); app.Status = RiskRuleStatus.Disabled; app.UpdateOptId = UserId; app.UpdateOptName = UserName; @@ -1411,8 +1426,11 @@ namespace YLErp.Modules.RiskEngine WriteAuditLog("APP_BATCH_DISABLE", "APPLICATION", app.id, ResolveRuleNames(app.RuleIds), "批量停用应用配置"); } + _logger.Info("[批量停用] 保存数据库..."); DbContext.SaveChanges(); + _logger.Info("[批量停用] 刷新应用缓存..."); RiskEngineService.GetInstance().RefreshApplication(); + _logger.Info("[批量停用] 完成"); return new BatchOperationResult {