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
|
6b74e07e70
|
feat(listings): 押金筛选高档位细分为 200-400 / 400-600 / 600以上
- 桌面高级筛选「押金」去掉 200以上,改为 200-400 并新增 400-600、600以上
- 移动端押金档位改为复用 depositRangeOptions,两端档位保持一致
- 补充 depositRangeOptions 档位与边界断言
|
2026-10-07 16:53:37 +08:00 |
|
 yml2213andCursor
|
f2060c19cf
|
feat(listings): 订单和账号详情展示可租时长与每日消耗
租客在订单列表和详情标题能看到每个号的租期、消耗。账号详情把这两项拆成独立格子。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-05 16:32:08 +08:00 |
|
 yml2213andCursor
|
c559287ee4
|
fix(listings): 手机轮播改为居中裁切,左右滑只切换图片
超宽海报在图内横滑不好看。轮播和预览都只保留中间一段,左右滑动回到切换下一张。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-05 15:38:06 +08:00 |
|
 yml2213andCursor
|
bd502bfa63
|
fix(listings): 手机超宽轮播改为可横滑展示和大图预览
分站海报比例很宽,整图塞进轮播会缩成一条,点开预览也看不清。首页按固定高度横滑查看,预览用大图灯箱代替默认图片预览。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-05 15:02:37 +08:00 |
|
 yml2213andCursor
|
4f69657017
|
feat(distribution): 分站首页改为联名标题并同步手机轮播
首页主标题显示为站名×大锤商行,手机端使用与电脑端相同的分站自定义海报。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-05 14:46:28 +08:00 |
|
 yml2213andCursor
|
1d21b3f548
|
feat(distribution): 分站发布群只使用自己的二维码池
主站单独维护分站码池,池空时不再借用主站或其他分站,并去掉已停用的固定二维码入口。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-04 18:35:34 +08:00 |
|
 yml2213andCursor
|
951d428364
|
fix(distribution): 分站首页轮播不再叠压暗遮罩
海报已含文案,再叠标题会触发整幅渐变遮罩,把左右两侧颜色压暗。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-04 16:01:01 +08:00 |
|
 yml2213andCursor
|
6d55ee12c2
|
fix(listings): 详情页号主留言移到精选皮肤上方
买家先看到交接说明,再看皮肤和仓库物资。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-03 16:03:37 +08:00 |
|
 yml2213andCursor
|
590bf1cae3
|
fix(payment): 渠道已收款时不再把支付单回滚成支付中
租客在待支付超时或取消的最后几十秒完成付款时,订单先被取消,乐刷的支付
结果几秒后才到,入账被判定订单不可支付而拒收。原先订单推进和支付单更新
在同一个事务里,订单一报错整笔回滚,支付单停在支付中且 paid_at 为空:
钱已在渠道,系统却毫不知情。乐刷重试十次后放弃,之后既补不回入账(订单
不再是待支付),后台人工退款也发不出去(退款要求原支付单是已支付)。
日志保留期内 13 天出了 5 笔,合计 4085.60 元。
- 取消前核对渠道:超时取消、租客取消、客服关单都先查一次渠道,已收款并
已推进订单就放弃取消,让支付正常入账而不是走退款。渠道异常时按未收款
继续,避免渠道一抖订单全卡住
- 回调兜底记账:订单确实已结束时不再回滚,把支付单如实记成已支付并写入
paid_at 与渠道单号,后台人工退款从此可用。退款仍由客服人工发起
- 客服关单:待支付订单按实际已收款减已退款的差额退,补上本次事故中关单
不生成退款的直接原因
- 补齐日志上下文:回调入账失败原先只有 error="order cannot pay",现在带
支付单号、订单号、订单状态和金额;新增 ERROR「渠道已收款但订单无法入账,
需人工退款」作为唯一需人工介入的告警
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-02 09:23:25 +08:00 |
|
 yml2213andCursor
|
e5cd7b5c34
|
feat(orders): 号主可从自己的列表隐藏已结束订单
只写入隐藏时间,订单和款项仍保留给租客与后台。详情按钮固定对齐,删除跟在后面。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-01 16:22:55 +08:00 |
|
 yml2213andCursor
