API 与入口字典

DGJ2.0 的入口不是单一 REST 风格,而是 PC 控制器、内部 API、App API code、老开放接口、任务消费者混在一起。本文按入口类型整理定位方法。

业务目标

  • 前后端联调时能快速知道接口 code 对应哪个文件。
  • 排查问题时能从 URL、接口 code、MQ 事件反推控制器和 Service。
  • 避免把外部系统回调接口当作前端接口直接调用。

PC 后台页面入口

| 业务 | 常见控制器 | 说明 | | --- | --- | --- | | 采购 | application/controllers/scm/InvPo.php | 采购单、采购退货、关闭等 PC 页面 | | 采购入库 | application/controllers/scm/InvPu.php | 采购入库单 | | 销售 | application/controllers/scm/InvSa.php | 销售单、销售出库 | | 库存 | application/controllers/basedata/Inventory.phpapplication/controllers/scm/InvOi.phpInvTf.php | 库存查询、其他出入库、调拨 | | 财务 | application/controllers/scm/Payment.phpReceipt.phpAccCheck.php | 收付款、对账 | | 秒杀 | application/controllers/scm/FlashSale.phpapplication/controllers/inner/activity/FlashActivity.php | OPS/内部活动管理和服务站侧 | | 报表 | application/controllers/reports/*.php | 采购、销售、库存、利润、客户、对账 | | 基础资料 | application/controllers/basedata/*.php | 商品、客户、供应商、仓库、货位、价格 |

PC 控制器常见调用链是 Controller -> 老式 application/service/* 或新式 application/Services/* -> Model -> application/config/tables.php 常量。

内部 API 入口

内部 API 主要在 application/controllers/inner,常见业务如下:

| 目录/文件 | 用途 | | --- | --- | | inner/CacheManage.php | 缓存刷新、补偿类入口 | | inner/Goods.phpinner/Materiel.phpinner/GoodsSearch.php | 商品/物料查询 | | inner/Inventory.php | 库存内部查询和同步 | | inner/Payment.php | 支付/财务内部能力 | | inner/SaleActivity.phpinner/activity/* | 活动、秒杀管理 | | inner/moveMall/* | 移动商城、E站、机器人、秒杀服务站侧 | | inner/channel/* | 大客户渠道订单和售后 | | inner/sys/OpsWhitelist.php | OPS 白名单配置 |

内部 API 通常依赖 token、系统来源、sid、服务站维度,不能默认给前端直接调用。

App API code 映射

App API 映射在 application/config/appapis.php。接口请求通常带一个业务 code,再映射到 application/service/api/app 下的类和方法。

| code 示例 | 映射 | 业务 | | --- | --- | --- | | apppurOrderAddDraft | app.purchase.purOrderAddDraft | 采购草稿 | | apppurOrderAdd | app.purchase.purOrderAdd | 采购正式提交 | | apppurOrderList | app.purchase.purOrderList | 采购列表 | | apppurCloseOrder | app.purchase.purCloseOrder | 采购关闭 | | appsaleOrderAdd | app.sale.saleOrderAdd | 销售新增 | | appsale2StockOut | app.sale2.SaleStockOut | 销售出库 | | appfundReceiptAdd | app.fund.receiptAdd | 收款单新增 | | appfundPaymentAdd | app.fund.paymentAdd | 付款单新增 | | transportTaking | app.transport.transportTaking | 配送接单 | | moveOpen | app.moveStore.Open | 微仓开通 | | inventoryCheckCreate | app.moveStore.InventoryCheckCreate | 移动盘点创建 |

常见上下文字段:JXCSIDJXCUIDJXCUNAMEsidstoreIdcontactIdorderIdbillNo。不要只看请求参数,还要看登录态注入的服务站和用户信息。

老开放 API 与 allcarpart 路由

老开放接口映射在 application/config/apis.php,URL 路由补充在 application/config/routes.php

| 入口 | 用途 | | --- | --- | | application/controllers/Openapi.php | 老开放接口统一入口 | | application/config/apis.php | code 到服务方法映射 | | application/controllers/allcarpart/* | 全车件采购、销售、库存、支付等显式路由 | | application/config/routes.php | allcarpart URL 到控制器方法映射 |

例子:allcarpart/purchase/po-return-order/batch-return-import 映射到 allcarpart/purchase/PoReturnOrder/batchReturnImportallcarpart/sale/sa-order/import 映射到 allcarpart/sale/SaOrder/import

任务和回调入口

| 文件 | 来源 | 说明 | | --- | --- | --- | | tasks/PayCenterNotify.php | 支付中心 | 支付结果、退款、支付异常、白条还款 | | tasks/OrderCenterNotify.php | 订单中心 | 采购审核、售后、关闭、自制订单 | | tasks/OaNotify.phpOaResultNotify.php | OA | 审批回调、OA 结果同步 | | tasks/ItemCenterNotify.php | 商品中心 | 限购、套包、价格、敏感词 | | tasks/DispatchCenterNotify.php | 调拨/配送中心 | 出库、物流、自提、退货确认 | | tasks/SaasOrderNotify.php | SAAS/DGJ 内部事件 | 库存事件、采购关闭确认、SAAS 订单 | | tasks/ChannelOrderNotify.php | 大客户渠道 | 渠道订单、发货、售后、审核 | | tasks/FlashSaleTask.php | 定时/补偿 | 秒杀超时、商品状态、购物车失效、补偿 |

任务入口通常由 MQ 或 crontab 调用,排查时要同时看事件类型、消息体关键字段、幂等记录和业务表最终状态。

核心 Service 字典

| Service | 主要业务 | | --- | --- | | application/service/scm/InvPoService.php | 老采购主流程 | | application/service/scm/InvSaService.php | 老销售/出库主流程 | | application/Services/PoOrders/PoOrderSer.php | 新采购领域服务 | | application/Services/SaOrders/SaOrderSer.php | 新销售领域服务 | | application/Services/Storage/InventorySer.php | 库存写入和实时库存 | | application/Services/Activity/FlashActivitySer.php | 秒杀活动管理 | | application/Services/Activity/FlashSaleSer.php | 秒杀服务站侧购买链路 | | application/Services/Mq/MqSer.php | MQ 生产者 | | application/Services/SyncOrder/SyncOrderSer.php | 销售/出库同步下游 |

常用定位命令

rg -n "\"apppurOrderAdd\"|\"appsale2StockOut\"|\"appfundPaymentAdd\"" application/config/appapis.php
rg -n "class PayCenterNotify|TYPE_PAYCENTER_PAY_RESULT|paycenterPayResult" application/controllers/tasks application/KzData/Enums
rg -n "allcarpart/.+sa-order|po-return-order|payment-order" application/config/routes.php
rg -n "function .*Import|function .*Export|download.*Template" application/controllers application/Services application/service

联调注意事项

  • PC 页面入口一般依赖后台 session 和 $this->jxcsys,不能直接用裸 curl 复现。
  • App API 的 code 映射和实际类名不一定同名,先查 appapis.php
  • 内部 API 和 tasks 多数依赖来源鉴权、签名、MQ 框架或约定字段。
  • 同一个业务可能存在 PC、App、inner、tasks 多个入口,修复公共 Service 时要全部回归。