系统总览与代码地图

一句话理解

DGJ2.0 是一个围绕服务站经营的进销存系统:上游承接商品、订单、活动、支付、OA、调拨、TMS 等中心系统,下游给 PC 后台、App、小程序、渠道方和报表平台提供业务能力。

技术形态

  • PHP 版本要求:composer.json 中为 php >= 7.1
  • 框架风格:CodeIgniter 老项目,入口控制器在 application/controllers
  • 依赖:Guzzle、Monolog、MongoDB、Redis、Elasticsearch 6.7、PhpSpreadsheet、kz/kzmq、league/csv
  • 自动加载:App\\ 指向 application/
  • 数据访问:大量模型继承老模型基类,模型目录在 application/models
  • 服务层:新老并存,application/Services 偏新,application/service 偏老

入口层

  • application/controllers/scm:传统进销存页面入口,包含采购、销售、库存、收付款、任务。
  • application/controllers/po:新采购相关入口,如采购订单详情、购物车、采购退货。
  • application/controllers/sale:销售和出库相关入口。
  • application/controllers/basedata:基础资料管理,如商品、客户、供应商、库存、价格、区域。
  • application/controllers/inner:内部 API,给 OPS、活动、渠道、移动商城等系统使用。
  • application/controllers/app:App 侧控制器。
  • application/controllers/tasks:定时任务和 MQ 消费入口。
  • application/controllers/reports:报表页面和报表接口入口。
  • application/controllers/allcarpart:全车件相关业务入口。

服务层

  • application/service/scm/InvPoService.php:老采购单列表、详情、关闭、退货展示等逻辑。
  • application/Services/PoOrders/PoOrderSer.php:新采购领域服务,负责订单校验、创建、自制单同步、关闭、支付状态等。
  • application/service/scm/InvSaService.php:老销售出库列表、详情、对账、核销等逻辑。
  • application/Services/SaOrders/SaOrderSer.php:销售订单创建、出库、来源场景转换、库存扣减和下游同步。
  • application/Services/Storage/InventorySer.php:库存流水和实时库存变更。
  • application/Services/Activity/FlashActivitySer.php:OPS 秒杀活动管理。
  • application/Services/Activity/FlashSaleSer.php:服务站侧秒杀商品、购物车、预览、下单、支付状态联动。
  • application/Services/MoveMall:移动商城、智能询价、机器人、补货、马上送。
  • application/Services/Channel:大客户渠道订单、商品、售后。
  • application/Services/Mq/MqSer.php:MQ 生产者封装。
  • application/Services/SyncOrder:销售单和出库单同步到下游。

模型层

常见模型目录和业务含义:

  • application/models/bs:基础资料,商品、库存、客户、供应商、服务站、品牌、分类、账户。
  • application/models/orders:采购单、销售单、预订单、采购关闭、采购出库、付款信息。
  • application/models/saOrders:销售订单、销售出库单、销售异常、品牌统计。
  • application/models/payment:收付款单、明细、还款单。
  • application/models/activity:活动、秒杀活动、秒杀购物车、秒杀订单、活动商品。
  • application/models/moveMall:移动商城、微仓、机器人会话、关键词、补货退货。
  • application/models/channel:渠道订单、渠道订单明细、渠道售后。
  • application/models/report:报表模型。

配置层

  • application/config/routes.php:少量显式路由,多数沿 CI 默认 controller/method 路由。
  • application/config/apis.php:老开放接口 code 到 service 文件映射,例如订单状态、出库、收款成功回调。
  • application/config/appapis.php:App 接口 code 到 app service 文件映射,覆盖登录、商品、销售、采购、资金、系统、WMS、盘点。
  • application/config/mq.php:MQ 配置。
  • application/config/redis.phpmemcached.phpmongodb.phpelasticsearch.php:缓存和检索配置。
  • application/config/tables.php:大量表常量来源之一。

外部系统边界

  • 订单中心:采购正向、售后、取消、自制订单下发、关闭。
  • 支付中心:在线支付成功、支付异常、退款、授信还款、白条到期。
  • OA:活动、授信或审批类业务的审批结果。
  • OPS:活动配置、商品活动、品牌授权、白名单等运营能力。
  • 商品中心:物料、结算价、套包、限购、敏感词、销售限价。
  • 调拨中心 / TMS:发货、配送、物流状态、第三方运单号。
  • SAAS / APP:E站商城、E站维修、订单和出库同步。
  • 报表中心 / Hologres:采购、销售、库存、利润等聚合查询。

主链路脑图

基础资料
  -> 商品/客户/供应商/仓库/货位/价格
  -> 采购、销售、库存、活动共用

采购
  -> 草稿 -> 提交 -> 审核/支付 -> 待出库 -> 配送/入库 -> 完成/关闭/退货
  -> 影响采购明细、库存、付款、报表、订单中心

销售
  -> 开单 -> 待出库 -> 出库 -> 派送 -> 送达 -> 对账 -> 核销
  -> 影响库存、收款、客户余额、APP/SAAS 同步

活动/秒杀
  -> OPS 建活动 -> OA 审批 -> 服务站选购 -> 生成秒杀单 -> 生成采购单 -> 支付/关闭回写

移动商城/渠道
  -> 外部订单/询价/机器人 -> DGJ 销售或采购单 -> 库存/支付/配送 -> 外部系统回调

任务/MQ
  -> 支付、OA、订单中心、商品中心、TMS、SAAS 消息
  -> 补偿、同步、状态推进、缓存刷新