|
a1008f7e6a
|
fix(listings): 首页无论是否可修改游戏名都展示该字段
号主选择「否」时买家也能在商品卡片上看到,避免只展示「是」造成信息缺失。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-01 16:06:15 +08:00 |
|
yml2213
|
2a76d59a30
|
feat(distribution): 公告中心支持分站自定义
公告中心(前台公告列表/详情)此前完全没有站点概念,分站访客只能看到主站公告。
本次按「默认继承主站、站长可切仅本站」的口径支持分站自定义。
数据与口径:
- 新增 announcements.distribution_site_id(0=主站),前台按站点隔离
- 新增 distribution_sites.announcement_mode:inherit(默认,主站+本站)/ own_only(仅本站)
后端:
- 公告模块新增 ResolvePublicSiteScope:主站 [0]、inherit [0, siteID]、own_only [siteID],
站点编码无效/已停用回落主站;列表与详情都按该范围过滤,详情不再允许跨站按 ID 读取
- 管理端公告列表支持按站点筛选(site_id:不传=全部,0=主站,>0=分站)并带出站点名
- 分销模块新增本站公告 CRUD(distribution/announcement.go):强制 distribution_site_id=本站,
先过 ensureSiteAccess,跨站更新/删除/上下架一律 ErrAnnouncementNotFound
- UpdateSiteBranding 支持 announcement_mode 切换(非法值报错,读侧非法历史值回落 inherit)
- 新增权限 distribution:announcement_view|manage 并授予 super_admin/ops/finance,
站长开通时继承 ops 角色即自动获得
- 路由:站长侧 /api/distribution/announcements*,平台侧 /api/admin/distribution/announcements*
前端:
- 分销后台新增「公告中心」页:来源开关(继承主站+本站 / 仅本站)、本站公告列表与
新建/编辑/发布/下架/归档/恢复/删除,空态按来源模式给出引导
- 平台后台公告页新增「站点」列与筛选,新建公告可选择归属站点(主站或指定分站代发)
- 前台 PC/移动无需改动:请求已带 X-Distribution-Site-Code,后端按站点隔离,页面已有空态
测试:
- 公告模块:主站/继承/仅本站三种可见范围、跨站详情拦截、无效站点回落、管理端站点筛选
- 分销模块:本站公告 CRUD 与跨站防护、公告来源开关校验与非法值容错
|
2026-10-01 10:02:31 +08:00 |
|
yml2213
|
329d0f75bb
|
feat(distribution): 分站前台按独立商城呈现并支持首页文案自定义
分站前台原本对顾客暴露分销身份,且登录等页面写死了主站品牌,
与「一手独立商城」的定位不符;同时首页文案全部硬编码,站长无法按自己口径调整。
去分销身份(顾客可见处):
- 头部品牌区、首页主视觉、移动端认证卡去掉「官方分销/官方分销认证/官方分销站」标识
- 会员徽标「分销专享」→「会员专享」,「所属商城」兜底「专属分销站/商城」→「官方商城」
- 订单页说明改为「当前为【X】商城,仅展示在本站产生的订单记录」,保留订单按站隔离的必要说明
- 无公告时的兜底跑马灯、轮播角标去掉分销措辞
- 清理随之失效的 pc-brand-badge / mobile-brand-badge 样式
品牌跟随站点配置(即可自定义):
- PC/移动登录页、移动注册页、加桌面引导页的品牌改为 站点名称 + Logo(无 Logo 取站名首字),
不再写死主站「大锤商行」;主站行为不变(新增 store getter brandMark:分站取站名首字,主站仍为「锤」)
首页文案可配置:
- 新增迁移 000076 与 distribution_sites.storefront_text_json
(tagline 头部副标题 / hero_badge 主视觉徽标 / hero_desc 主视觉描述 / card_sub 移动端卡片副标题)
- 分销后台「品牌装修 → 首页文案」可编辑,占位提示即默认值,留空或整段清空回落内置默认
- 贯通 UpdateSiteBranding → 公开站点信息接口(含 Redis 缓存失效)→ 前台 store 逐字段合并默认值
- 装修预览同步展示站长填写的副标题与徽标
测试:
- 后端补装修字段写入/公开接口透出/清空回落断言
- 前端新增 storefrontText 单测(默认合并、覆盖、空白与非法类型回落)
|
2026-10-01 09:24:56 +08:00 |
|
yml2213
|
53b40f8fad
|
fix(distribution): 修复分站跑马灯公告把配置 JSON 原文展示出来
分销站公告存在 distribution_sites.announcements_json 的是 { title, content } 对象数组
(分销后台品牌装修写入),而前台跑马灯组件按字符串数组渲染。Vue 对对象会做
JSON.stringify,配合 no-wrap 样式,前台就显示成
{"title":"天域商行专注AWM子弹回收、高比例!不排队!秒结算!","content":""}。
- 新增 shared/utils/announcements.ts:把公告条目归一化为展示文本,兼容纯文本、
{ title, content } 对象,以及被字符串化的对象(历史脏数据)与标题为空回退内容
- distributionSite store 解析 announcements_json 时归一化,跑马灯组件内部再兜底一次
- 首页配置 mergeHomeConfig 同样接受对象形态,主站/移动端公告入口口径统一
- 分销后台装修预览的跑马灯示例按同一口径取值(只有内容时不再空白)
- 补 9 条单测覆盖对象、字符串化对象、普通花括号文案、混排去重与空输入
|
2026-10-01 09:04:28 +08:00 |
|
yml2213
|
766c923a6a
|
fix(distribution): 修复分站搜不到已审核商品并实现审核通过自动铺货
问题:分站上架商品审核通过后主站能搜到、分站看不到,且没有自动同步。
根因:分站前台/搜索只认 distribution_site_accounts 中 display_status='enabled'
的货架行,而主站前台不按站点过滤。货架行此前只由「号主在该站上架」或站长手动
「一键同步主站商品」写入,审核通过不回写;同时一键同步的失效清理把「非
published+approved」的货架行一律置为 disabled,商品重新在售后也不会恢复。
- 新增 EnsureListingShelvedTx:商品变为 published+approved 时自动铺到所有
display_account_enabled=true 的站点货架(缺行新增、系统下架恢复、人工下架不动),
经 ListingShelfSyncer 接口注入,避免 listing 反向依赖 distribution
- 新增 distribution_site_accounts.display_disabled_by(operator/system/空)区分下架
来源;人工上下架各入口写入来源标记
- 一键同步的失效清理收紧为只清理「货源记录已删除」的孤儿行,并支持恢复系统下架行,
结果新增 reenabled_count
- 新增迁移 000074 回填存量缺失货架行,部署后无需逐站手动同步
- 修复 CreateSite 显式传 false/0 的配置(不允许自动展示、结算冷却 0 天)被 GORM
default 标签忽略而静默回落默认值
- 前端:去掉会跨站串扰的 localStorage 站点码回退,站点探测完成后再挂载应用,
避免分站发布因缺少站点码被记成主站商品;同步弹窗文案与统计项同步更新
- 补充分销货架自动铺货、清理口径、建站零值落库与审核铺货回归测试
|
2026-09-30 21:11:09 +08:00 |
|
yml2213
|
940510a826
|
feat(admin-listings): 优化商品管理表格纯币价格展示与租期列位置
1. 将原“纯币价格(号主)”调整为“租客纯币价格”,底层取值切换为租客纯币计算(getListingRentPrice),适配列宽与悬浮提示;
2. 调整表格列顺序,将“租期”列移动至“租客纯币价格”与“租金/押金”中间;
3. 同步调整表格图片导出/截图配置(screenshotColumns)的列名与排序,保持视图与导出一致。
|
2026-09-21 15:29:12 +08:00 |
|
yml2213
|
1c3a75eef0
|
feat(distribution): 分销站点管理支持完整 CRUD、安全删除保护与管理员密码重置
- 后端支持分销站点编辑(域名唯一性校验、收号压价点位及税率更新)
- 后端支持分销站点安全删除校验(阻断存在业务订单、财务流水、结算批次或钱包余额的站点删除;对干净站点连带清理分成规则、展示账号绑定、支付通道配置及专有站长账号)
- 后端支持站长账号展示与超级管理员重置站长密码
- 主管理后台与分销后台前端全面支持筛选搜索、编辑模态窗、状态快捷切换、站长密码重置与安全删除确认
- 补充后端 CRUD、删除保护与密码重置覆盖率测试用例
|
2026-09-17 19:35:52 +08:00 |
|
 yml2213andCursor
