yml2213
|
12e9b6d0b2
|
fix(rentergrowth): 移除冗余空值判断
|
2026-11-04 21:36:05 +08:00 |
|
yml2213
|
5ac1afd573
|
feat(listing): 极品专区发布时增加比例加价
|
2026-11-04 20:54:11 +08:00 |
|
yml2213
|
90b83972ec
|
feat(benefits): 增加权益中心
|
2026-11-04 20:12:35 +08:00 |
|
yml2213
|
f439e23eb8
|
feat(points): 增加积分兑换联系信息
|
2026-11-04 19:51:17 +08:00 |
|
yml2213
|
95aeee7eb3
|
refactor(db): 合并当前分支数据库迁移
|
2026-11-04 19:51:04 +08:00 |
|
yml2213
|
0d12950961
|
fix(file): 修复积分商城图片公开访问
|
2026-11-04 19:31:31 +08:00 |
|
yml2213
|
46c682cb78
|
feat(points): 支持后台上传积分商品图片
|
2026-11-04 19:28:40 +08:00 |
|
yml2213
|
d5abe67f60
|
feat(points): 增加双边积分与虚拟积分商城
|
2026-11-04 19:21:02 +08:00 |
|
yml2213
|
c00d691301
|
feat(quality-owner): 增加优质号主自助取消与权益校验
|
2026-11-04 18:54:44 +08:00 |
|
yml2213
|
e9102026ae
|
feat(listing): 优化优质号主发布与极品专区体验
|
2026-11-04 15:59:53 +08:00 |
|
yml2213
|
98174c0e33
|
feat(quality-owner): 增加优质号主、极品专区与无忧租号保险
- 支持保证金余额支付、在线支付开通及后台手动设置审计
- 新增极品专区发布权限、赔付方案与保险结算费率快照
- 优化首页、商品卡和个人中心的优质号主身份展示
|
2026-11-04 15:04:35 +08:00 |
|
yml2213
|
812e95e7d1
|
perf(finance): 补齐财务仪表盘覆盖索引
|
2026-11-02 19:34:19 +08:00 |
|
yml2213
|
1c18dbcb64
|
perf(finance): 优化财务仪表盘聚合查询
|
2026-11-02 19:11:22 +08:00 |
|
yml2213
|
1b23b9b14b
|
feat(withdrawal): 增加提现审核对账与历史记录
|
2026-11-02 19:02:30 +08:00 |
|
yml2213
|
5334c2b218
|
fix(order): 修正仲裁后号主实际收入
|
2026-11-02 18:34:40 +08:00 |
|
yml2213
|
599e22331d
|
perf(query): 优化后台手机号精确查询
|
2026-11-02 18:28:12 +08:00 |
|
yml2213
|
9c379b7e0c
|
feat(publish): 德穆兰选项支持后台开关并默认打开下赛季通行证
|
2026-10-31 18:26:05 +08:00 |
|
yml2213
|
163ffb9eff
|
feat(invitation): 新增返利统计汇总与时间筛选
|
2026-10-29 12:36:57 +08:00 |
|
yml2213
|
2029c1f4fb
|
fix(realname): 增加身份证唯一性校验,防止同一证件重复实名
|
2026-10-29 12:06:53 +08:00 |
|
yml2213
|
86fbc05e9b
|
fix(invitation): 邀请返利改用实际结算利润并修正提号基准
|
2026-10-29 11:49:08 +08:00 |
|
yml2213
|
e57c9df6f4
|
fix(home): 首页业务入口默认展示,避免回收与反馈按钮被总开关隐藏
|
2026-10-29 11:34:39 +08:00 |
|
yml2213
|
2ce3320d5f
|
fix(systemconfig): 首页入口展示开关与发布选项编码修复
|
2026-10-22 20:25:57 +08:00 |
|
yml2213
|
51855a0e17
|
feat: 邀请关系列表增加邀请人累计统计
|
2026-10-19 17:52:54 +08:00 |
|
yml2213
|
27a6442c18
|
fix: 仲裁实际结算发放邀请返利
|
2026-10-17 15:48:53 +08:00 |
|
yml2213
|
e6c4f58251
|
fix(invitation): 修复邀请关系手机号与邀请码筛选并预加载统计
|
2026-10-17 15:35:44 +08:00 |
|
yml2213
|
9f8c0f9cb2
|
feat(home-banner): 轮播支持 PC/移动两端分图与热区跳转,热区图悬浮放大;修复上传压缩压白透明 PNG
|
2026-10-16 16:02:29 +08:00 |
|
yml2213
|
b7b68abf6b
|
test(sms): 修正重试用例因 DATETIME(0) 取整导致的时间敏感失败
updated_at 为 DATETIME(0),写库会把小数秒向上取整到下一秒,退避设为 0 时刚失败的记录会被
取数条件 updated_at <= now-退避 取不到,导致 TestDispatchRetriesThenFails 必挂;退避量改为 -2s 保证连续重试可确定执行。
|
2026-10-15 18:21:18 +08:00 |
|
yml2213
|
93e102b7c0
|
feat(sms): 新增节点短信提醒(审核未通过/被租用需辅助/上架未成交)
|
2026-10-14 14:57:52 +08:00 |
|
yml2213
|
efa0aa4ffd
|
fix(invitation): 返利归因统一为「订单所属站点」,买卖两端一致
- 买家端不再强制记主站(原 buyerSiteID=0),卖家端不再记拆分方站点,两端统一取 orderSiteID
- orderSiteID = 订单所属站点(>0 时);订单未记站点但存在分销拆分时回退到拆分方站点,避免主站替分站订单买单
- 该站点同时用于取返利配置(GetRebateConfig)、返利流水与钱包流水的 distribution_site_id,分站后台由此能看到本站返利支出
- 基数口径未改动,非分销订单行为与改前一致;历史 9 笔数据不订正,规则自此生效
- 测试:更新跨站用例断言;新增订单站点归因用例(校验站点专属比例 0.5 与钱包流水站点维度)
|
2026-10-13 19:05:54 +08:00 |
|
yml2213
|
2e13443805
|
feat(distribution): 站点归属兜底——未带站点编码时按访问域名识别分站
- 新增 middleware.SiteDomainFallback:显式头/query 优先,两者都为空时用 Request.Host / X-Forwarded-Host 反查 distribution_sites.domain,并回填 X-Distribution-Site-Code 供后续 sitecode.FromRequest 使用
- 新增 distribution.Repository.ResolveSiteCodeByDomain(仅取 status=active 的站点)
- 路由层在所有业务路由之前注册;域名到站点映射走 1 分钟进程内缓存(含负缓存);查库异常不阻断请求、退化为按主站处理;回环/本地地址跳过查询
- 背景:站点归属此前完全依赖前端注入头,首屏探测失败或漏带就会把分站写入记成主站(2026-10-10 前已因此丢失一批分站注册归属)
- 新增单测:中间件(显式优先、域名解析、本地地址跳过、转发域兜底、缓存与容错)与仓储域名查询边界(大小写/空白/主站域名/停用站点)
|
2026-10-13 17:33:16 +08:00 |
|
yml2213
|
f33dc97f6f
|
feat(admin): 客服手动录单支持平台与操作人,并可后台配置可选项
- 录单列表新增「平台」「操作人」两列,录单表单与编辑弹窗新增同名字段下拉
- 新增 cs_manual_entry_options 表与 4 个接口(读取/新增/重命名/删除),页面右上角弹窗维护平台与操作人
- 迁移 000087:cs_manual_entries 增加 platform/operator 列与索引,注册 cs_manual_entry:option_manage 权限并授予 ops/super_admin
- 记录保存名称快照,删除选项不影响历史记录;同类型重名返回 409,跨类型同名允许
- 顶部关键词查询支持命中平台/操作人
- 新增单测:选项 CRUD 边界与录单平台/操作人读写
|
2026-10-13 16:22:57 +08:00 |
|
yml2213
|
9a52dbdb7b
|
test(invitation): 修正返利单测因 DATETIME(0) 小数秒四舍五入导致的天数抖动
MySQL DATETIME(0) 会把小数秒四舍五入,now-2天 可能进位成不足 48 小时而被算作 1 天,导致用例偶发失败;统一 Truncate 到整秒。
|
2026-10-13 15:21:14 +08:00 |
|
yml2213
|
0082a60b46
|
chore(build): 镜像内构建 hfb-rebate-backfill 以便生产执行返利补发
补发脚本需要在生产镜像里可直接执行,与 hfb-storage-migrate 保持同一构建/拷贝方式。
|
2026-10-13 15:14:07 +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
|
0d6a7786a4
|
feat(admin): 用户管理新增用户明细抽屉,聚合资金与交易全链路数据
- 用户管理操作列新增「明细」入口,抽屉按权限提供 5 个 Tab:钱包流水、订单记录、提现记录、邀请返利、支付记录
- 后端:后台订单列表新增 user_id 精确过滤(owner_id / renter_id),邀请关系与返利流水新增 inviter_id / invitee_id 过滤
- 修复:返利流水的「被邀请人手机号」筛选此前后端未实现,一直无效
- 资金流水页、支付记录页支持 ?user_id= 预填,可从明细直达
- 顺带将 invitation/dto.go、repository.go 中两处既有缩进错位按 gofmt 规整
|
2026-10-13 14:49:36 +08:00 |
|
yml2213
|
4a9e5f9d66
|
feat(announcement): 新增首页弹窗公告功能并完成弹窗UI视觉重构
- 数据库与后端:announcements 表增加 is_popup 字段及迁移脚本,提供前台弹窗接口与多公告优先级选取,补全选优单测
- 管理后台:总后台与分销后台公告编辑新增「弹窗公告」开关与列表标签展示
- 前台交互:前台 PC/移动端首页引入 AnnouncementPopup,支持同一用户同一天同一公告仅弹一次的关闭记录
- 视觉优化:重构弹窗结构,顶栏镶嵌品牌橙流光细条与浅暖橙通知徽标,中间内嵌浅灰舒适阅读卡片,底部搭配大锤橙实心主操作按钮
- 验证方式:后端 announcement 单测通过,前端 npm run build 编译无报错,浏览器实机截图验证
|
2026-10-12 18:33:44 +08:00 |
|
yml2213
|
cca40940d5
|
feat(admin): 新增客服手动录单功能与仪表盘今日录单统计
- 做了什么:
- 新增客服手动录单数据库迁移 000084 及对应模型,支持编号唯一校验、客服快照绑定与 CRUD 操作;
- 后端提供 csmanualentry 业务模块及相关 API,并在仪表盘摘要中聚合今日各客服录单数量;
- 前端增加客服手动录单视图页面、路由与侧边栏导航,支持录单二次确认与细粒度权限控制;
- 管理后台仪表盘增加今日客服手动录单卡片展示。
- 为什么:
- 满足客服在后台手动登记外部业务编号需求,并便于运营按客服统计今日录单业绩和追溯对账。
- 验证方式:
- 执行后端全量测试 go test ./... 与静态检查 go vet ./... 全部通过;
- 执行前端代码门禁 npm run check 与 vite build 全部通过;
- 执行 goose down/up 迁移回滚与应用测试通过,角色权限分配正确;
- 本地 dev 联调 POST /api/admin/manual-entries 录单成功返回 201。
|
2026-10-12 14:52:24 +08:00 |
|
yml2213
|
5840b7da40
|
fix(listing): 外部上传按后台实时配置归类皮肤与折算消耗品,并补齐新增消耗品字段
- 皮肤归类:删除代码内硬编码的 externalSkinCatalog 快照,改为读取 listing.publish_options。
修复运营在后台新增皮肤后,上传的商品被归入 other 的问题(详情页显示“其他皮肤”、
按刀皮/金皮/红皮/武器皮分组筛选搜不到)
- 消耗品折算:externalResources 改为按 publish_options.quantity_items 生成条目与单价,
修复 AWM 子弹按 0.6 元/发旧价折算等价格漂移(线上已调为 0.7 元/发)
- 上传契约:ExternalUploadInventory 新增 level6Ammo/barrettAmmo/gridCard9/redPacket45/
coffeeBean/bulletPart 六个字段,字段名与消耗品 key 对齐;后续后台再新增消耗品,
按同样 key 登记即可被上传链路识别
- 数量为 0 的消耗品不再写入资源清单,与网站自身发布流程(filter quantity > 0)保持一致
- 客服调整外部商品同样改用实时单价;Service 增加 externalPublishOptions 统一读配置并带默认值
- 验证:新增回归测试 TestExternalAccountToCreateRequestFollowsPublishOptions;
并以线上 mobile-home-config 的真实配置 + 上传工具产出的 JSON 做跨仓库联调,
确认“重塑→近战皮肤、骇爪-骇客少女→干员金皮”,9 项消耗品全部按线上单价生成
|
2026-10-11 17:44:27 +08:00 |
|
yml2213
|
cb8aceb433
|
fix(distribution): 支持客服在主站后台查看与管理分站二维码
- 路由权限支持:新增 RequireAnyPermission 中间件,允许持有 qrcode:view 或 distribution:site_view 的管理员调用 GET /admin/distribution/sites 获取分站列表
- 服务层站点穿透:ListSitesForAdmin 允许持有 qrcode:view 权限的管理员(客服)获取全部可用分销站点用于码池维护;站长/分销商等站点成员仍按其绑定站点收窄
- 前端交互与权限分组:分站二维码池 loadSites 补充异常捕获,分配权限弹窗补充「分销管理」分组展示名
- 权限来源:cs 角色的 qrcode:view/manage 由既有迁移 000016 提供,故本次不新增数据库迁移
- 权限边界:不采用 distribution:all_view 实现该需求——它是跨站写操作的总开关(改站/删站/重置站长密码),而该权限依赖的 ops 角色同时是分站站长,授予后会击穿多租户隔离;并补充回归断言锁定该边界
- 验证方式:全量门禁 ./scripts/check.sh 通过(SQL 约束检查、Go 单测与覆盖率、路由测试、前端类型检查、单测与生产构建)
|
2026-10-11 17:11:46 +08:00 |
|
yml2213
|
5b2f36ac36
|
feat(listings): 排序交互升级为双向翻转并对齐双端体验
- PC端交互:HomeView 排序按钮支持点击切换升降序翻转(比例、哈夫币、AWM数量、合并价格为单个价格项),并带有高低方向箭头(▲/▼)高亮指示
- 移动端交互:MobileHomeView 菜单提供清晰的双向文案(如「比例从高到低 / 比例从低到高」),且点击当前选中项时支持自动翻转方向,顶部工具栏标题紧凑对齐
- 后端排序:public_filter 与 public_query 完整支持 ratioDesc/ratioAsc、priceAsc/priceDesc、coinDesc/coinAsc、awmDesc/awmAsc
- 验证方式:新增并运行 TestSortPublicListingsByRatio 包含升序/降序多断言,全量运行 ./scripts/check.sh 门禁全绿通过
|
2026-10-10 17:44:27 +08:00 |
|
yml2213
|
180a21c048
|
feat(listings): PC与移动端首页新增比例排序
- 前端选项:在 PC 首页(HomeView)与移动端首页(MobileHomeView)的排序项中,在「综合推荐」后新增「比例排序」(ratioDesc)
- 后端排序:在 sortPublicListings 中实现 ratioDesc/ratio,按折算比例从高到低排序,同比例按哈夫币数量降序次级平局决胜
- 自动化验证:新增 TestSortPublicListingsByRatio 单元测试,全量运行 ./scripts/check.sh 门禁(Go测试、MySQL测试、前端lint/typecheck/build)全部通过
|
2026-10-10 17:26:28 +08:00 |
|
yml2213
|
9d5d35c7d4
|
feat(admin): 商品管理支持多选皮肤筛选且要求包含所选全部皮肤
- 后端过滤:将 AdminListQuery.SkinName 筛选逻辑对齐前台,由 OR(交集) 改为 AND(全包含),选多款皮肤时账号必须同时包含所选的全部皮肤
- 前端交互:AdminListingsView 皮肤筛选支持多选交互,点击具体皮肤支持多选高亮,底部提供已选数量提示、清空与确定操作,外层按钮智能展示已选皮肤摘要
- 样式增强:补充管理后台皮肤筛选弹层底部的清空/确定操作栏样式
- 验证方式:新增并运行后端 TestFilterAdminListingsByMultipleSkinsRequiresAll 单元测试,运行全量 ./scripts/check.sh 门禁全绿通过
|
2026-10-10 17:14:47 +08:00 |
|
yml2213
|
95435faf46
|
perf(distribution): 优化分销订单全量与分站慢查询,消除全表扫描与每行EXISTS子查询
- 数据库迁移:新增 000083 迁移,为 distribution_order_parties 添加 (site_id, order_id) 联合覆盖索引;
- 查询优化:重构 ListOrders,利用覆盖索引派生表预收敛分销订单候选集,替代在 3.7 万行 rental_orders 上的 OR EXISTS 逐行子查询全表扫描;
- 边界修复:超管全量分销订单(site_id = 0)增加分销范围收敛,防止全平台普通非分销订单混杂和 5 表级联扫表;
- 统计优化:同步改造 GetDashboardAnalytics 与 ListDistributionUsers,彻底消除大盘统计与客户画像聚合的慢查询;
- 验证方式:新增 TestListOrdersPerformanceAndScoping 单元测试,全量运行 ./scripts/check.sh 门禁验证通过。
|
2026-10-10 15:17:25 +08:00 |
|
yml2213
|
4ea08e355b
|
feat(distribution): 分销站点增加用户数量统计与用户信息展示模块
- 数据模型与迁移: 新增 000082 迁移在 users 表追加 distribution_site_id 并建索引,用户首次在分销站点注册/短信登录时自动绑定站点归属
- 分销管理接口: 新增 GET /admin/distribution/users 接口,聚合本站注册用户与下单客户,返回完整11位手机号、累计消费金额、订单数及来源标签
- 统计与大盘扩展: GET /admin/distribution/sites/:id/analytics 补全今日注册、累计用户、成交客户指标,主站分销商列表追加用户体量展示
- 分销后台前端: 新增「客户与用户」页面 (Users.tsx) 支持一键复制手机号与订单穿透,大盘 (Dashboard.tsx) 增加用户规模核心卡片
- 自动化测试与门禁: 新增 TestListDistributionUsersAndAnalytics 单元测试,通过全量 Go 后端集成测试及前后端构建检查
|
2026-10-10 14:58:33 +08:00 |
|
yml2213
|
6d34f86765
|
fix(distribution): 分销后台展示完整用户手机号信息
- 后端 ListReceivedListings 移除 owner_phone 脱敏,向分销商返回完整卖家手机号
- 前端 Orders.tsx 移除 maskPhone 遮蔽逻辑,订单列表与收号货架均直接展示真实完整手机号
- 手机号文本支持一键复制,方便分销管理员日常履约联系
- 验证方式:go test 运行通过,npm run build(tsc + vite build)通过
|
2026-10-10 14:18:27 +08:00 |
|
yml2213
|
f19c9f62b7
|
test(invitation): 建立邀请返利全状态全组合正交测试套件并修复布尔零值持久化缺陷
- 设计并落地 6 大测试组共 37 个组合场景(绑定准入、实名生命周期、周期滑窗阶梯、双边角色矩阵、分站独立继承、金额极值与幂等性)
- 修复 GORM 在 default:true 标签下忽略布尔零值导致分站关闭返利失效的缺陷
- 在 UpdateRebateConfig 中使用显式 Select 保证 Enabled 字段 100% 精确持久化
- 验证方式:go test -v ./internal/modules/invitation/... 全部通过,耗时约 1.2s
|
2026-10-10 14:07:48 +08:00 |
|
yml2213
|
7cddbe9463
|
feat(invitation): 支持分销站点自主配置返利比例与权限隔离
- 后端新增分站专属配置及审计接口(/api/distribution/invitation-config 等),基于分站管理员严格鉴权隔离
- 分销独立后台新增「邀请返利设置」页面(Invitations.tsx),支持分站管理员自主开启/调整返利比例并查看本站流水
- 主站后台邀请接口路径补齐 /admin 前缀,解决 404/401 鉴权作用域问题
- 验证方式:backend 单元测试全数通过,distribution-admin 类型与构建检查通过
|
2026-10-10 13:47:53 +08:00 |
|
yml2213
|
984433f866
|
feat(invitation): 实现邀请返利系统、专属注册落地页与分成管理
- 数据库与数据模型:新增 migration 000081,支持用户专属邀请码、被邀请人绑定与实名时间戳;新增邀请返利配置表与结算明细表
- 业务与结算逻辑:实现首月 60%、次月 30%、往后 15% 阶梯返利算法;买卖双向独立寻源并根据订单平台利润 50% 单边基准核算;与终态订单结算和钱包可用余额强幂等联动
- 分销站点支持:支持主站与加盟分站独立配置返利比例;跨站交易按照收号端与售卖端独立出资,资金互不侵蚀
- 前端交互与入口:
- 新增专属短链注册落地页 /i/:code,自动带入并锁定邀请码,引导实名认证
- 个人中心与移动端新增邀请返利看板(专属码、推广链接、统计面板、好友记录与返利流水明细)
- 管理后台新增邀请返利管理(比例配置、邀请关系与返利流水审计)
- 验证方式:
- 通过 repository_test.go 单元测试(阶梯区间、实名激活、跨站多方分流验证)
- 通过 npm run format、npm run check 与 scripts/check.sh 全量门禁校验
|
2026-10-10 12:48:59 +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
|
2c943027f0
|
test(pickup): 基于生产克隆真实数据全链路验证店铺合并映射功能
- 数据克隆:安全连接生产环境(42.121.217.194),以只读方式完整克隆 4498 条提号单、30 条财务调整及关联支撑数据到本地数据库并校准
- 回归测试:新增 TestClonedProdDataOperations 端到端自动化回归用例,在 4498 条真实数据上完整验证店铺聚合统计、一键转标准店铺、多变体批量合并清洗、提号列表联动筛选及撤销还原逻辑
- 证据沉淀:更新实施方案文档,登记生产克隆与验证证据;验证通过全套代码门禁 (scripts/check.sh)
|
2026-10-09 13:45:59 +08:00 |
|