yml2213
|
e37684d401
|
feat(admin-listings): 商品列表与详情补充账号属性并展示赠送资产
|
2026-10-17 15:20:32 +08:00 |
|
yml2213
|
790267e3eb
|
feat(distribution-banner): 分销站点轮播支持 PC/移动端分图与热区配置
|
2026-10-17 14:47:00 +08:00 |
|
yml2213
|
ab9d852bde
|
style(home): 快速筛选顺序按宽度重排并统一两列网格,上下两块右列对齐、高级筛选虚线改柔和橙
|
2026-10-16 17:10:08 +08:00 |
|
yml2213
|
9f8c0f9cb2
|
feat(home-banner): 轮播支持 PC/移动两端分图与热区跳转,热区图悬浮放大;修复上传压缩压白透明 PNG
|
2026-10-16 16:02:29 +08:00 |
|
yml2213
|
b5867e3c5e
|
style(home): 首页筛选/横幅视觉优化,重置按钮与筛选胶囊悬浮点击统一主题橙
|
2026-10-16 14:35:04 +08:00 |
|
yml2213
|
703deb17d0
|
feat(listing): 发布新增「是否解锁德穆兰」必填项,首页优先替换全英雄展示
|
2026-10-16 13:07:25 +08:00 |
|
yml2213
|
832a0628c6
|
feat(order): 结账备注与系统结算信息分开展示,系统结算信息改为逐行明细
- 结账内容写入分隔标记,展示端拆出「结账备注(不参与结算金额)」与「系统结算信息(参与结算金额)」
- 系统结算信息每件消耗品单独一行并给合计,哈夫币/押金各一行;兼容旧数据(同一行用「;」分隔自动拆行并补合计)
- 新增 CheckoutSystemDetail 明细组件,接入订单交接记录、结账明细(PC/移动端)与客服订单详情、聊天侧栏
- 结账提交表单与二次确认补充「备注不参与结算金额」提示
|
2026-10-15 18:14:31 +08:00 |
|
yml2213
|
93e102b7c0
|
feat(sms): 新增节点短信提醒(审核未通过/被租用需辅助/上架未成交)
|
2026-10-14 14:57:52 +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
|
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
|
41d7ffd073
|
feat(admin): 资金流水业务类型展示中文并修正筛选取值
- statusLabels 新增 walletBizTypeLabel/walletBizTypeOptions,覆盖 wallet_ledger 全部 16 种 biz_type
- 资金流水表格业务类型列改为中文标签
- 筛选下拉原取值(order_freeze 等)在钱包流水中不存在,替换为真实业务类型
- 用户端钱包页复用共享映射,移除重复的本地 map
|
2026-10-12 17:22:28 +08:00 |
|
yml2213
|
d9003851bd
|
feat(admin): 分站二维码池支持搜索筛选并记住上次选择的分站
- 工具栏对齐主站二维码池:关键词搜索、绑定群、过期状态、上传时间范围
- fetchSiteQrCodes 补充传递 bound/expire_status/created_start/created_end
- 按管理员维度记忆上次查看的分站,站点失效时回退到首个站点
|
2026-10-12 17:11:06 +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
|
d21ddd9e96
|
fix(admin): 修复后台登录页输入框白底浅字导致输入内容不可见
- 根因:styles/admin.css 的全局表单增强规则带 !important,把 .el-input__wrapper 底色固定为白色
(background-color: #ffffff !important),登录页原有的深色输入框样式被整体覆盖;
而输入文字色仍是 #f1f5f9(近白),于是形成"白底浅字",输入内容与光标都看不见
- 影响范围:登录页用户名/密码/验证码三个输入框。用户名与密码被浏览器自动填充
(浅底 + 深色文字)掩盖了问题,验证码框永远不会被自动填充,因此最先暴露
- 修复:登录页统一按浅色输入框配色,输入文字改为 #0f172a(白底对比度由 1.05:1 提升到 17.6:1),
清理已被全局规则覆盖失效的深色 wrapper 声明,并补充说明注释避免再次误写
- 验证:headless Chrome + CDP 真实加载 /admin/login 并逐字输入,取计算样式确认
文字色由 rgb(241,245,249) 变为 rgb(15,23,42),对照截图确认验证码清晰可见;
前端门禁 npm run check / test:coverage / build 全部通过
|
2026-10-11 17:22:56 +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
|
6a99c1121b
|
fix(order): 解决移动端弹窗因 CSS display !important 导致 Vue v-show 隐藏失效无法关闭问题
- 根因定位:.mobile-popup-form 设置了 display: flex !important,该样式在 CSS 特异性中强于 Vue v-show 生成的行内 style="display: none;";当弹窗点击关闭后,Vue 将变量置为 false 并完成退场动画,但由于样式强制 flex,弹窗退场后立刻以 flex 状态重新暴露在屏幕上(即“又弹出一个”),且由于此时 Vue 响应式状态已是 false,再次点击关闭按钮不会触发状态改变(即“第二次无法关闭”)
- 解耦容器与弹窗:移除 .mobile-popup-form 根节点上的 display: flex !important 与 overflow 强覆盖,弹窗内部增加 .popup-inner 容器承载垂直 flex 列布局与吸顶/吸底/滚动分区
- 严格验证:运行全量检查 ./scripts/check.sh,Go测试、MySQL测试、TypeScript检查及Vite生产构建 100% 通过
|
2026-10-10 18:18:25 +08:00 |
|
yml2213
|
e36bdd28c5
|
fix(order): 解决移动端弹窗关闭时点击穿透导致弹窗自动重新弹出问题
- 根因定位:移动端点击关闭按钮后弹窗退场,浏览器在~300ms派发合成点击事件,恰好落在底层全宽的「修改结账方案」动作按钮上,导致关闭后立即被再次触发唤起;原关闭按钮触控面积小(12px)也容易引发手抖连点
- 防穿透冷却锁:引入 POPUP_COOLDOWN_MS 冷却机制,弹窗关闭后450ms内拦截底层触发按钮的一切点击唤起请求,彻底隔绝幽灵点击与连击
- 弹窗事件与关闭解耦:关闭按钮添加 @click.stop.prevent 与 type="button",规范监听 van-popup 的 @close 回调以确保遮罩层点击同步触发冷却
- 触控体验优化:将原文字关闭符号升级为 van-icon cross,增大触控靶心至 36px 圆形并添加 :active 反馈与 touch-action: manipulation
- 样式增强:重构数字输入框为带实体边框、聚焦高亮光晕与单位后缀的独立卡片,解决输入框外观类似只读文本的问题
- 验证通过:通过 npm test 与全量门禁 ./scripts/check.sh(Go测试、MySQL测试、TS类型检查、Vite生产构建 100% 通过)
|
2026-10-10 18:13:09 +08:00 |
|
yml2213
|
c9f6820882
|
fix(order): 修复移动端iOS Safari修改结账弹窗操作栏被截断及滚动卡死问题
- 架构重构:将修改结账、拒绝结账、发起争议弹窗的操作提交按钮从滚动体抽出,移入固定吸底的 popup-footer,保证任何情况下按钮始终完整可见、随手可点
- 视口适配:弹窗采用 85dvh 动态视口高度,配合 flex 列布局与 overflow: hidden,并在吸底栏集成 safe-area-inset-bottom,解决 iOS Safari 底部浮动地址栏遮挡
- 滚动解耦:弹窗内部 popup-body 独立滚动并开启 -webkit-overflow-scrolling 和 overscroll-behavior: contain,消除 WebKit 双层滚动容器死锁与橡皮筋卡死
- 防缩放优化:弹窗内全量输入框与 textarea 统一声明 16px 字体,杜绝 iOS Safari 聚焦时触发的强制页面缩放畸变
- 验证通过:运行全站门禁 ./scripts/check.sh(Go测试、MySQL测试、ESLint、Vue-TSC、Vite生产构建)全部通过
|
2026-10-10 17:58:09 +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
|
a93c76bcf6
|
fix(listings): 手机端筛选地区更名为IP地区并对齐发布选项
- 名称统一:将手机端筛选抽屉的「资产地区」更名为「IP地区」,与PC端保持统一
- 选项对齐:地区选项优先对齐发布配置 publishOptions.region_options(常用登录地区),避免脏数据混入
- 验证通过:prettier、eslint、typecheck 及 65 个单测全部通过
|
2026-10-10 16:59:37 +08:00 |
|
yml2213
|
03d20223c8
|
refactor(listings): 统一移动端与PC端筛选逻辑并支持日消耗与绝密KD
- 统一预设体系:在 useFilterOptions.ts 集中导出 defaultRangePresets,两端共享档位定义,消除移动端私有硬编码档位
- 统一参数模型:在 useHomeFilters.ts 增加 mobileFiltersToHomeFilters,将移动端字典结构标准化转换为领域层 HomeFilters 模型
- 统一查询构建:在 useListingQuery.ts 抽象纯函数 buildListingQueryFromFilters,双端共用同一个后端发包构建器
- 功能对齐:移动端首页完整补充「日消耗」区间筛选;PC端高级抽屉对齐补充「绝密KD」筛选
- 验证通过:补充双端测试用例,全站门禁 ./scripts/check.sh(SQL/Go/MySQL/Vitest/Vite构建)全部绿灯
|
2026-10-10 16:48:16 +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
|
f5202c6080
|
style(invitation): 邀请返利界面全面对齐平台金橙品牌色规范
- 顶部 Banner 重构为黑曜石暗金底配金橙光辉,彻底消除蓝色调
- 收益数据卡片、专属推广栏及操作按钮升级为金橙与琥珀暖色系
- 阶梯分成规则卡片更新为首月红橙、次月暖金、永久长青绿三阶体系
- 明细 Tab 指示条、角色标签与分页组件全面对齐品牌设计
- 验证方式:npm run check 与 npm run test 全部通过,无告警与报错
|
2026-10-10 14:00:53 +08:00 |
|
yml2213
|
825ce83003
|
feat(auth): 优化PC与移动端登录注册界面并支持邀请码锁定绑定
- 重构 PC 端 LoginView.vue 与移动端 MobileRegisterView.vue,统一契合平台金橙色主体色
- 识别邀请链接并自动填入邀请码,锁定输入框为只读并展示「已绑定邀请码」专属徽章,防止篡改
- 短链 /i/:code 与 /m/i/:code 统一重定向至登录注册页,移除冗余独立落地页
- PC 端页脚完全对齐主站并固定沉底,左侧定制官方品质、安全上号、资金担保平台核心卖点
- 验证方式:npm run check(Prettier + ESLint + vue-tsc)全数通过
|
2026-10-10 13:48:14 +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
|
e92668689b
|
fix(pickup): 优化线下提号列表操作列布局为单行紧凑展示
- 扩展操作列宽度至 430px
- 设置操作按钮为 nowrap 不换行紧凑排版,间距调整为 6px
- 解决操作按钮折行掉至第二行的问题
|
2026-10-09 18:51:07 +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
|
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 |
|