yeg
2026-09-12 d32e0dee609ab13220908ab28a11390bede07c84
talent-card-server/src/main/java/com/talentcard/server/business/admin/AdminBusinessService.java
@@ -292,8 +292,10 @@
            "select count(*) as pending_count, max(created_at) as latest_time from merchant_onboarding_application where status = 'pending'");
      addPendingNotice(notices, "merchant-bank-card", "银行卡申请", "您有 %d 条银行卡申请待审核", "/merchant-settlement?kind=bank-cards",
            "select count(*) as pending_count, max(created_at) as latest_time from merchant_bank_card where status = 'pending'");
      addPendingNotice(notices, "merchant-withdrawal", "提现审核", "您有 %d 条提现申请待审核", "/merchant-settlement?kind=withdrawals",
            "select count(*) as pending_count, max(created_at) as latest_time from merchant_withdrawal where status = 'pending'");
      // 自动提现没有人工审核环节:提现记录的状态由斗拱的通知或查询收敛,后台只读。
      // 但重试到上限的失败提现会把金额留在记录里不再自动顺延,需要人工处理,所以单独提醒。
      addPendingNotice(notices, "merchant-withdrawal-stuck", "提现失败待处理", "您有 %d 笔提现失败且金额已停止自动重试", "/merchant-settlement?kind=withdrawals",
            "select count(*) as pending_count, max(w.created_at) as latest_time from merchant_withdrawal w where w.status = 'failed' and exists (select 1 from merchant_withdrawal_order a join benefit_order o on o.id = a.order_id where a.withdrawal_id = w.id and a.released_at is null and o.withdrawal_status = 1)");
      addPendingNotice(notices, "medical-reservation", "体检预约", "您有 %d 条体检预约待处理", "/medical-reservations",
            "select count(*) as pending_count, max(submitted_at) as latest_time from service_application where deleted = 0 and application_type = 'MEDICAL_RESERVATION' and status = '待处理'");
      addPendingNotice(notices, "medical-application", "就医申请", "您有 %d 条就医申请待处理", "/medical-applications",