CaiWuXiTong/config/jushuitan.php
limeng b038909cb0 feat: 发货数据页接入(caiwu 直连聚水潭/奇门)
- 聚水潭奇门客户端与发货同步器骨架: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
2026-09-16 10:57:12 +08:00

47 lines
2.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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)
],
];