|
079e18bd3a
|
style(frontend): 格式化 listingDisplay 单测以通过 pre-push Prettier 检查
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-17 18:16:29 +08:00 |
|
 yml2213andCursor
|
ff8c35ebad
|
feat(admin-order): 订单管理列表恢复号主实际收入列
在金额左侧展示已结账/已仲裁订单的到手金额;整页一条批量 SQL 取最新结账行,避免 N+1。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-17 18:13:36 +08:00 |
|
yml2213
|
4d05fa2c4c
|
feat(admin-listing): 商品管理列表在租金/押金左侧展示号主纯币价格
- listingDisplay 新增 getListingSellerCoinPrice,读取价格快照 seller_coin_base_price
(号主收号价中的纯币部分,不含额外消耗品)
- 商品管理表格新增「纯币价格」列并置于「租金/押金」左侧,悬停显示完整说明
- 快照缺失(旧数据/无定价快照)时展示 -,与相邻列风格一致
- PNG 导出列定义同步新增该列,保持导出与页面一致
- 补 listingDisplay 单测:纯币价读取、消耗品单独计价时与号主总价区分、缺快照兜底
|
2026-09-17 17:32:00 +08:00 |
|
 yml2213andCursor
|
8e167bc12b
|
style(frontend): 格式化 usePricingCalculator 以通过 pre-push Prettier 检查
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-17 16:11:18 +08:00 |
|
 yml2213andCursor
