yml2213
|
86fbc05e9b
|
fix(invitation): 邀请返利改用实际结算利润并修正提号基准
|
2026-10-29 11:49:08 +08:00 |
|
yml2213
|
ead58417e0
|
fix(invitation): 线下提号接入邀请返利并补发历史漏发,返利比例文案改读配置
- 线下提号(admin_pickups)不走订单结账流程,此前完全不发邀请返利;现于 Complete() 内按号主利润对半基数发放卖家侧返利
- 迁移 000086:invitation_rebate_ledgers 增加 source 列,唯一键调整为 (source, order_id, trade_role),支持提号来源且保持幂等
- 新增 cmd/rebate-backfill 幂等补发脚本:默认预演,加 -apply 才写库
- 返利阶段文案不再写死 60%/30%/15%,改为按本次实际生效比例生成(钱包流水备注同步修正)
- 前台邀请页阶段标签/横幅/空态文案、移动端个人中心入口文案均改读接口配置,并修掉合法 0% 比例被 || 覆盖成 60% 的问题
- 新增单测:提号返利发放与幂等、cycleLabel 跟随后台配置
|
2026-10-13 15:12:54 +08:00 |
|
yml2213
|
b4d2d1e2f5
|
feat(pickup): 增加第三方单号补录功能并优化列表提号备注展示
- 后端支持补录/修改第三方单号接口 PUT /api/v1/admin/pickups/:id/third-party-order-no,记录流转事件与审计日志
- 前端线下提号主列表在第三方单号列后展示提号备注列
- 前端列表操作列及提号详情页增加补录/修改第三方单号操作入口与弹窗
- 通过 scripts/check.sh 全量门禁校验
|
2026-10-09 18:45:12 +08:00 |
|
yml2213
|
f3c5235b81
|
feat(pickup): 店铺管理支持历史店铺可视化手动映射与一键批量清洗
- 数据库升级:新增 pickup_shop_mappings 映射别名表,并在 admin_pickups 增加 raw_shop_name 永久保留原始店铺录入值
- 后端映射能力:提供历史店铺聚合统计、单条/批量映射至目标标准店铺、映射规则撤销与提号单还原接口;新建提号时若录入已映射别名自动归一化
- 前端管理升级:PickupShopDialog 升级为双 Tab 结构,Tab 2「历史店铺映射与清洗」支持总览统计卡片、状态筛选、单条/批量映射清洗、一键设为标准店铺及撤销还原
- 验证方式:执行并通过全套代码门禁(scripts/check.sh:SQL约束、go vet/build/test、MySQL测试库覆盖率、vue大小、eslint、prettier、vue-tsc及vite构建)
|
2026-10-09 13:31:11 +08:00 |
|
yml2213
|
9d9adfbd5e
|
feat(pickup): 线下提号支持扩展字段店铺管理CRUD及时间筛选
- 线下提号创建表单扩展:增加「操作人」、「第三方单号」、「下单金额」、「押金金额」字段,重构弹窗布局为紧凑双列/三列金额卡片排布,消除过度垂直滚动并默认预填操作人
- 店铺管理 CRUD:新增 pickup_shops 配置表与配套 API,支持在提号页面直接管理店铺(增删改查、启用/禁用、筛选),下拉选项自动优先加载活跃配置店铺并兼顾历史店铺
- 列表时间范围筛选:增加精确到秒的「日期+时间」时间范围选择器,支持快捷时段与后端时间范围过滤
- 生产环境数据核查:只读提取线上全部 61 项历史提号店铺名称与单量分布,完整整理沉淀至实施文档供后续映射规则参考
- 验证方式:执行并通过全套端到端代码门禁(scripts/check.sh:SQL约束、go vet、go build、MySQL真实测试库单元测试及覆盖率、vue大小检查、prettier、eslint、vue-tsc及vite构建)
|
2026-10-09 12:46:15 +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
|
33ee8408e9
|
fix(stability): 修复慢查询雪崩隐患、系统配置死锁与提号翻页错误
- 消除 system_configs 写锁争抢:使用读写锁与启动预热将默认配置初始化收敛为单例,杜绝读请求开事务导致的 Lock wait timeout exceeded
- 强化财务看板缓存:将 Redis 缓存有效期由 1 分钟延长为 5 分钟,接入 singleflight.Group 防并发击穿
- 修复提号列表 GORM 翻页 Bug:分离 Count 查询与列表查询构建,避免重复 Join 导致的 Error 1066
- 生产环境资源加固:docker-compose.prod.yml 中 MySQL 资源限制提升至 2.0 核 CPU、2G 内存
- 补充 systemconfig 并发测试与 pickup 分页 Count 回归测试
|
2026-09-07 19:45:11 +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
|
c87883cc65
|
完善订单交接结账流程留痕
|
2026-08-28 23:48:32 +08:00 |
|
yml2213
|
1f204f17ad
|
修复线下提号财务调整审计日志
|
2026-08-18 20:15:06 +08:00 |
|
yml2213
|
58f11b2043
|
优化线下结算筛选
|
2026-08-16 20:00:09 +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
|
c86caeb667
|
线下提号增加搜索手机号
|
2026-07-27 13:39:52 +08:00 |
|
yml2213
|
66af387b4e
|
区分线下提号账号来源
|
2026-07-27 11:13:31 +08:00 |
|
yml2213
|
6b44ab599d
|
增加线下提号店铺管理
|
2026-07-26 18:19:12 +08:00 |
|
yml2213
|
9bb57b7094
|
优化线下提号利润修改
|
2026-07-25 14:53:11 +08:00 |
|
yml2213
|
7b2d94e22d
|
修复线下提号后商品仍显示在「已上架」的问题
创建提号时将 listing/account 置为 rented 并记录状态事件,与正常订单锁定一致;完成提号对齐 completed/offline;取消提号恢复上架。补充 migration 修复历史数据。
|
2026-07-14 13:46:38 +08:00 |
|
yml2213
|
42b250cd2c
|
账号上下架增加统计
|
2026-07-11 23:37:24 +08:00 |
|
yml2213
|
0a5448b3f5
|
线下提号 优化价格拆分
|
2026-07-09 23:31:44 +08:00 |
|
yml2213
|
8a5c9ab0be
|
优化提号详情
|
2026-07-08 00:16:07 +08:00 |
|
yml2213
|
9ef0843eb0
|
feat(pickup): 新增管理员线下提号功能
- 新建 admin_pickups 表独立于 rental_orders,不污染订单状态机与财务统计口径
- 提号中/已完成/已取消三态:创建锁定账号,完成时给卖家钱包加可用余额并下架 listing,取消解锁账号
- 完成时 listing 置 completed,复用现有 listingLockedForOwnerMutation 拦截再上架
- 管理端提号管理页(列表/创建/完成/取消/可提号账号搜索)+ 卖家端提号记录页
- 财务仪表盘新增线下提号独立统计块,与正常订单口径分离
- 钱包流水 label、状态标签、菜单入口同步补齐
- 优化卖家服务悬浮菜单为一行四个,尺寸与配色对齐买家服务
|
2026-07-03 19:04:35 +08:00 |
|