yml2213
|
3ec7febb8c
|
refactor(security): 简化为单主密钥架构,废弃离线重加密与冗余警告
- 废弃 DATA_ENCRYPTION_KEY 独立要求,敏感数据加密默认统一由 JWT_SECRET 派生
- 移除 cmd/reencrypt_secrets 离线全表重加密脚本与 docs/密钥轮换说明.md,避免生产原地 UPDATE 高危反模式
- 精简 Config.SecurityWarnings,不再刷屏 DATA_ENCRYPTION_KEY 未显式配置警告,保持启动日志干净
- 更新 .env.example、README.md 与项目分析文档说明
- 验证:make lint 与 make test 全量测试 100% 通过
|
2026-10-06 20:54:00 +08:00 |
|
yml2213
|
04c3369e6d
|
fix(admin): 顶栏常驻显示当前商户上下文并提供退出入口
问题:管理员的商户上下文存在 localStorage,之前只会在「平台商户」页点「成员」时被
写入,界面上没有任何提示,而且只在登录/登出时清除。管理员点过一次商户后,订单/商品/
钱包/成员等商户后台页面会一直停在该商户视角,而首页看板仍是平台口径——两个数字
看起来互相矛盾却无法解释。
- MainLayout 顶栏为管理员常驻显示「当前商户:xxx」,并用 Tooltip 说明哪些页面受它影响
- 提供「退出商户视角」按钮:清除 localStorage 后整页刷新,保证当前页已加载的数据
也按新上下文重新取一遍(只在上下文确实存在时出现)
- README 管理端章节同步说明
未做静默回退的取舍:商户上下文解析失败时后端仍返回 403。因为商户后台存在写操作
(人工下单、取消、成员管理),若自动回退到默认商户,写入会落到错误的商户上——
这是比"多点一下退出"严重得多的问题。
|
2026-10-06 20:40:09 +08:00 |
|
yml2213
|
8c12d1d448
|
fix(admin): 超管看不到下游订单——新增平台侧跨商户订单视图
问题:管理员首页 Dashboard 显示平台总量(37 单,跨全部商户),点进「发货订单」
却只有 29 单,两个数字互相矛盾且界面上没有任何解释。
根因是「平台管理员」在两套接口里语义不同:
- /api/dashboard:isPlatformAdmin 只看 JWT 角色 → 平台视角,跨商户聚合
- /api/merchant/*:Tenant 中间件强制落到单个 merchant_id → 商户成员视角。
管理员唯一的成员关系是自营商户,于是被静默框定在商户 1
且 34 条 /platform/* 路由中没有任何订单入口,前端也没有商户切换器或上下文提示。
修复(不改动商户侧隔离语义):
- 新增 GET /api/platform/orders,support 按商户/状态/来源/关键字筛选,缺省为全部商户
- Service 抽出共用的 orderFilters 集中校验,ListOrders 与 ListPlatformOrders 并行;
ListOrders 仍强制单商户,避免新增平台路径时顺手放宽商户侧可见范围
- FulfillmentOrder 增加 Merchant 关联字段,仅平台侧 Preload,商户侧响应结构不变
- 前端新增「下游订单(全部商户)」页与菜单项,「发货订单」更名为「发货订单(当前商户)」
- README 补充两个订单入口的说明,避免后来者重踩
验证:单测覆盖跨商户可见性、按商户筛选、筛选校验、以及商户侧隔离不回归;
实测新接口返回 37 单(自营 29 + 测试商户 8)且带商户信息,商户侧仍为 29 单且无 merchant 字段。
|
2026-10-06 20:28:41 +08:00 |
|
yml2213
|
97948e2ca6
|
docs: 记录 P2 处理结果并补充 TZ 环境变量说明
- 项目分析补充第三轮(P2)处理结果与验证方式,含时区改动的风险说明
- README 环境变量表补充 TZ:业务时间按北京时间处理,且 pgx 会把 timestamptz
解码到进程时区,要求显式设为 Asia/Shanghai
- 遗留项收敛为:前端公共 chunk 体积、裸 time.Time 字段的 JSON 精度未对齐秒级约定
|
2026-10-06 19:59:14 +08:00 |
|
yml2213
|
14d297a591
|
docs: 补充项目分析并更新 README 目录结构
- 新增 docs/项目分析.md:项目定位、架构、数据模型、业务流、工程质量、
两轮优化记录(含验证证据)与遗留问题清单
- README 目录结构同步现有包(cmd/*、internal/database、testdb、store 等),
并说明 service 包按 delivery_*/rock_*/merchant_*/provider_* 前缀成组
|
2026-10-06 19:43:51 +08:00 |
|
yml2213
|
d821fe13df
|
fix(security): 分离 JWT 与数据加密密钥并新增启动安全体检
.env 中 JWT_SECRET 仍逐字节等于 .env.example 的示例值,且 DATA_ENCRYPTION_KEY
未设置、按 config.go 的回退逻辑实际等于 JWT_SECRET。任何见过仓库的人都能伪造
管理员 JWT,并解密库中全部 API Client / 回调密钥密文。
- JWT_SECRET 与 DATA_ENCRYPTION_KEY 改为各自独立的强随机值
- 新增 Config.SecurityWarnings():示例密钥 / 未分离 / release 下开调试日志均告警
- 新增 cmd/reencrypt_secrets:默认只预演,-apply 才写库;幂等,坏数据不中断整轮
- 新增 docs/密钥轮换说明.md;.gitignore 忽略 .env.bak*
- release 模式下关闭 OPEN_API_DEBUG
|
2026-10-06 19:42:42 +08:00 |
|
yml2213
|
a637101ca8
|
重构:移除环境变量管理员初始化
|
2026-08-13 14:21:22 +08:00 |
|
yml2213
|
1f85add5e0
|
功能:优化账号分层与管理员初始化
|
2026-08-13 13:18:41 +08:00 |
|
yml2213
|
2264851d5d
|
拆分 service 与前端大文件,修复 CORS 配置与格式问题
- 后端 internal/service 按职责拆分:
fulfillment.go(1397→527)拆出 wallet/timeout/data/order/query/dashboard/shipnotify
delivery.go(1124→801)拆出 upstream/link/state/helpers
merchant.go(855→251)拆出 member/product/api_client/catalog/helpers
- 前端 MerchantCenter.tsx(1327→606)拆出 merchantCenterTabs/merchantCenterUtils
- docker-compose backend 透传 CORS_ALLOWED_ORIGINS
- CORS 白名单实现(config/router/README/.env.example 配套)
- 修复 gofmt 与文件尾部多余空行
|
2026-08-05 13:32:11 +08:00 |
|
yml2213
|
569109cd92
|
修改常见默认端口
|
2026-08-04 15:34:34 +08:00 |
|
yml2213
|
5f547546c3
|
日志按天分割并自动清理:app-YYYYMMDD.log,保留天数可配
- dailyFileWriter 按天轮转:跨天自动切换到新文件(app-20260804.log)
- LOG_RETAIN_DAYS 控制保留天数(默认 30),到期自动删除
- docker-compose 透传 LOG_RETAIN_DAYS,README 更新环境变量说明
- 补充轮转/清理单测
|
2026-08-04 09:42:20 +08:00 |
|
yml2213
|
eac025c92f
|
加强发货提交可靠性并统一契约口径
- 发货提交记录阶段推进与失败分类,失败不再清空 result_data
- 超时巡检区分已提交上游与提交中断两类卡单,避免误判
- 已提交上游的失败订单禁止自动重发,防止重复发货
- ship_attempts 仅在 claim 时计数,失败阶段只记录分类信息
- CanFulfill 对已提交上游的失败单返回不可发货
- 删除预留的 pending 订单状态,统一订单状态模型
- 契约改名:order.fulfillment.updated -> order.shipping.updated,fulfillment:read -> shipping:read
- 文档修正 scope 为或关系
|
2026-07-31 18:42:52 +08:00 |
|
yml2213
|
4aa5258c2d
|
统一发货口径并保护结果数据
|
2026-07-31 17:45:20 +08:00 |
|
yml2213
|
04130e5ec8
|
统一订单单状态模型
|
2026-07-31 17:02:19 +08:00 |
|
yml2213
|
677bdbbc1c
|
优化订单履约状态处理
|
2026-07-31 16:28:30 +08:00 |
|
yml2213
|
a091806283
|
优化 Docker 开发启动流程
|
2026-07-31 16:27:51 +08:00 |
|
yml2213
|
ee956e2e01
|
优化发货接口对接流程
|
2026-07-30 23:44:50 +08:00 |
|
yml2213
|
dde6f2c269
|
添加 README 部署文档
|
2026-07-24 15:17:22 +08:00 |
|