Skip to content

金刚系统技术运维与排障

本页给接手人处理线上问题使用。操作生产数据前必须先判断影响范围,涉及资金、合同、保险、真实订单的修复要留操作记录。

运行和发布

对象方式关键约束
storeapi后端云函数部署,验证通过后提交并推送远程分支触发部署。云函数内不要依赖长时间后台线程。任务型逻辑走计划任务、内部接口或脚本。
storeui微信小程序,构建后提交微信审核,审核通过后按发布时间发布。后端要兼容旧包,不能提前上线只支持新包的破坏性接口。
数据库MySQL jingangdata破坏性变更必须先备份、灰度、可回滚。
Redis登录、缓存、任务锁等。多实例任务要依赖分布式锁,不能只靠本地进程锁。

计划任务入口

任务入口作用排查重点
门店积分日结scripts/jingang_store_score_daily_settlement_bt.shmodule_task/store_score_settlement_task.py写入门店积分日结流水和批次。store_score_settlement_batch、日志文件、分布式锁。
全国标准单待派发scripts/cron/standard_staff_dispatch_pending.shscripts/run_scheduled_worker.py standard_staff_dispatch_pending扫描待派发标准单并选择候选员工。查订单状态、规则配置、员工池、派发日志。
全国标准单超时scripts/cron/standard_staff_dispatch_timeout.shstandard_staff_dispatch_timeout处理员工确认超时并顺延。查超时时间、attempt 状态、游标是否推进。
标准单结算scripts/cron/standard_order_settlement_process.shstandard_order_settlement_process服务完成后生成员工服务奖金。查结算任务、员工钱包流水、幂等键。
标准单通知scripts/cron/standard_order_notification_process.shstandard_order_notification_process消费通知 outbox。standard_order_notification_outbox 和微信发送结果。
月度品牌费scripts/run_scheduled_worker.py monthly_brand_feemodule_task/monthly_brand_fee_task.py扣门店钱包品牌费并影响派发状态。查钱包余额、钱包流水、门店积分派发状态。
员工提现打款scripts/cron/staff_withdrawal_payout_process.sh处理员工提现申请和打款。查提现申请、钱包流水、易宝状态。
员工站点等级刷新scripts/cron/staff_station_level_refresh.sh刷新员工站点等级。查任务结果和等级账户。
简历分享过期module_task/resume_share_expire_task.py将过期简历分享置为失效。resume_share_validity
保险待支付清理scripts/cron/cleanup_stale_insurance_pending.py清理超时待支付保险记录。先 dry-run,再 execute。
安心生活自动抓单module_task/anxin_life_auto_grab_task.py抓取或同步安心生活订单。alipay_anxin_*
卡单清理module_task/stuck_order_cleanup_task.py清理长期卡住订单。查规则中定义的超时小时数和订单日志。

常见问题排查

门店端入口不可见

  1. 查当前小程序角色是否为 store,本地是否有有效门店 token。
  2. internal_user 是否启用,是否有关联 company_idstore_uuidrole_id
  3. 查公司版本、到期时间和 contract_maintenance_mode。合同维护模式会隐藏线索、客户、订单、余额、家政人广场等入口。
  4. 查全部功能页是否被 companyAdminOnly 或合同维护过滤。
  5. 查后端接口是否返回权限错误,不能只看页面按钮是否显示。

门店端订单查不到或状态不对

  1. 先确认订单 business_mode:历史门店订单通常是 LEGACY,平台标准单是 PLATFORM_STANDARD_SOURCE
  2. order.store_uuidcurrent_controller 和当前账号数据范围。
  3. order.order_statusorder_status_nameorder_logs
  4. 若订单来自需求广场,继续查 demand_squareorder_payments、分账状态。
  5. 若门店说“派单后员工看不到”,查 order_waiter、员工手机号对应的 service_staff 身份、员工端跨门店查询。

代客下单无法新建

  1. 当前 OrderService.create_order_servicecreate_proxy_order_service 会在方法开头直接抛 1048 暂停异常。
  2. 前端 pages-home/sub-po.vue 仍保留页面和表单,但会提示代客下单升级中。
  3. 不要把 /api/v1/order/proxy-create 当作当前可用创单链路排查。
  4. 若后续恢复该能力,必须先移除暂停保护,再重新验收客户、地址、SKU、支付、渠道归因、门店/员工入口和通知。

前端封装有接口但后端没有路由

storeui/src/api/order.jsupdateServiceAddressaddOperationLog 是遗留封装,当前 storeapi/module_admin/controller/order_controller.py 没有对应路由。接手时不要只看前端 API 文件判断功能可用,必须同时查后端 controller 注册。

门店端余额、钱包或积分异常

  1. 先判断当前门店是否启用新钱包读口径;未启用时看 company.balance/company_transaction
  2. 新钱包看 store_wallet_accountstore_wallet_transactionidempotency_key
  3. 积分看 store_score_accountstore_score_transaction,不要和钱包余额混用。
  4. 月度品牌费、线索购买、人工调整都必须有流水或批次记录。
  5. 修复资金和积分时优先补偿流水或反向流水,不直接改账户余额。