|
a36332de1d
|
fix(listing): 主站加速出售买家价不再误锚到参考比例
分站解耦只应改分站收号侧;主站加速出售仍跟卖家比例联动买家价,并同步分销后台列表与发布页文案。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-17 16:09:41 +08:00 |
|
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
|
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
|
64a4e5bb16
|
fix(distribution): 修正分销后台入口地址并收口主站后台隐藏路径
- 新增前端 distributionAdmin 工具:优先 VITE_DISTRIBUTION_ADMIN_URL,
本地开发回退 5190,生产按 distribution.<主站域名> 推导
- 替换主站后台「打开独立分销后台」按钮与开通凭证中硬编码的 :5190
- 分销后台复制凭证改用 window.location.origin,去掉硬编码 http
- Caddyfile 中 /manage-7x9k2p 仅主站域名放行,分站域名统一 404
- 构建/部署链路透传 VITE_DISTRIBUTION_ADMIN_URL 与 ADMIN_BASE_PATH
|
2026-09-16 15:09:38 +08:00 |
|
yml2213
|
6d31da1874
|
feat(admin-order): 订单列表展示完整用户手机号便于客服定位
- backend: AdminOrderListItemDTO 不再脱敏 owner_phone/renter_phone,移除 order 包内已无用的 maskPhone
- frontend: 同步 AdminOrderListItem 类型注释
- tests: 更新后台列表用例为断言完整手机号,并继续校验不泄露账号快照
|
2026-09-16 14:46:12 +08:00 |
|
yml2213
|
5f5a57b81f
|
fix(withdrawal): 修复提现详情收款二维码使用公网URL导致鉴权失败加载错误
- backend: withdrawal presenter 增加 privateCertificateURLs 兼容转换历史公网 payment-cert 路径
- frontend: AuthImage 与 fetchFileBlobByURL 兼容私有凭证 key,后台上下文通过管理员私有对象接口安全加载
- frontend: 按对象接口路径与 key 前缀精确判定,避免外链带 ?key= 被误代理到后台私有对象接口
- tests: 补充 TestPrivateCertificateURLs 单元测试
|
2026-09-16 14:39:32 +08:00 |
|
yml2213
|
dc13b5dc82
|
feat(distribution): 支持分站独立短信验证码通道
- 新增分销站点独立短信服务商配置(阿里云),登录验证码按 site_code/domain
解析专属通道,未启用或解析失败时回退主站默认通道
- 密钥经 crypto.Encryptor 加密落库,模型字段 json 序列化隔离,DTO 仅回传掩码
- provider 白名单校验,mock 仅在非生产环境放行;启用时强制校验必填凭据
- 配置读写/测试接口限管理员权限,测试发送增加 60s 频控(Redis,缺省进程内)
- 解密失败记告警并优雅回退主站,避免把密文当明文密钥使用
- 两套前端新增短信配置入口、必填与手机号校验、发送冷却
- 新增迁移 000071 及加解密、白名单、频控、解析回退等单测
|
2026-09-16 14:06:01 +08:00 |
|
yml2213
|
8ec53f9d3d
|
style(frontend): 修复 prettier 格式门禁
三个本分支改动的文件未过 prettier --check,导致 npm run check 与部署门禁红灯。
按项目风格重新排版后台分销站点页、移动端发布页与定价计算 composable,不改动任何逻辑。
验证:npx prettier --check . 通过;npm run check(format + eslint --max-warnings=0 + vue-tsc)通过;vitest 7 文件 / 32 用例通过。
|
2026-09-16 12:49:21 +08:00 |
|
 yml2213andCursor
