DGJ2.0 业务梳理总览

本文档按真实代码入口梳理 /Users/zhoujiangbin/code/docker-dev-env/www/dgj2.0 项目,目标是让新人先理解业务,再顺着控制器、Service、模型、枚举和任务入口继续追代码。

项目定位

DGJ2.0 是快准站管家类的 PHP/CodeIgniter 单体系统,核心职责是服务站的进销存、采购、销售、库存、财务、报表、活动、移动商城、外部渠道和上下游系统同步。

代码整体不是一个纯 API 项目,而是多种入口混合:

  • PC 后台页面:application/controllers/scmapplication/controllers/basedataapplication/controllers/reportsapplication/views
  • 内部 API:application/controllers/inner
  • App / 小程序 API 映射:application/config/appapis.phpapplication/service/api/app
  • 老开放接口映射:application/config/apis.phpapplication/service/api
  • 异步任务 / MQ 消费:application/controllers/tasks
  • 领域服务层:application/Services 和老式 application/service
  • 数据模型:application/models
  • 业务枚举:application/KzData/Enums

推荐阅读顺序

  1. 系统总览与代码地图
  2. 基础资料、商品与库存
  3. 采购、采购退货与采购入库
  4. 销售、出库、配送与收款
  5. 活动、秒杀与营销链路
  6. 移动商城、E站、智能询价与机器人
  7. 外部渠道、全车件与大客户订单
  8. 财务、报表、MQ、OA 与同步任务
  9. 二期继续整理大纲
  10. 表结构与业务表字典
  11. 状态机和订单类型字典
  12. API 与入口字典
  13. MQ、回调与补偿任务地图
  14. 采购完整排查手册
  15. 销售完整排查手册
  16. 库存一致性排查手册
  17. 秒杀活动专项手册
  18. 财务和支付排查手册
  19. 权限、菜单和白名单
  20. 导入导出和 Excel 模板
  21. 搜索、缓存与索引
  22. 报表口径专题
  23. 外部系统对接清单
  24. 本地开发、联调和日志定位
  25. 高风险公共文件影响面
  26. PDA / GPDA 扫码盘点与仓内作业
  27. 服务站间调拨 STF 与调拨申请
  28. 对账单策略、生成、发送与收款同步
  29. 售后申请与销售退货申请
  30. 税票与发票开具
  31. 金融通道、银行支付与授信分期
  32. 专属授信、返利与资金池
  33. 帮助中心、知识库、题库与搜索
  34. 轮胎小程序登记、理赔与属性配置
  35. 账号登录、设备、PC 授权与安全
  36. 总分店、总部账号与经营报表
  37. 客户运营、C 端营销活动与优惠券
  38. 配送履约、自提、骑手与三方配送
  39. AI 控制台、机器人、IM 与 Udesk
  40. 数据修复、迁移脚本与临时任务治理
  41. 报价、智能询价与报价规则专题
  42. 电池用户、蓄电池可售范围专题
  43. 首配、预订单与首批配货专题
  44. 大客户、临采与渠道订单专题
  45. 成本价、动态成本与利润计算专题
  46. 地址、区域、承运商时效专题
  47. 消息通知、站内信与推送专题
  48. 开放平台、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:待审核、待发货、部分发货、已完成、已取消。

快速定位方法

查一个业务时,优先按下面顺序走:

  1. 先找入口控制器,例如 application/controllers/scm/InvPo.php
  2. 再找同名或近似 Service,例如 application/service/scm/InvPoService.phpapplication/Services/PoOrders/PoOrderSer.php
  3. 再看模型目录,例如 application/models/orders/PoOrderModel.phpapplication/models/orders/PoOrderInfoModel.php
  4. 看枚举确认状态、订单类型、来源类型,例如 PoOrderEnums.phpSaOrderEnums.php
  5. 如果涉及外部系统,继续看 application/controllers/tasksapplication/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