Commit Graph
589 Commits
Author SHA1 Message Date
yml2213 b884d01855 fix: 按实际纯币结算金额计算保险费用 2026-11-05 19:19:12 +08:00
yml2213 53574236ef feat: 优化后台商品管理与移动端个人中心 2026-11-05 19:10:48 +08:00
yml2213 f01329e049 feat: 完善商品筛选、发布配置与优质号主流程 2026-11-05 19:00:37 +08:00
yml2213 88beae4c96 feat(listing): 增加赔付方案说明配置 2026-11-05 12:14:25 +08:00
yml2213 16f87d4123 fix(systemconfig): 保留发布选项版本避免开关重置 2026-11-05 12:02:53 +08:00
yml2213 0d558bdce0 feat(user): 支持后台调整等级并限制极品专区可见性 2026-11-05 12:02:48 +08:00
yml2213 09f244a93d feat(quality-owner): 增加开通协议与强制阅读 2026-11-05 11:45:02 +08:00
yml2213 15030237c4 feat(listing): 增加押金说明配置与悬浮提示 2026-11-05 11:44:49 +08:00
yml2213 6355ca21b0 feat(listing): 展示保险后预计到手价 2026-11-04 21:36:13 +08:00
yml2213 8caf5c8313 style(points): 优化积分商品卡片排版 2026-11-04 20:54:19 +08:00
yml2213 5ac1afd573 feat(listing): 极品专区发布时增加比例加价 2026-11-04 20:54:11 +08:00
yml2213 aeda6f4cd3 style(mobile): 优化个人中心和站内信界面 2026-11-04 20:15:22 +08:00
yml2213 90b83972ec feat(benefits): 增加权益中心 2026-11-04 20:12:35 +08:00
yml2213 543086ff07 style(points): 统一积分商城品牌橙色 2026-11-04 20:12:12 +08:00
yml2213 f439e23eb8 feat(points): 增加积分兑换联系信息 2026-11-04 19:51:17 +08:00
yml2213 46c682cb78 feat(points): 支持后台上传积分商品图片 2026-11-04 19:28:40 +08:00
yml2213 27c66548a2 fix(points): 修复积分商城桌面端布局 2026-11-04 19:24:29 +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 1b23b9b14b feat(withdrawal): 增加提现审核对账与历史记录 2026-11-02 19:02:30 +08:00
yml2213 9c379b7e0c feat(publish): 德穆兰选项支持后台开关并默认打开下赛季通行证 2026-10-31 18:26:05 +08:00
yml2213 ecdffb3f2b feat(announcement): 公告图片支持点击放大预览 2026-10-29 12:44:26 +08:00
yml2213 163ffb9eff feat(invitation): 新增返利统计汇总与时间筛选 2026-10-29 12:36:57 +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 e6c4f58251 fix(invitation): 修复邀请关系手机号与邀请码筛选并预加载统计 2026-10-17 15:35:44 +08:00
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