|
c9d9160ff4
|
feat(distribution): 分站可下调收号比例且不超过主站上限
让分销站能按自身能力下调收号比例扩大利润,同时把主站回收比例作为硬边界,避免分站把比例加得比主站更高。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 20:35:30 +08:00 |
|
 yml2213andCursor
|
1c86bef765
|
feat(distribution): 支持分站发布群固定二维码
主站分销配置可为每个站点绑定可复用企微码,号主在该站上传账号后发到对应发布群,不再消耗主站码池。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 19:02:10 +08:00 |
|
 yml2213andCursor
|
776c33f83c
|
Merge branch 'main' into feature/distribution-system
同步结账损耗全额归号主与后台时间线 AuthImage 修复。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 18:36:16 +08:00 |
|
yml2213
|
352eef9e12
|
fix(admin): 流程时间线附件图片改用 AuthImage 支持鉴权加载
|
2026-09-13 10:27:24 +08:00 |
|
yml2213
|
dff0577385
|
feat(checkout): 修复后置损耗结算全额归号主、支持角色隔离实时试算与全流程UI重构
- fix(pricing): 后置消耗/损耗金额 100% 划归号主收益,超出预收部分平台不抽成,避免被平台费吸收
- feat(checkout): 前端新增结账实时试算预览组件 (CheckoutTrialPreview + useCheckoutSimulator),角色隔离展示(仅见自身收入/退款,屏蔽平台服务费)
- refactor(admin): 重构交易全流程时间线 (ProcessTimeline.vue),将平铺挤压指标重构成4大分类仪表盘微型卡片矩阵,升级可视化业务状态流转徽章与阶段色彩主题
- style(admin): 优化支付与交接流水元信息网格布局,防止超宽屏下长单行拉伸
|
2026-09-13 10:19:33 +08:00 |
|
yml2213
|
9ae6d5eaea
|
feat(distribution): 优化一键同步主站商品功能(并发防重、分批入库、失效商品联动下架与初始加价)
- 后端优化:
- 引入 Redis + 内存 sync.Map 双重互斥锁,避免并发/连击导致唯一索引冲突 (ErrSyncInProgress)
- 使用 CreateInBatches(500) 进行大数据量批量插入,杜绝超长 SQL 与锁表超时
- 增加 CleanStaleListings 支持,自动排查并联动下架主站非在售的货架商品,清理历史幽灵数据
- 增加 DefaultShelfRatioDelta 支持,新同步商品直接继承初始加价比例,免除二次手动改价
- 前端优化:
- distribution-admin 货架管理新增一键同步配置弹窗(可勾选自动下架失效商品、配置初始加价)
- 同步完成后展示结构化统计弹窗(新增、保持、联动下架、主站在售总量)
- 前后端类型定义与 API 客户端对齐升级
- 测试覆盖:
- 补充 TestSyncSiteAccountsOptimizations 单元测试与 handler 集成测试
- 全工程测试与门禁 check.sh 100% 通过
|
2026-09-11 12:47:59 +08:00 |
|
yml2213
|
9ae763dee6
|
fix(distribution): 修复收号站订单详情权限、专属支付通道路由、大盘统计与仲裁积分隔离
- 修复 FindOrder 在收号站模式(two_party_distributor_receive / three_party)下的 403 权限判定,放行参与方站点成员并精准计算收益
- 串联 distribution_site_payment_channels 至 payment.Start 核心支付发起流程,分销订单优先使用绑定的专属商户通道
- 修复数据大盘 GetDashboardAnalytics 趋势中 ReceivedCount 恒为 0 的问题,并对齐今日订单与 GMV 统计
- 修复 dispute/arbitration.go 仲裁完成时向分销租客发放成长积分的泄漏风险
- 提现管理新增 distribution_site_name/distribution_site_code 字段并在后台列表与详情弹窗中区分展示分销站
- GetPublicSiteInfo 增加 X-Distribution-Site-Code 请求头兜底支持
|
2026-09-11 10:31:14 +08:00 |
|
yml2213
|
6acdead0f0
|
Merge branch 'main' into feature/distribution-system
|
2026-09-11 09:35:53 +08:00 |
|
yml2213
|
7734f315ce
|
feat(ocr): 支持 PP-OCRv6 异步识别模型并设为默认,解决排队与高延迟问题
|
2026-09-10 20:12:05 +08:00 |
|
yml2213
|
e3a75fb2d7
|
feat(distribution): 默认结算冷却天数改为系统配置驱动
新建站点的默认冷却期原先硬编码 7 天(OnboardSite 字面量、DB 列默认、两套前端表单),
改一处要同时动三处。现统一到系统配置键 distribution.default_settlement_hold_days:
- systemconfig 注册该键(默认 7,0=立即释放,0-365 校验),纳入 admin 可见配置
- distribution 建站两条路径(CreateSite 未传值、OnboardSite 缺省)读取该配置,缺失或非法回落 7
- 新增 GET /admin/distribution/site-defaults 暴露当前有效默认值
- Vue / React 站点表单改为运行时拉取,拉取失败保持 7
- DB 列默认值保留作为兜底,站点级 settlement_hold_days 仍可单独覆盖
|
2026-09-10 18:54:23 +08:00 |
|
 yml2213andCursor
