- 聚水潭奇门客户端与发货同步器骨架:QimenClient(签名+POST)、ShippingDataSynchronizer(erp.sctrade.query 列表 + erp.sradesku.query 明细 + upsert + modified 水位) - 发货明细扁平展示表 jst_oms_shipping(对齐工作平台发货数据 47 列/顺序,用于快递运费核算);原始表 jst_sctrade/_items/_skus/_receiver + jst_sync_state - 快递应付新增「发货数据」页:Pages.contentForShippingData + 视图 + business_navigation 导航项(slug=shipping-data) - ShippingOrderRepository 读展示表;artisan jushuitan:sync-shipping + 每10分钟增量调度(JST_SYNC_ENABLED 默认关) - 落库连接 jushuitan_local(本地容器,env 可覆盖);演示 Seeder(6 条家具发货样例);.env.jushuitan.example Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
47 lines
2.1 KiB
PHP
47 lines
2.1 KiB
PHP
<?php
|
||
|
||
/**
|
||
* 聚水潭(聚石塔/奇门)开放平台接入配置。
|
||
*
|
||
* caiwu 自建奇门客户端直连聚水潭拉取原始销售出库单,脱离 jiansun。
|
||
* 复用工作平台现有授权(同一套 app_key / app_secret / customerId / v)。
|
||
*
|
||
* 凭证只放 runtime/.env 或系统数据库私有配置,权限 600,不入 Git / PR / 日志。
|
||
* 未填 app_key / app_secret 前,客户端拒绝发起请求,不会同步任何数据。
|
||
*/
|
||
return [
|
||
// 奇门(聚石塔)网关地址,对应工作平台配置 ErpJSTUrl。
|
||
'gateway_url' => env('JST_QIMEN_URL', ''),
|
||
|
||
// 授权凭证(复用现有)。
|
||
'app_key' => env('JST_APP_KEY', ''),
|
||
'app_secret' => env('JST_APP_SECRET', ''),
|
||
'customer_id' => env('JST_CUSTOMER_ID', ''),
|
||
|
||
// 奇门固定参数。
|
||
'format' => env('JST_FORMAT', 'json'),
|
||
'version' => env('JST_API_VERSION', '2'),
|
||
'simplify' => env('JST_SIMPLIFY', 'true'),
|
||
|
||
// 落地存储连接:默认本地 MySQL 容器(jushuitan_local,见 config/database.php),
|
||
// 与远程共享镜像库隔离;上生产时用 env JST_DB_CONNECTION 覆盖。
|
||
'connection' => env('JST_DB_CONNECTION', 'jushuitan_local'),
|
||
|
||
// 同步参数。
|
||
'sync' => [
|
||
'page_limit' => (int) env('JST_SYNC_PAGE_LIMIT', 100), // 每页条数(奇门 limit)
|
||
'overlap_hours' => (int) env('JST_SYNC_OVERLAP_HOURS', 48), // 增量重叠窗口,补迟到更新
|
||
'window_hours' => (int) env('JST_SYNC_WINDOW_HOURS', 24), // 单次拉取时间窗口
|
||
'max_pages' => (int) env('JST_SYNC_MAX_PAGES', 0), // 单次最多翻页,0=不限
|
||
'request_timeout' => (int) env('JST_REQUEST_TIMEOUT', 30), // 秒
|
||
'retry_times' => (int) env('JST_RETRY_TIMES', 5),
|
||
'retry_sleep_ms' => (int) env('JST_RETRY_SLEEP_MS', 1000),
|
||
],
|
||
|
||
// 接口方法名(对应工作平台 ErpTradeData 中的调用)。
|
||
'methods' => [
|
||
'sctrade_list' => 'erp.sctrade.query', // 出库单列表(按时间窗分页)
|
||
'sctrade_detail' => 'erp.sradesku.query', // 单据完整明细(按 tradeId)
|
||
],
|
||
];
|