DGJ2.0 业务梳理总览
本文档按真实代码入口梳理 /Users/zhoujiangbin/code/docker-dev-env/www/dgj2.0 项目,目标是让新人先理解业务,再顺着控制器、Service、模型、枚举和任务入口继续追代码。
项目定位
DGJ2.0 是快准站管家类的 PHP/CodeIgniter 单体系统,核心职责是服务站的进销存、采购、销售、库存、财务、报表、活动、移动商城、外部渠道和上下游系统同步。
代码整体不是一个纯 API 项目,而是多种入口混合:
- PC 后台页面:
application/controllers/scm、application/controllers/basedata、application/controllers/reports、application/views - 内部 API:
application/controllers/inner - App / 小程序 API 映射:
application/config/appapis.php和application/service/api/app - 老开放接口映射:
application/config/apis.php和application/service/api - 异步任务 / MQ 消费:
application/controllers/tasks - 领域服务层:
application/Services和老式application/service - 数据模型:
application/models - 业务枚举:
application/KzData/Enums
推荐阅读顺序
- 系统总览与代码地图
- 基础资料、商品与库存
- 采购、采购退货与采购入库
- 销售、出库、配送与收款
- 活动、秒杀与营销链路
- 移动商城、E站、智能询价与机器人
- 外部渠道、全车件与大客户订单
- 财务、报表、MQ、OA 与同步任务
- 二期继续整理大纲
- 表结构与业务表字典
- 状态机和订单类型字典
- API 与入口字典
- MQ、回调与补偿任务地图
- 采购完整排查手册
- 销售完整排查手册
- 库存一致性排查手册
- 秒杀活动专项手册
- 财务和支付排查手册
- 权限、菜单和白名单
- 导入导出和 Excel 模板
- 搜索、缓存与索引
- 报表口径专题
- 外部系统对接清单
- 本地开发、联调和日志定位
- 高风险公共文件影响面
- PDA / GPDA 扫码盘点与仓内作业
- 服务站间调拨 STF 与调拨申请
- 对账单策略、生成、发送与收款同步
- 售后申请与销售退货申请
- 税票与发票开具
- 金融通道、银行支付与授信分期
- 专属授信、返利与资金池
- 帮助中心、知识库、题库与搜索
- 轮胎小程序登记、理赔与属性配置
- 账号登录、设备、PC 授权与安全
- 总分店、总部账号与经营报表
- 客户运营、C 端营销活动与优惠券
- 配送履约、自提、骑手与三方配送
- AI 控制台、机器人、IM 与 Udesk
- 数据修复、迁移脚本与临时任务治理
- 报价、智能询价与报价规则专题
- 电池用户、蓄电池可售范围专题
- 首配、预订单与首批配货专题
- 大客户、临采与渠道订单专题
- 成本价、动态成本与利润计算专题
- 地址、区域、承运商时效专题
- 消息通知、站内信与推送专题
- 开放平台、OpenAPI 与老接口兼容专题
核心业务模块
- 基础资料:服务站、客户、供应商、商品、品牌、分类、仓库、货位、价格、权限。
- 采购链路:采购草稿、提交、审核、待支付、待出库、配送、完成、关闭、退货。
- 销售链路:销售开单、出库、派送、送达、对账、核销、撤销、销售退货。
- 库存链路:库存流水写入、实时库存加减、仓库货位维度库存、盘点、调拨、其他出入库。
- 活动链路:普通销售活动、赠品活动、秒杀活动、活动订单转采购单。
- 移动商城链路:E站商城、E站维修、E站活动、E站 APP、AI 机器人、智能询价、马上送。
- 渠道链路:大客户渠道订单、全车件订单、外部订单审批、发货和签收。
- 财务链路:收付款单、在线支付回调、账户余额、白条授信、对账单。
- 报表链路:采购、销售、库存、利润、客户、往来账,部分查询走 Hologres/报表中心。
- 同步链路:订单中心、支付中心、OA、调拨中心、商品中心、SAAS、APP、TMS、VIN、IM。
二期专题模块
- 地基字典:表结构、状态机、入口 API、MQ/回调/补偿任务。
- 排查手册:采购、销售、库存一致性、秒杀活动、财务支付。
- 长期维护:权限菜单、导入导出、缓存索引、报表口径、外部系统、本地联调、高风险公共文件。
- 深水区专题:PDA/GPDA、服务站间调拨、对账单、售后、税票、金融通道、专属授信、知识库、轮胎、账号安全、总分店、客户运营、配送、AI/IM/Udesk、数据修复。
- 补充专项:报价、电池用户、首配预订单、大客户临采、动态成本、地址区域、消息通知、OpenAPI 兼容。
最重要的状态口径
- 采购单状态来自
application/KzData/Enums/PoOrderEnums.php:草稿、待处理、审核中、待出库、配送中、已完成、审核不通过、已关闭、待支付、待退款、已过期、待仓库入库。 - 销售单状态来自
application/KzData/Enums/SaOrderEnums.php:待出库、部分出库、已完成、已关闭。 - 销售出库单状态也来自
SaOrderEnums.php:已出库、派送中、已送达、已对账、已核销、已撤销。 - 秒杀活动状态来自
application/KzData/Enums/FlashActivityEnums.php:草稿、审批中、审批通过、审批驳回;页面状态分未开始、进行中、已结束;秒杀订单分待支付、已支付、已取消、已关闭。 - 渠道订单状态来自
application/KzData/Enums/ChannelOrderEnums.php:待审核、待发货、部分发货、已完成、已取消。
快速定位方法
查一个业务时,优先按下面顺序走:
- 先找入口控制器,例如
application/controllers/scm/InvPo.php。 - 再找同名或近似 Service,例如
application/service/scm/InvPoService.php或application/Services/PoOrders/PoOrderSer.php。 - 再看模型目录,例如
application/models/orders/PoOrderModel.php、application/models/orders/PoOrderInfoModel.php。 - 看枚举确认状态、订单类型、来源类型,例如
PoOrderEnums.php、SaOrderEnums.php。 - 如果涉及外部系统,继续看
application/controllers/tasks和application/Services/Mq/MqSer.php。
关键排查命令
rg -n "function submitInvPo|function saveInvPo|function cancelWaitPayOrder" application/controllers application/service application/Services
rg -n "ORDERTYPE_FLASH_ORDER|SRC_ORDER_TYPE_FLASH_ACTIVITY" application
rg -n "garage_repair_order_created|paycenter_pay_result|oa_audit" application
rg -n "class .*Enums|BILLSTATUS|ORDER_STATUS|STATUS_MAP" application/KzData/Enums