|
768902f2f7
|
feat(distribution): 补齐退款加价回退、本站自卖与开通默认规则
退款时压缩卖方加价,人工/自动批次仅完结单可入账,号主收入进主站钱包;仲裁后重算释放并支持作废未入账 DS。开通时四种模式按默认生效,对外口径合并为 35/40/25,不再单独展示通道费。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-10 18:13:46 +08:00 |
|
 yml2213andCursor
|
e621722218
|
fix(admin): 主站分销管理按最新分成与释放口径改展示
规则页按模式展示收号/卖出/服务费,通道费标明主站承担;订单改为释放状态筛选;结算区分自动与人工批次。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-10 17:36:49 +08:00 |
|
 yml2213andCursor
|
647fdc0b4a
|
feat(distribution): 通道费改主站承担,并按冷却期自动释放结算
利润不再扣支付通道费;站点可配置结算冷却期,到期自动入账,已释放后退款从收款站钱包回冲。同时修复当日自动批次无法追加、三方回冲打错钱包,以及测试库自增重置被 MySQL 统计缓存跳过的问题。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-10 17:11:58 +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 |
|
 yml2213andCursor
|
ee0e70ccad
|
fix(adtracking): 收紧成交口径、点击去重与生产落地页白名单
成交 GMV 排除已关闭订单,避免未支付关单被计入;点击按访客 5 秒、IP 1 秒双重去重;生产禁止 localhost 落地页,失效短码改用 QueryEscape。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-10 11:27:43 +08:00 |
|
yml2213
|
6a3611c1a8
|
fix(adtracking): 修复生产网关反代路由、成交态统计口径与安全加固
|
2026-09-10 11:17:40 +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
|
438267f611
|
fix(frontend): 修复distributionSite中ESLint无用赋值警告
|
2026-09-09 20:03:20 +08:00 |
|