本地开发、联调和日志定位
本文整理 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/service、application/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 写到文档或聊天里。
联调定位步骤
- 先确认入口。
- URL 页面:查
routes.php和控制器。 - App code:查
appapis.php。 - 开放接口 code:查
apis.php。 - MQ:查
MqEventEnums.php和controllers/tasks。
- 确认上下文。
sid、用户 id、客户/供应商 id、订单号、业务时间。- 是否本地数据、预发数据或线上数据。
- 查业务表。
- 采购看采购主单/明细/支付/入库。
- 销售看销售主单/明细/出库。
- 库存看流水和实时库存。
- 支付看付款单、账户流水、支付明细。
- 查日志。
- 本地日志目录按框架和部署配置确认。
- 预发/线上日志优先按服务名、订单号、sid、MQ event 检索。
- 查外部系统。
- 支付、订单中心、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_audit、po_close_order_confirm。 - 支付:支付流水、
paycenter_pay_result、paycenter_refund_result。 - 销售:销售单号、出库单号、
garage_repair_order、garage_repair_outbound。 - 库存:业务单号、
inventory_event、transType。 - 秒杀:秒杀订单号、活动 id、
ORDERTYPE_FLASH_ORDER、locked_qty。
本地和预发差异
- 外部回调本地可能收不到,需要手工构造消息或查预发。
- 缓存/ES/MQ 可能连不同环境,先确认配置。
- 预发数据可能被多人复用,排查前记录原始状态。
- 线上只做只读查询或走已确认的补偿脚本,避免直接改数据。
改动风险和回归清单
- 改配置:确认本地、预发、线上是否都需要同步。
- 改 API 映射:确认 code、类名、方法名一致。
- 改 MQ 消费:确认队列、事件、消息体、幂等。
- 改日志:保留订单号、sid、事件名,方便后续排查。