Просмотр исходного кода

@
fix: resolveTenantId 使用 selectByEnterpriseIdIgnoreTenant 跳过租户过滤

普通 selectOne + LambdaQueryWrapper 会被 TenantInnerInterceptor 注入
WHERE tenant_id=0,通知回调无认证上下文时查不到企业记录。
改用 @InterceptorIgnore(tenantLine=true) 标注的方法。
@

alphaH 12 часов назад
Родитель
Сommit
76c4c4a651

+ 3 - 10
java/src/main/java/com/payment/platform/module/payment/notification/handler/BillHandler.java

@@ -232,13 +232,8 @@ public class BillHandler extends BaseNotifyHandler {
         bill.setStatus("NEW");
 
         // 支付宝通知回调无认证上下文,需根据 enterprise_id 查 tenant_id
-        if (existing == null && bill.getTenantId() == null && StrUtil.isNotBlank(enterpriseId)) {
-            EnterpriseEntity ent = enterpriseMapper.selectOne(
-                    new LambdaQueryWrapper<EnterpriseEntity>()
-                            .eq(EnterpriseEntity::getEnterpriseId, enterpriseId));
-            if (ent != null && ent.getTenantId() != null) {
-                bill.setTenantId(ent.getTenantId());
-            }
+        if (existing == null && bill.getTenantId() == null) {
+            bill.setTenantId(resolveTenantId(enterpriseId));
         }
 
         if (existing != null) {
@@ -436,9 +431,7 @@ public class BillHandler extends BaseNotifyHandler {
      */
     private Long resolveTenantId(String enterpriseId) {
         if (StrUtil.isBlank(enterpriseId)) return null;
-        EnterpriseEntity ent = enterpriseMapper.selectOne(
-                new LambdaQueryWrapper<EnterpriseEntity>()
-                        .eq(EnterpriseEntity::getEnterpriseId, enterpriseId));
+        EnterpriseEntity ent = enterpriseMapper.selectByEnterpriseIdIgnoreTenant(enterpriseId);
         return ent != null ? ent.getTenantId() : null;
     }
 

+ 1 - 3
java/src/main/java/com/payment/platform/module/payment/notification/handler/OrderHandler.java

@@ -135,9 +135,7 @@ public class OrderHandler extends BaseNotifyHandler {
 
     private Long resolveTenantId(String enterpriseId) {
         if (StrUtil.isBlank(enterpriseId)) return null;
-        EnterpriseEntity ent = enterpriseMapper.selectOne(
-                new LambdaQueryWrapper<EnterpriseEntity>()
-                        .eq(EnterpriseEntity::getEnterpriseId, enterpriseId));
+        EnterpriseEntity ent = enterpriseMapper.selectByEnterpriseIdIgnoreTenant(enterpriseId);
         return ent != null ? ent.getTenantId() : null;
     }
 }

+ 1 - 3
java/src/main/java/com/payment/platform/module/payment/notification/handler/VoucherHandler.java

@@ -200,9 +200,7 @@ public class VoucherHandler extends BaseNotifyHandler {
 
     private Long resolveTenantId(String enterpriseId) {
         if (StrUtil.isBlank(enterpriseId)) return null;
-        EnterpriseEntity ent = enterpriseMapper.selectOne(
-                new LambdaQueryWrapper<EnterpriseEntity>()
-                        .eq(EnterpriseEntity::getEnterpriseId, enterpriseId));
+        EnterpriseEntity ent = enterpriseMapper.selectByEnterpriseIdIgnoreTenant(enterpriseId);
         return ent != null ? ent.getTenantId() : null;
     }
 }