员工端看不到订单

  1. 查员工登录态是否有效,员工 service_staff 是否 status = 1 且未删除。
  2. 查订单 order 是否已绑定该员工,或标准单 attempt 是否指向该员工。
  3. 查员工能力、服务区域、档期是否满足。
  4. 查通知 outbox 是否发送,微信 openid 是否存在。
  5. 查前端页面是否请求了正确 API,特别是员工端服务首页和服务记录页。

标准单一直未派发

  1. standard_order_rule_config 当前生效版本:总开关、允许来源、城市范围、排序规则、服务奖金比例、平台收款配置。
  2. 查订单是否符合自动派发条件。
  3. platform_product 和员工能力绑定是否完整。
  4. standard_staff_dispatch_pool 是否有启用候选。
  5. standard_staff_dispatch_log 的过滤原因。
  6. 查待派发任务是否运行,有无 dry-run 或锁冲突。

员工确认后状态没变

  1. 查 attempt 是否已更新为确认状态。
  2. order 是否同步为对应状态。
  3. order_logs 是否写入。
  4. 查并发锁是否导致更新被拒绝。
  5. 查接口返回错误和小程序端是否重试。

员工开始或完成服务失败

  1. 查当前订单状态是否符合状态机:开始服务要求 50,完成服务要求 60。
  2. 查当前员工是否对订单有权限,员工手机号是否能匹配订单服务人员。
  3. 开始服务必须有服务前照片;完成服务的服务后照片和签名可选。
  4. 查文件组是否创建成功,再查订单服务前/服务后/签名字段。
  5. 完成服务后继续查档期完成、结算任务、开发奖金任务和渠道通知是否成功。

员工能力、区域或休息日不生效

  1. staff_service_capability 和审核记录,确认能力是否审批通过。
  2. standard_staff_service_region 或区域申请是否生效。
  3. staff_rest_date 和固定休息日配置。
  4. standard_staff_schedule_lock 是否已有 ACTIVE 锁。
  5. order_waiter + order 是否已有 20/40/50/60/70 状态订单导致冲突。

员工服务奖金没到账

  1. 确认订单已完成,不是待评价、取消或异常。
  2. standard_order_settlement_task 是否有对应任务。
  3. standard_order_service_bonus_allocation 是否生成。
  4. staff_wallet_ledger 是否有收入流水。
  5. 查任务日志,确认是否因为幂等、余额、员工钱包状态被跳过。

门店积分异常

  1. store_score_account 当前分。
  2. store_score_transaction 对应日期和来源。
  3. 查是否有人工调整、日结、线索扣分或品牌费暂停影响。
  4. store_score_settlement_batch 是否成功。
  5. 如果影响线索派发,继续查 dispatch_statuspause_reason

合同保险待支付异常

  1. contract_paymentstore_payment_order 是否支付成功。
  2. contract_insurance 是否存在待同步记录。
  3. insurance_record 是否已生成保单或停在待支付。
  4. 查保险支付回调和第三方请求日志。
  5. 若是超时记录,先使用清理脚本 dry-run 确认可处理范围。

退保文档生成失败

  1. 查保单是否符合退保条件:产品、状态、是否已退保、起保日期。
  2. insurance_surrender_document 是否已有草稿或生成记录。
  3. 查付款截图、退款账户、开户行、户名、卡号是否完整。
  4. 查 OBS 或远程文档服务是否返回上传地址。
  5. insurance_operation_record 是否提交第三方失败。

易宝支付或入网异常

  1. yeepay_innet_recordyeepay_plate_qrcode 当前状态。
  2. store_payment_order 是否创建成功。
  3. yeepay_notification_log 是否有回调。
  4. 查商户号、收款码、分账配置是否一致。
  5. 支付回调必须幂等,不要重复写流水。

日志和证据

证据用途
order_logs订单状态变化和人工操作。
standard_staff_dispatch_log标准单自动派发原因。
standard_order_operation_log标准单人工处理记录。
staff_wallet_ledger员工钱包收入、提现、冻结。
store_wallet_transaction门店钱包资金流水。
store_score_transaction门店积分流水。
sys_oper_log云平台后台操作记录。
第三方回调日志表支付、保险、安心生活、易宝等接口追踪。

上线检查

  1. 后端变更先跑相关单测或至少启动检查。
  2. 涉及 storeui 时确认旧小程序兼容窗口。
  3. 涉及任务时确认宝塔脚本、内部接口、任务参数和日志路径。
  4. 涉及数据库时确认表结构、索引、幂等键和回滚方式。
  5. 涉及资金时必须有流水和重复执行保护。
  6. 涉及第三方时必须保留请求、响应和回调证据。

回滚原则

变更类型回滚方式
小程序页面不能即时回滚到未审核版本,只能回退到上一版已发布小程序或紧急发新包。
后端接口回退代码分支并触发云函数重新部署。
规则配置使用云平台恢复原配置,同时记录操作原因。
计划任务先停任务或改 dry-run,再修复数据和重新执行。
钱包/积分/支付不直接改余额,优先写反向流水或补偿流水。
合同/保险先确认第三方状态,再修本地状态,避免本地和第三方不一致。

用于金刚项目内部协作、运营培训和客户说明。