# xk-api 定时命令 ## 调度基础设施 生产环境需要**每分钟**执行一次调度: - Linux: `* * * * * php artisan schedule:run` - 或通过 LaravelS 内置调度 调度定义位于 `routes/console.php`。 ## 定时任务 | 命令 | 频率 | 说明 | 类 | |------|------|------|-----| | `app:update-prescription-status-in-messages` | 每分钟 | 批量更新聊天消息中的处方状态 | `UpdatePrescriptionStatusInMessagesCommand` | | `app:accrue-salesperson-commission` | 每小时 | 补算今天已付款但无佣金记录的订单 | `AccrueSalespersonCommissionCommand` | | `app:sync-store-bank-card-status` | 每 2 小时 | 同步易票联银行卡上报状态 | `SyncStoreBankCardStatusCommand` | ::: warning 跨库注意 `app:accrue-salesperson-commission` 需要同时查询两个库:订单在 `z_o_xk`,佣金记录在 `z_xk`。两步查询,不允许跨库 JOIN。 ::: ## 已禁用的定时任务 | 命令 | 原频率 | 说明 | 状态 | |------|--------|------|------| | `hy:sync-supervise` | 每天 02:00 | 浙江互联网医院监管数据同步 | 已迁移到 xk-hy-transit-go,已注释 | ## 手动维护命令 以下命令不自动调度,需要手动执行: | 命令 | 说明 | 参数 | |------|------|------| | `app:backfill-reconciliation` | 回填已结算但缺少 `yii_reconciliation` 记录的订单 | `--order-id`, `--limit`, `--dry-run` | | `app:backfill-settle-audit-logs` | 从 `yii_ledger_log` 回填 `xk_account_able_change_log` | `--order-id`, `--register-id`, `--limit`, `--dry-run` | | `app:backfill-withdraw-apply-audit-logs` | 回填历史提现申请的审计日志 | `--apply-id`, `--order-no`, `--limit`, `--dry-run` | | `app:fix-fund-water-timestamps` | 修复 `yii_fund_water` 中 `created_at=0` 的记录 | `--order-id`, `--limit`, `--dry-run` | | `app:express` | 快递追踪同步(快递100 API) | — | | `app:update-account-balance-command` | 账户余额更新 | — | | `hy:sync-supervise` | 监管数据同步(手动触发) | — | ## 命令详情 ### app:update-prescription-status-in-messages 每分钟扫描聊天消息表(`message_type=4` 即处方消息),根据处方当前状态批量更新消息中的状态字段,保持前端展示与实际处方状态一致。 ### app:accrue-salesperson-commission 补偿逻辑:查询今天已付款的产品订单,检查是否有对应的佣金记录,没有则自动补算。需要跨两个数据库查询。 ### app:sync-store-bank-card-status 调用易票联 API 查询银行卡上报状态,更新 `xk_store_bank_card_report` 表中的 `epl_state` 和 `report_status`。 ### app:backfill-reconciliation 数据修复命令:找出 `yii_ledger` 中已结算但 `yii_reconciliation` 缺失的记录,补建对账数据。支持 `--dry-run` 模式预览。 ### app:backfill-settle-audit-logs 从旧表 `yii_ledger_log` 读取结算记录,在新表 `xk_account_able_change_log` 中补建对应的可提现金额变更日志。 ### app:backfill-withdraw-apply-audit-logs 为历史提现申请补建申请阶段的审计日志。 ### app:fix-fund-water-timestamps 修复 `yii_fund_water` 表中 `created_at=0` 的异常记录,使用订单的 `pay_time` 作为时间戳。 ### app:express 调用快递100 API 同步物流状态,签收后自动触发 `AutoConfirmReceiptOrderJob` 确认收货。