yml2213 and Cursor
c9d9160ff4
feat(distribution): 分站可下调收号比例且不超过主站上限
...
让分销站能按自身能力下调收号比例扩大利润,同时把主站回收比例作为硬边界,避免分站把比例加得比主站更高。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 20:35:30 +08:00
yml2213 and Cursor
1c86bef765
feat(distribution): 支持分站发布群固定二维码
...
主站分销配置可为每个站点绑定可复用企微码,号主在该站上传账号后发到对应发布群,不再消耗主站码池。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 19:02:10 +08:00
yml2213 and Cursor
647fdc0b4a
feat(distribution): 通道费改主站承担,并按冷却期自动释放结算
...
利润不再扣支付通道费;站点可配置结算冷却期,到期自动入账,已释放后退款从收款站钱包回冲。同时修复当日自动批次无法追加、三方回冲打错钱包,以及测试库自增重置被 MySQL 统计缓存跳过的问题。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 17:11:58 +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
2b8c74a0f1
fix(auth): 用户会话版本默认值对齐 main,收敛 dev 血脉的 1 偏差
...
token_version 由 c91423a 引入时,model tag 与迁移 000052 一致都是 0;
TokenVersion 的显式赋值 1 只存在于 dev 分支的 85332df,main 上从未有过。
本次把用户侧(users 表)统一收敛到 0,管理员侧(admin_users)保持不动。
- model/user.go:TokenVersion 的 gorm tag 由 default:1 改为 default:0
- auth/repository.go:FindOrCreateByPhone / RegisterWithPassword 移除
显式 TokenVersion: 1,改由列默认值决定
行为收敛:此前 listing/mutation.go 的建号路径完全不显式赋值,
落库值取决于 DB 列默认值(本机 1 / 迁移定义 0),是真实的行为漂移来源;
现在三条建号路径结果一致,均为 0。
判定依据:引入该字段的提交是否自洽 + 该值是否在 main 上,
不以本机库的实际列定义为准(本地曾被手工改成 1)。
2026-09-10 13:26:16 +08:00
yml2213
7ffc3822f5
Merge branch 'main' into feature/distribution-system
...
合入 main 的推广追踪(adtracking)模块,并解决与分销业务的 8 处冲突。
冲突解决原则:两边的字段、菜单与路由全部保留,不删任何一方。
后端:
- model/order.go:保留分销字段注释块,追加 SourceTrackCode
- model/user.go:追加 RegisterTrackCode;TokenVersion 默认值保持 1
(与本库 users.token_version 列默认值一致)
- auth/repository.go:两处建号结构体同时写入 RegisterTrackCode 与 TokenVersion
- order/dto.go:OrderDTO 同时暴露 distribution_site_id 与 source_track_code;
CreateRequest 同时接受 distribution_site_code 与 track_code
- order/presenter.go:同时映射 DistributionSiteID 与 SourceTrackCode
前端:
- orders/api/orders.ts:createOrder 同时携带 distribution_site_code 与 track_code
- layouts/AdminLayout.vue:分销管理菜单组与推广追踪菜单组并列保留
- router/adminRoutes.ts:分销 4 条路由与 tracking-links 路由并列保留
迁移:feature 侧 000064-000067 已在前一提交顺延为 000065-000068,
为 main 的 000064_ad_tracking 让号,合并后编号 000063→000068 连续无重复。
2026-09-10 13:06:18 +08:00
yml2213
2b11d70ebe
feat(adtracking): 新增推广链接追踪与数据大盘,支持自定义短码、注册与下单归因及二维码物料生成
...
1. 数据库新增 000064_ad_tracking.sql 迁移,创建 ad_tracking_links 和 ad_tracking_clicks 表,并在 users、rental_orders 增加归因字段
2. 后端新增 adtracking 模块,挂载 GET /r/:code 302 智能重定向、点击流水异步记录、转化率/GMV聚合统计及管理接口
3. 用户认证 (auth) 与订单创建 (order) 链路贯通,实现注册用户与订单成交推广短码全链路归因
4. 前端管理后台左侧新增【推广追踪】目录,支持大盘指标总览、推广链接 CRUD、状态启停、一键复制短链及二维码下载 (PNG)
2026-09-10 11:05:47 +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
2c4e87475a
feat(distribution): 完善分销收号资产双视图、商户提现、自主加价、品牌装修与数据大盘
2026-09-08 16:05:30 +08:00
yml2213
0fcb6a513f
feat(distribution): 支持分销上传来源追踪、主站审核展示与收售结算模式自动判定
2026-09-08 15:00:35 +08:00
yml2213
4461e7929e
feat(distribution): 站内信与通知体系多租户独立分支隔离
...
- 新增 000071 数据库迁移:notifications 表支持 distribution_site_id 并自动回填历史分销订单通知
- 通知自动归属:在事务内根据订单或申诉自动关联当前分销站点 ID
- 隔离查询与已读控制:列表、未读统计与批量已读均严格按站点隔离,防止主站与分站交叉泄漏
- 前台界面联动:消息中心通知 Tab 及移动端/PC端站内信页面展示分站专属标识与精准过滤
2026-09-07 19:10:02 +08:00
yml2213
e024319860
feat(distribution): 分销站点消息中心与钱包提现多租户独立分支隔离
...
- 新增 000070 数据库迁移:支持 chat_conversations、wallet_accounts、wallet_ledger、withdrawal_requests 按 distribution_site_id 隔离
- 消息中心:会话列表、未读数统计、站点专属客服及订单群聊与主站实现双向完全隔离
- 资金账户与提现:独立按 (user_id, distribution_site_id) 建账,分销订单自动结算至对应分站钱包,提现与流水相互独立
- 前台界面:Axios 自动透传 X-Distribution-Site-Code,钱包、提现与消息页面呈现分站专属标牌与独立说明
2026-09-07 18:11:27 +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
ac67a91438
接入分销订单支付退款与站点隔离
2026-09-05 10:52:36 +08:00
yml2213
2ffa7a89b1
实现分销网后台基础功能与独立前端
2026-09-05 10:52:36 +08:00
yml2213
86a9b25d57
统一财务统计与线下提号出款口径
2026-09-03 20:44:55 +08:00
yml2213
c156c478d8
优化后台高频查询性能
2026-08-29 00:16:16 +08:00
yml2213
c87883cc65
完善订单交接结账流程留痕
2026-08-28 23:48:32 +08:00
yml2213
52dcb18c96
perf(chat): 分页客服会话并拆分统计查询
2026-08-25 19:21:38 +08:00
yml2213
417f7398e4
perf(chat): 优化后台客服会话查询与状态
2026-08-25 15:53:10 +08:00
yml2213
c91423a19b
修复冻结用户强制下线
2026-08-18 20:02:21 +08:00
yml2213
85332df2bd
订单接口最小化与私有文件访问加固
...
- 订单列表使用独立最小 DTO 并分页,号主待办提供独立接口与统计
- 用户 token 增加版本控制,冻结/改密/退出即时撤销会话
- 移除 URL token 传参,SSE 与接口统一使用 HttpOnly Cookie
- 私有文件按上传归属与业务关联授权,收款凭证转私有访问并校验归属
- 公开商品接口返回最小字段,隐藏号主身份与内部状态
- 每日清理超过 30 天未关联业务的上传归属,上传归属失败时补偿删除对象
2026-08-16 21:47:46 +08:00
yml2213
80e55ba281
支持提号完成后财务调整
2026-08-16 19:52:12 +08:00
yml2213
8fb7d3bac0
feat(pickup): support platform managed offline settlement
2026-08-09 20:20:39 +08:00
yml2213
8c2431c4f2
优化仲裁
2026-07-29 18:59:07 +08:00
yml2213
66af387b4e
区分线下提号账号来源
2026-07-27 11:13:31 +08:00
yml2213
8af7333969
按实际纯币金额计算租客优惠与积分
2026-07-27 10:45:41 +08:00
yml2213
6b44ab599d
增加线下提号店铺管理
2026-07-26 18:19:12 +08:00
yml2213
c594b543d1
完善租客等级免押与积分管理
2026-07-26 18:07:10 +08:00
yml2213
321f0781cf
实现租客成长等级并优化展示
2026-07-26 11:25:25 +08:00
yml2213
9ccc16e068
支持客服主动发起申诉
2026-07-26 09:54:27 +08:00
yml2213
4bc25b87d8
修复平台代管订单流程
2026-07-25 19:17:19 +08:00
yml2213
7ca68e6b8b
增加渠道上传预统计
2026-07-25 14:34:03 +08:00
yml2213
6450b31129
撞车订单新增「接待中」状态,支持后台接待标记
...
已支付订单可标记为接待中,避免重复跟进;完成/取消覆盖接待中状态,前后台同步展示与筛选。
2026-07-19 16:08:41 +08:00
yml2213
1a4776bba0
支持结账多轮协商与按实际消耗双比例结算
...
允许双方最多 6 轮修改结账方案;哈夫币按实际消耗与 buyer/seller 比例计价,打超从押金扣,押金不足禁止自动完结并引导人工争议。同步收紧结账明细展示密度。
2026-07-18 20:35:16 +08:00
yml2213
a4189db4ca
业务更名为撞车并切换crash路由
...
用户可见文案与页面/API路径改为撞车与crash,保留mohong表与权限码兼容;移动端入口去掉租/撞图标。
2026-07-16 21:19:35 +08:00
yml2213
183351a297
摸大红支持购物车多选一起结账
...
下单支持多商品行快照与一次支付;支付后整单复制文案,前台提供购物车加购与结账。
2026-07-16 20:58:39 +08:00
yml2213
66ca2693b3
支持客服入口按业务场景分流到客服分组
...
联系客服支持 scene(general/mohong),按用户与场景复用会话;摸大红入口走摸大红分组选人。
2026-07-16 20:05:10 +08:00
yml2213
e07532a188
移除摸大红支付后建群逻辑,仅保留扫码与复制
...
支付成功只固化客服二维码与订单文案;同步清理迁移、配置与前后端相关字段。
2026-07-16 19:52:40 +08:00
yml2213
6d61027318
新增摸大红业务并修复后台链接按钮白字
...
支持分类筛选、搜索、下单支付建群与固定二维码;合并迁移种子数据;后台表格编辑/详情链接恢复主题色可见。
2026-07-16 18:08:18 +08:00
yml2213
42b250cd2c
账号上下架增加统计
2026-07-11 23:37:24 +08:00
yml2213
8a5c9ab0be
优化提号详情
2026-07-08 00:16:07 +08:00
yml2213
090a90a268
添加订单押金暂扣与归还
2026-07-05 19:35:57 +08:00
yml2213
9ef0843eb0
feat(pickup): 新增管理员线下提号功能
...
- 新建 admin_pickups 表独立于 rental_orders,不污染订单状态机与财务统计口径
- 提号中/已完成/已取消三态:创建锁定账号,完成时给卖家钱包加可用余额并下架 listing,取消解锁账号
- 完成时 listing 置 completed,复用现有 listingLockedForOwnerMutation 拦截再上架
- 管理端提号管理页(列表/创建/完成/取消/可提号账号搜索)+ 卖家端提号记录页
- 财务仪表盘新增线下提号独立统计块,与正常订单口径分离
- 钱包流水 label、状态标签、菜单入口同步补齐
- 优化卖家服务悬浮菜单为一行四个,尺寸与配色对齐买家服务
2026-07-03 19:04:35 +08:00
yml2213
1ba7c1dea1
feat(auth): 新增密码登录注册与改密功能并加固安全
...
- 后端:新增密码登录/注册/重置/改密接口,users 表新增 password_hash 字段
- 安全加固:注册改为冲突即失败防止"注册即改密",登录用户不存在统一返回密码错误并计失败次数防枚举,改密需校验旧密码,清理登录失败计数中的死代码
- 前端:登录页重构为"登录/注册"两个 tab,登录内可切换密码/短信方式,默认密码登录
- 个人中心新增修改密码入口(PC 弹窗 + 移动端 popup),PC 个人资料页移除买家/卖家服务面板
2026-07-02 19:02:49 +08:00
yml2213
076ac6098e
二维码自动补发
2026-06-19 17:08:57 +08:00
yml2213
a4cdc3e806
增加站内信未读提醒和后台通知中心+txt 校验
2026-06-19 15:24:15 +08:00
yml
35f2d93fdf
完善二维码池 OCR 配置与识别
2026-06-18 15:22:46 +08:00