Explorar o código

fix: EnterpriseMapper全部通知查询跳过租户过滤+通知流程补全tenant_id

alphaH hai 1 día
pai
achega
42c7cd3bba

+ 5 - 0
java/src/main/java/com/payment/platform/module/payment/enterprise/mapper/EnterpriseMapper.java

@@ -14,4 +14,9 @@ public interface EnterpriseMapper extends BaseMapper<EnterpriseEntity> {
     @InterceptorIgnore(tenantLine = "true")
     @Select("SELECT * FROM pay_enterprise WHERE out_biz_no = #{outBizNo}")
     EnterpriseEntity selectByOutBizNoIgnoreTenant(@Param("outBizNo") String outBizNo);
+
+    /** 通知处理用 — 按 enterpriseId 查记录,跳过租户过滤 */
+    @InterceptorIgnore(tenantLine = "true")
+    @Select("SELECT * FROM pay_enterprise WHERE enterprise_id = #{enterpriseId}")
+    EnterpriseEntity selectByEnterpriseIdIgnoreTenant(@Param("enterpriseId") String enterpriseId);
 }

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

@@ -94,9 +94,7 @@ public class EnterpriseHandler extends BaseNotifyHandler {
             return;
         }
 
-        EnterpriseEntity entity = enterpriseMapper.selectOne(
-                new LambdaQueryWrapper<EnterpriseEntity>()
-                        .eq(EnterpriseEntity::getEnterpriseId, enterpriseId));
+        EnterpriseEntity entity = enterpriseMapper.selectByEnterpriseIdIgnoreTenant(enterpriseId);
 
         if (entity == null) {
             // 通知到达时本地尚未创建 → 先查预登记记录(applyInvite 创建的 PENDING 记录)