yml2213
22fcaa5945
feat(distribution): 分站收号压价解耦买家价(方案 B 新口径)
...
核心语义反转:receive_cost_delta 为压价点数,收号比例 = 主站参考比例 R + 点数,
点数越大号主收号价越低;买家售价锚定主站参考比例推导,不再随收号价联动。
- 迁移 000072:distribution_sites 新增 receive_cost_delta(旧 receive_ratio_delta 保留只读)
- receive_pricing:新增 Normalize/ApplySiteReceiveCostDelta;分站定价买家侧改用
R 锚点(referenceSellerCoinBasePrice),快照写入 site_receive_cost_delta 与 pricing_model 标记
- site_receive:新增 resolveSiteReceiveCostDelta 读取链路,旧 ResolveReceiveRatioDelta 保留
- 分成不变:压价差经结算层 profit 自动进入 35/40/25 三方分成池;
货架自主加价仍 100% 归分站,两条边界均以主站为锚
- 权限对齐旧字段:主站全局管理员与分站操作员均可设置
- 前端三端同步:主站 pricing.ts/usePricingCalculator 买卖解耦试算、
主站后台弹窗改「收号压价」价格语义文案、分销后台 SiteSettings 同步
- 测试:单测锚定 R=43 时 cost_delta=3 → 收号 217.4 / 卖价 263.2 不变 / markup 池 30.6→54.9
2026-09-17 15:54:56 +08:00
yml2213
8dc21d2757
refactor(sitecode): 统一各模块分销站点编码解析为公共包
...
- 新增 internal/sitecode 包:FromRequest 头优先解析、FromQueryThenHeader
探测接口专用、ExtractHost/IsLocalHost 提取 Host 域名
- 替换 auth/order/listing/chat/notification/withdrawal/wallet/distribution
八模块 17 处各自内联的解析逻辑,统一优先级与 TrimSpace 行为
- 修复 notification 漏 TrimSpace、探测接口会话头压过显式 query、
GetPublicSiteInfo 把 localhost Host 当站点域名查库等不一致
- 顺手清理 auth 中无引用的 extractHost 死代码
- gofmt 修复 withdrawal/presenter、chat/file/payment 测试四个历史遗留格式问题
2026-09-17 14:54:38 +08:00
yml2213
69774458b0
fix(file): 修复商品详情截图与提现打款凭证等私有图片 403 权限问题
...
- 放宽公开商品截图 key 提取规则,支持任意合规 object key 转换为免鉴权公开端点
- 补充后台截图上传 listing_screenshot 与 operating-expense 场景识别
- dependencies 授权器支持已审核上架商品截图兜底放行、提现人打款凭证鉴权及变体后缀匹配
- /api/files 路由组支持用户与管理员双重鉴权 (AuthUserOrAdmin)
- 前端收款账号凭证与提现详情凭证统一升级为 AuthImage 组件并支持大图预览
2026-09-16 20:33:09 +08:00
yml2213 and Cursor
c9d9160ff4
feat(distribution): 分站可下调收号比例且不超过主站上限
...
让分销站能按自身能力下调收号比例扩大利润,同时把主站回收比例作为硬边界,避免分站把比例加得比主站更高。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 20:35:30 +08:00
yml2213
cbd5412315
test: 后端测试从 SQLite 全面切换到 MySQL,与生产环境对齐
...
测试库不再使用 SQLite 内存库,改为每个测试包独立的 MySQL 库,
表结构由 backend/migrations 的真实迁移建立。
基础设施
- 新增 internal/database/testdb.go:NewTestDB() 保持原签名(28 处调用零改动),
内部连接 MySQL 测试库,首次调用重建库并执行全部真实迁移,之后每次调用清空全表
- 库名 = 测试库基础名 + 包目录名,同包共享、跨包隔离,使 go test ./... 可并发执行
(共用一库时各包会互相 DROP/CREATE 导致 database exists)
- 新增 NewDryRunDB():MySQL 方言 + DryRun,供断言 SQL 形态的 5 处测试使用
- 新增 AutoMigrateIfMissing():只对不存在的表 AutoMigrate,
避免改动迁移定义的索引与约束
- 新增 scripts/prepare-test-db.sh:建库与通配授权,可重复执行
- 33 处 sqlite.Open 全部替换,26 个测试文件改用 MySQL
- 删除 46 处手写 SQLite 方言 DDL(AUTOINCREMENT / INTEGER PRIMARY KEY / TEXT),
表统一由真实迁移建立
- go.mod 移除 gorm.io/driver/sqlite 与 mattn/go-sqlite3
- 删除生产代码里 distribution/repository.go 的 sqlite 方言分支(strftime)
对齐环境后暴露并修复的真实问题
- DATE(col) 在 MySQL 返回 DATE 类型,使 Date string 字段变成 RFC3339 时间串,
大盘日期会带出时间部分;28 处改为 DATE_FORMAT(col, '%Y-%m-%d')
- 系统自动创建分销结算批次时 created_by 写入 0,违反指向 admin_users 的外键,
生产会直接插入失败;改为写 NULL(新增 adminRef helper)
- MySQL DATETIME 仅到秒,静默截断 Go 侧写入的时间,
导致租用时长计算与结算时点回读比对偏差;
rental_orders 的 9 个业务时间列提到 DATETIME(6)
- 测试数据补齐严格模式要求的 NOT NULL 列、修正超出列长的取值、补齐外键父记录
迁移
- 000065 的 ALTER TABLE rental_orders 一并完成业务时间列精度调整,
feature 侧不再单开迁移文件
脚本与文档
- check.sh / check-backend-coverage.sh 去掉 -p 1 串行与 SQLite 相关注释
- 更新 docs/Repository层测试补充总结.md 的测试运行说明
2026-09-10 14:34:01 +08:00
yml2213
4aab9e7e33
fix(distribution): 分成改为分主站提价利润,分站自主提价溢价全额归卖方
...
- 文档:升级至 v0.7,固化号主保底、主站提价利润分账(35/40/25)与分站加价溢价独享逻辑
- 定价:修正货架兑换比例调价方向为调减比例提价(site_ratio = base_ratio - delta)
- 分账:分成基数剔除号主成本与分站加价,提价利润按规则切分,分站自主加价溢价 100% 归卖出方
- 前端:更新分销后台提价说明文案,提示调减比例提高售价且溢价归本站
2026-09-08 19:45:05 +08:00
yml2213
d762b33f54
refactor(distribution): 重写分销迁移并落地利润百分比分成与货架比例
...
将 000064-000078 合并为 064/065/066,默认规则改为收号 35%、卖出 40%、服务费 25%。
货架调价改为增加分站 1 元兑换哈夫币比例。sql-guard 仅保护 main 已发布迁移。
2026-09-08 19:02:58 +08:00
yml2213
31bf6dd3b6
fix(distribution): 修正商品归属回填、禁止全站灌货并拒绝无效站点头
...
用货架写入时间与上传来源回滚误标产地,不再依赖绝对时间戳;同步仅收本站上传与显式勾选。
2026-09-08 17:30:12 +08:00
yml2213
96bc6a4db6
fix(distribution): 货架加价打通前台、下单与卖方分成
...
分站公开列表和详情展示当前货架加价;下单写入 base_price / shelf_markup / markup_site_id 快照并计入实付。
支付分账改用快照加价,不再误用 PlatformFeeCent;结账不退加价,事后改价不影响历史订单。
2026-09-08 17:07:17 +08:00
yml2213
fd4e490ed3
feat(distribution): 完善分销站与主站业务数据及权益风控隔离,修复历史商品归属
2026-09-08 15:25:46 +08:00
yml2213
0fcb6a513f
feat(distribution): 支持分销上传来源追踪、主站审核展示与收售结算模式自动判定
2026-09-08 15:00:35 +08:00
yml2213
cdb236cc29
merge(main): 同步主站最新 UI 与审核优化代码并保持分销多租户隔离
2026-09-07 17:37:31 +08:00
yml2213
ecaf15417b
feat(distribution): 独立分销前台商城多租户体系、货源与订单数据严格隔离
2026-09-07 17:18:14 +08:00
yml2213
3f86dd85ad
feat(admin): 优化商品审核工作台界面、截图凭证核验与按住速览体验
...
- 深度优化商品审核工作台:指标概览卡片、风险边条队列、标价管道联动、核心资产高密度展示、底部决策浮动 Dock、全套键盘快捷键
- 重构截图大图查看体验:移除旧版底部溢出的全局画廊,封装全屏居中弹窗 AdminListingReviewPreviewDialog,支持「按住速览(松手即关闭)」与「常驻弹窗(缩放/翻页/打码/原图)」双模交互
- 新增在线截图编辑器 ImageEditorDialog:支持平滑马赛克打码、自由裁剪与旋转保存
- 弹窗组件解耦:抽离审核拒绝、调价、全量核验、快捷键速查等子组件,严格控制单文件行数
- 后端支持:新增商品审核调整价格接口与配套单元测试
2026-09-07 13:29:01 +08:00
yml2213
23883d4be5
perf(listings): 优化详情页图片加载链路支持公开变体与分级秒开
2026-09-06 21:40:35 +08:00
yml2213
369b0647bb
合并 main 分支并融合订单列表最小化与 SQL 治理
...
- Auth/权限中间件取 main 演进版(错误细分、token 来源),保留 dev 的用户 cookie 与登出撤销语义
- 后台订单列表:融合 main 的首页免 COUNT 优化与关键词索引路由,保留 dev 的最小化 AdminOrderListItemDTO(结账明细仍由详情接口返回,同步调整对应集成测试)
- 保留 dev 的 token_version 冻结/解冻递增与 main 的状态变化判断及通知
- 前端:保留 dev 登出接口与 main 的 fetchMe silent 参数、SSE 登录跳转;后台订单表按 dev 最小化 DTO 移除号主到手列
2026-09-05 11:43:13 +08:00
yml2213
cd719fc355
fix(query): 支持12位纯数字时间编号(如202609040184)商品编号的精准索引路由
2026-09-05 11:25:14 +08:00
yml2213
a9125b1939
perf(query): 全面治理后台跨表模糊查询慢SQL并升级SQL门禁守护
...
- 解决 MySQL 8.4 无法跨表 Index Merge 导致的索引失效与全表扫描问题
- 订单/提号/纠纷/用户/商品/会话列表实现智能意图路由分流直达单表唯一索引
- 剥离 COUNT(*) 阶段无关多表关联及标量子查询,实现首页条数快速短路
- check-sql-guard.sh 增加 forbid_pattern 拦截器与核心路由强校验防线
2026-09-05 10:37:04 +08:00
yml2213
c156c478d8
优化后台高频查询性能
2026-08-29 00:16:16 +08:00
yml2213
c4507caf37
增加账号凌晨响应标记
2026-08-18 20:39:13 +08:00
yml2213
0bc6cf9f46
修复微信扫码区服识别
2026-08-17 20:30:15 +08:00
yml2213
85332df2bd
订单接口最小化与私有文件访问加固
...
- 订单列表使用独立最小 DTO 并分页,号主待办提供独立接口与统计
- 用户 token 增加版本控制,冻结/改密/退出即时撤销会话
- 移除 URL token 传参,SSE 与接口统一使用 HttpOnly Cookie
- 私有文件按上传归属与业务关联授权,收款凭证转私有访问并校验归属
- 公开商品接口返回最小字段,隐藏号主身份与内部状态
- 每日清理超过 30 天未关联业务的上传归属,上传归属失败时补偿删除对象
2026-08-16 21:47:46 +08:00
yml2213
51c3f2767f
feat(listing): 公共筛选新增日消耗区间(高级筛选)
2026-08-15 13:32:01 +08:00
yml2213
7cd6699b84
feat(listing): 公共筛选皮肤与IP地区多选改为AND全匹配,新增跨分组测试
2026-08-15 11:14:47 +08:00
yml2213
88d74aca7d
重构日志与可观测性体系
...
新增单行文本编码器与结构化 GORM 日志,统一错误记录与请求日志策略,收紧日志文件权限并修复按天切分与压缩,支付回调参数脱敏,生产强制阿里云短信,RequestID 校验防注入,日志文案中文化。
2026-07-29 16:19:35 +08:00
yml2213
99e8eb28af
实现外部商品调价
2026-07-26 19:17:09 +08:00
yml2213
4bc25b87d8
修复平台代管订单流程
2026-07-25 19:17:19 +08:00
yml2213
4cc35a1587
修正外部上传加价逻辑
2026-07-25 15:30:57 +08:00
yml2213
7ca68e6b8b
增加渠道上传预统计
2026-07-25 14:34:03 +08:00
yml2213
9d74cbcf8d
修复图片展示错误
2026-07-23 17:30:59 +08:00
yml2213
95f3857470
增加默认图片
2026-07-23 17:19:44 +08:00
yml2213
5668eb745f
优化外部上传和备注
2026-07-23 17:06:06 +08:00
yml2213
ae79550d78
支持在线时间跨天并优化发布与筛选体验
...
允许在线时段 end 早于 start 表示跨天,统一展示「次日」文案;修复移动端价格区间清空后被 sessionStorage 回写;优化 PC/移动端在线时间控件密度与通栏展示。
2026-07-19 17:28:57 +08:00
yml2213
2ca6fd9306
完善测试建表并统一前端格式
2026-07-14 01:32:14 +08:00
yml2213
42b250cd2c
账号上下架增加统计
2026-07-11 23:37:24 +08:00
yml2213
ef67375132
优化商品管理筛选功能
2026-07-09 23:55:19 +08:00
yml2213
2935e16753
调整夜间专区时间范围
2026-07-05 20:39:47 +08:00
yml2213
1984e07e91
添加商品管理资产皮肤筛选
2026-07-05 20:21:18 +08:00
yml2213
f5a1630a27
feat(listing): 编辑已发布账号需先下架, 编号保持不变
...
Update 增加前置校验, 仅 draft/offline 状态可编辑, published 必须
先主动下架; 编辑后由 initialPublishState 推进到待审核, 审核通过
才重新展示. ListingNo 仅在 Create 时生成, 全程同行更新不变
2026-07-03 08:28:26 +08:00
yml2213 and Claude Opus 4.8
be5d322c10
feat: 客服封存订单功能(号主失联场景)
...
新增客服「封存订单」动作,用于号主失联、无法联系的场景:单事务内
完成关闭订单、全量原路退款、永久封存关联商品、解散发布群、双方通知
与审计日志。
- 新增 listing 终态 sealed(封存),区别于可恢复的 offline
- listingLockedForOwnerMutation 锁定 sealed,号主无法再编辑/提审/上架
- 解散群聊按 listing_id 查发布群(listing_group)置 archived,
阻断所有成员发言并留系统消息
- 新增 order.AdminSeal 及 /admin/orders/:id/seal 路由
- 前端:卖家页 PC/移动端 sealed 视为终态禁用操作,客服后台新增
「封存订单」按钮与二次确认
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 22:52:20 +08:00
yml2213
05c29c97ea
修复发布驳回展示原因
2026-06-29 16:47:59 +08:00
yml2213
21aabd77f1
商品已完成优化
2026-06-27 23:01:03 +08:00
yml2213
fed7d6af71
5 分钟发布一次
2026-06-27 22:26:37 +08:00
yml2213
5ac12ae5c3
优化站内信图标和哈夫币发布校验
2026-06-27 09:38:08 +08:00
yml2213
23dbe9af22
优化后台列表搜索
2026-06-21 13:17:10 +08:00
yml
b7d5dbd1d3
首页增加比例筛选并优化排序
2026-06-18 16:18:41 +08:00
yml
bd6e15179e
支持后台转移发布所有权
2026-06-17 22:31:46 +08:00
yml
ac98841992
修复二维码库存与过期时间编辑
2026-06-17 20:02:41 +08:00
yml and Claude Opus 4.8
ad70b24fb6
提交2: 发布群核心功能实现
...
- 实现 EnsureListingConversation: 发布时建发布群,发欢迎语+二维码
- 实现 AddRenterToListingConversation: 付款后拉租客进群
- 实现 RemoveRenterFromListingConversation: 订单终态移出租客
- 实现消息可见性过滤: 租客只能看到 joined_at 之后的消息
- listing 模块注入 ListingChatCreator 接口,发布时建群
- ListingDTO 新增 listing_group_conversation_id 字段
- 付款流程改为拉租客进发布群(替代建订单群)
- 订单完成和取消时自动移出租客
- 创建 chat 适配器实现接口解耦
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 15:57:10 +08:00
yml2213
f1ae72cc7a
二次编辑商品
2026-06-12 21:43:02 +08:00