本地开发、联调和日志定位

本文整理 DGJ2.0 本地开发和联调时的定位方法。不同机器环境可能有差异,具体配置以当前项目的 application/config、本地 Docker/Nginx/OpenResty 配置和实际环境变量为准。

业务目标

  • 新人能快速知道本地从哪里看配置、路由、日志。
  • 联调时能按单号、sid、接口 code、MQ 事件定位问题。
  • 避免把本地、预发、生产配置和数据混用。

项目入口

  • 项目根目录:/Users/zhoujiangbin/code/docker-dev-env/www/dgj2.0
  • CodeIgniter 配置:application/config
  • 路由:application/config/routes.php
  • App API 映射:application/config/appapis.php
  • 老开放 API 映射:application/config/apis.php
  • 控制器:application/controllers
  • Service:application/serviceapplication/Services
  • 模型:application/models
  • 枚举:application/KzData/Enums

配置定位

| 配置 | 文件 | | --- | --- | | 数据库 | application/config/database.php | | Redis | application/config/redis.php | | 路由 | application/config/routes.php | | 表常量 | application/config/tables.php | | App API | application/config/appapis.php | | 老开放 API | application/config/apis.php | | SAAS API | application/config/SaasApis.php |

敏感配置只记录文件路径,不要把密码、token、secret 写到文档或聊天里。

联调定位步骤

  1. 先确认入口。
  • URL 页面:查 routes.php 和控制器。
  • App code:查 appapis.php
  • 开放接口 code:查 apis.php
  • MQ:查 MqEventEnums.phpcontrollers/tasks
  1. 确认上下文。
  • sid、用户 id、客户/供应商 id、订单号、业务时间。
  • 是否本地数据、预发数据或线上数据。
  1. 查业务表。
  • 采购看采购主单/明细/支付/入库。
  • 销售看销售主单/明细/出库。
  • 库存看流水和实时库存。
  • 支付看付款单、账户流水、支付明细。
  1. 查日志。
  • 本地日志目录按框架和部署配置确认。
  • 预发/线上日志优先按服务名、订单号、sid、MQ event 检索。
  1. 查外部系统。
  • 支付、订单中心、OA、配送、商品中心问题,必须确认对方是否已经发消息。

常用命令

# 找入口
rg -n "apppurOrderAdd|appsale2StockOut|appfundPaymentAdd" application/config/appapis.php
rg -n "allcarpart|po-return-order|sa-order" application/config/routes.php
rg -n "paycenter_pay_result|ordercenter_order_audit|oa_audit" application/KzData/Enums application/controllers/tasks

# 找业务方法
rg -n "function .*Order|function .*Pay|function .*Stock|function .*Import" application/controllers application/service application/Services

# 找表常量
rg -n "SCM_PO_ORDER|SCM_SA_ORDER|SCM_INVENTORY|SCM_PAYMENT|FLASH_ORDER" application/config/tables.php

日志关键字建议

  • 采购:采购单号、订单中心单号、ordercenter_order_auditpo_close_order_confirm
  • 支付:支付流水、paycenter_pay_resultpaycenter_refund_result
  • 销售:销售单号、出库单号、garage_repair_ordergarage_repair_outbound
  • 库存:业务单号、inventory_eventtransType
  • 秒杀:秒杀订单号、活动 id、ORDERTYPE_FLASH_ORDERlocked_qty

本地和预发差异

  • 外部回调本地可能收不到,需要手工构造消息或查预发。
  • 缓存/ES/MQ 可能连不同环境,先确认配置。
  • 预发数据可能被多人复用,排查前记录原始状态。
  • 线上只做只读查询或走已确认的补偿脚本,避免直接改数据。

改动风险和回归清单

  • 改配置:确认本地、预发、线上是否都需要同步。
  • 改 API 映射:确认 code、类名、方法名一致。
  • 改 MQ 消费:确认队列、事件、消息体、幂等。
  • 改日志:保留订单号、sid、事件名,方便后续排查。