提交图

190 次代码提交

作者 SHA1 备注 提交日期
xcbyy
c4eee64a0f style(expert): 接单大厅附近组局卡片与暖色主题细节优化 2026-10-26 10:49:10 +08:00
xcbyy
eb81ef8133 fix(upload): 上传与用户设置目录改为持久化目录并保留旧目录回退
- 上传目录默认 process.cwd()/public/uploads,支持 UPLOAD_DIR 覆盖,避免代码部署覆盖用户上传文件

- 用户设置目录默认 process.cwd()/data,支持 DATA_DIR 覆盖,旧 data/user_settings.json 自动回退读取
2026-10-26 10:49:10 +08:00
xcbyy
5fcfd54961 feat(brand): 后台与小程序登录页启用玩美天鹅 Logo
- 后台 header/登录页改用本地 256x256 天鹅图标,标题统一为「同城陪玩管理后台」

- 后台 favicon 换成本地图标,去掉外部 unpkg 依赖

- 小程序登录页改用本地 /static/logo-icon.jpg(11KB),移除 unsplash 占位图与远程兜底
2026-10-26 10:48:57 +08:00
xcbyy
8caeda2b06 fix(ui): 首页热搜标签优化为单行横向滚动并解除胶囊避让右侧挤压 2026-10-23 16:26:37 +08:00
xcbyy
615f632aad fix(security): 清理测试脚本硬编码数据库密码与后台默认演示凭证预填 2026-10-23 16:19:30 +08:00
xcbyy
6c80096194 fix(uniapp): 修复 notifications.vue 中样式未声明 scss 导致微信开发工具 wxss 嵌套报错 2026-10-23 15:36:43 +08:00
xcbyy
94cf6cdc69 perf: 清理无界缓存、合并收益走势查询、补齐组合索引并优化前端定时器/图片加载
- 移除只写不读的 verifyCodeCache(无界内存增长)

- 大神收益走势由 20 次逐日/逐周/逐月查询改为 3 次 GROUP BY 聚合

- 派单池地理编码改为并行,避免串行等待外部接口

- 补齐 orders/activities/participants/user_notifications/finance/withdrawals/posts 组合索引;修复 withdrawals 使用不存在 created_at 的失效索引

- 数据库连接池支持 MYSQL_CONNECTION_LIMIT/MYSQL_QUEUE_LIMIT

- 首页/弹窗定时器卸载清理,活动列表参与者按活动 id 查询,大厅组局按页取数,图片 lazy-load

- 121 套件/792 用例全绿;已部署并验证新索引与 9ms 走势查询
2026-10-23 15:31:37 +08:00
xcbyy
0d574b6420 fix(order-create): 修复暖色主题下购买时长加减按钮白字浅底不可读
- step-btn 改为品牌色浅底/浅色文字,暖色主题改为浅橙底/深橙字

- 补充按压、禁用态与去除按钮默认边框

- HBuilderX 编译成功;120 套件/785 用例全绿
2026-10-23 14:31:14 +08:00
xcbyy
59bae415ad perf: 全栈性能排查与优化落地 (消灭运行时DDL/消除全表扫描/内存泄漏治理/高频静态缓存) 2026-10-23 14:28:47 +08:00
xcbyy
1264792a46 feat(ui): 第四批高级感升级(友圈/动态详情/门票/下单页)
- 友圈:玻璃头部、发动态按钮、动态卡渐变与错峰入场、话题胶囊

- 动态详情:导航与内容卡玻璃化、评论区与输入框统一

- 我的门票:票据卡分层、核销码数字字体、暖色主题适配

- 下单页:模式卡/大神卡/底部支付栏统一走主题变量,修复主题一致性测试

- HBuilderX 编译成功;119 套件/777 用例全绿
2026-10-23 14:15:38 +08:00
xcbyy
87c0ac1c6f feat(ui): 第三批高级感升级(大神工作台/接单大厅/发单页/消息通知)
- 工作台:身份卡与统计卡玻璃层级、金色徽章、收益面板统一

- 接单大厅:状态卡/统计卡/品类胶囊/派单卡统一,左侧状态线与入场动效

- 发单页:发布模式、表单卡、品类/时段/商圈胶囊、底部提交按钮统一

- 消息通知:导航栏与通知卡玻璃化,未读态暖色/品牌色区分

- HBuilderX 编译成功;119 套件/777 用例全绿
2026-10-23 14:02:23 +08:00
xcbyy
2561c23ba0 fix(activity): 修复暖色主题选中品类胶囊白字浅底不可读
- 选中态背景为浅橙时,capsule-text 改为深橙 #C2410C 并加粗

- 已重新编译并生成 v5 预览二维码
2026-10-23 11:48:12 +08:00
xcbyy
2b5cae1a0a feat(ui): 第二批高级感升级(活动/订单/个人中心/登录)
- 活动大厅:玻璃搜索与筛选、活动卡渐变/左侧状态线、进度条与价格排版、错峰入场

- 组局详情:分层 Hero、玻璃信息卡、底部操作栏玻璃化、按钮胶囊化

- 订单列表:状态卡层级、票据风格核销码、按钮与空状态统一

- 个人中心:资料卡玻璃化、资产数字字体、菜单卡统一

- 登录页:品牌光晕、主按钮渐变高光、协议区对比度

- HBuilderX 编译成功并生成预览二维码;119 套件/777 用例全绿
2026-10-23 11:36:30 +08:00
xcbyy
8196b1925b feat(ui): 首页/雷达/TabBar 首版高级感视觉升级
- 扩展设计 Token:表面层级、发丝线、圆角、间距、动效曲线、数字字体

- 首页:克制霓虹背景、玻璃搜索栏、大图 Banner、金色标题、横向筛选胶囊、封面渐变、认证角标、卡片错峰入场、匹配弹窗改底部 Sheet

- 雷达:感知舱玻璃层级、细线同心圆、低干扰扫描、Marker 弹性落点、订单卡片左侧状态线、暖色主题适配

- TabBar:玻璃悬浮、选中指示条、中间发单按钮分层高光、暖色主题同步

- 已通过 HBuilderX 编译并生成预览二维码;777 用例全绿
2026-10-23 11:21:55 +08:00
xcbyy
d0693c6d9e feat(share): 微信小程序全页面支持分享到好友和朋友圈,并自动携带分销邀请裂变参数 2026-10-23 11:05:48 +08:00
xcbyy
8613d40588 fix(upload): 支持管理后台管理员身份上传图片并补齐 a-upload 鉴权请求头 2026-10-23 09:48:16 +08:00
xcbyy
4d2e7b6464 fix(activity): 参与人昵称/头像回填真实用户,已注销用户明确标注
- getActivities/getActivityById 的 participants 关联 users,返回真实昵称与头像

- 用户已删除时返回「用户已注销」,避免详情页显示搭子_id

- 118 套件/773 用例全绿;线上活动详情已验证真实昵称
2026-10-23 09:09:41 +08:00
xcbyy
f082ae8276 fix(theme): 修复门票页导航栏主题脱节与个人中心双身份卡片流光动画,加固活动参与人画像与大神隐私 2026-10-23 09:05:32 +08:00
xcbyy
001f81eaca feat(lbs): 大神真实 5km 即时匹配与接单心跳
- companions 新增 latitude/longitude/last_active_at 与 idx_comp_active;切换接单中立即刷新活跃时间

- 新增 /api/companions/heartbeat(鉴权)与 /api/companions/match(真实注册+审核通过+接单中+10分钟心跳,Haversine 5km 过滤与距离排序,不返回精确坐标)

- 工作台/接单大厅/雷达前台每 60s 心跳,离开停止;首页即时匹配改为服务端 LBS 匹配并展示真实距离

- 线上实测:2010 匹配排除自己,仅命中 280m 的 8 号;匿名命中 9 号 10m、8 号 280m;北京 5km 为 0;118 套件/771 用例全绿
2026-10-22 18:44:02 +08:00
xcbyy
b573c1ed05 fix(home): 即时匹配改为真实在线大神实时匹配,优化弹窗按钮与暖色主题对比度
- 每次匹配重新拉取 /api/companions,只匹配 user_id>0(真实注册)、接单中、排除当前用户的大神

- 换一位优先避开上一位,解决长期固定命中种子大神(林深见鹿 userId=0)的问题

- 弹窗更名为「在线大神即时匹配」,按钮改为「换一位 / 查看资料并预约」,补充图标、尺寸与暖色主题对比

- 关闭弹窗取消未完成匹配;117 套件/765 用例全绿
2026-10-22 18:14:51 +08:00
xcbyy
cf88efbe18 fix(admin): 修复导航品类/轮播图/优惠券/充值阶梯列表因响应结构判断错误显示为空
- axios 响应拦截器已解包为 { code, data },列表在 res.data,原页面误取 res.data.data 导致空列表

- 四个页面统一兼容数组与旧嵌套结构;已重新构建并部署后台,线上 nav-categories 返回 10 条
2026-10-22 16:54:44 +08:00
xcbyy
0a2470bddd refactor(activity): 移除活动品类与合规商圈的本地兜底数据,完全由后台配置驱动
- 发起组局页 games 初始改为空,仅从 nav_categories(status=1) 加载;加载失败/为空显示重试提示,禁止提交空品类

- 合规商圈初始改为空,仅从 safety_places(status=正常营业) 加载;无数据时提示手动填写地点

- 活动列表品类导航移除默认 3 个兜底品类

- 117 套件/764 用例全绿
2026-10-22 16:40:06 +08:00
xcbyy
fba6c5ac22 feat(auth): 移除多角色体验账号直登,仅保留微信手机号授权登录
- 登录页删除体验账号卡片、切换按钮与全部 demo 登录/失败回退逻辑,微信授权失败只提示重试

- completeLogin 只接受服务端签发的 token,禁止无 token 的假登录

- 删除 /api/auth/demo-accounts、/api/auth/demo-login、loadDemoAccounts 与客户端 API

- 停止种子 demo_accounts 配置并清理历史配置行;117 套件/763 用例全绿;线上接口已 404
2026-10-22 15:45:48 +08:00
xcbyy
e595defaaf fix(admin): 用户360画像订单归属改用 expert_id IN (本人档案 id),与列表口径一致且避免 id 撞号 2026-10-22 11:35:46 +08:00
xcbyy
32defce50c fix(order): 关闭按用户 id 撞库档案 id 的订单归属兜底,避免潜在越权读取
- getOrdersForUser/countOrdersForUser 仅按 companions.user_id 关联本人档案,不再使用 companions.id = 用户 id

- 补充回归断言;116 套件/758 用例全绿;线上已验证用户订单仍正常
2026-10-22 11:33:47 +08:00
xcbyy
ab600e1c82 docs(ops): 补充生产 NODE_ENV/pm2 环境变量与巡检 updated_at 口径说明 2026-10-22 11:32:29 +08:00
xcbyy
ef61a7638a fix(order): 服务端分页后状态变更同步当前 tab,取消/支付/验收/退款后不在本 tab 的订单立即移除
- 避免分页+服务端筛选后,已取消/已完成订单仍停留在原 tab 的回归
2026-10-22 11:29:31 +08:00
xcbyy
d876288394 feat(list): 订单/通知/组局列表分页,生产 NODE_ENV 切换 production
- 仓储层 getOrders/getOrdersForUser/getActivities/getUserNotifications 支持 LIMIT/OFFSET,新增 countOrders/countOrdersForUser/countActivities/getUserNotificationTotal

- 接口支持 page/pageSize/status/keyword/payType/creatorId/category,返回 list/total/hasMore;未传 page 保持旧数组格式,兼容后台与工作台

- 小程序订单/通知/组局三页触底加载,筛选与搜索下推服务端,避免只过滤当前页

- 新增 116 套件/758 用例,全绿;线上实测分页与筛选接口正常
2026-10-22 10:52:40 +08:00
xcbyy
082ec1c385 feat(order): 禁止自己接自己发布的订单
- claimOrder 校验 buyer_id 与大神登录用户 id,相同直接 403「不能接自己发布的订单」

- 派单池支持 excludeBuyerId:已登录大神不会看到自己发布的待接单

- 115 套件/753 用例全绿;线上实测自接 403、他人可抢、自己的单不出现在自己的池子
2026-10-22 10:35:56 +08:00
xcbyy
81368f870f fix(order): 统一 expert_id 为大神档案 id,统计兼容历史接单;修复提现卡单告警误报
- claimOrder 写入 expert_id=companion.id、claimed_by=user.id;启动时幂等回填历史 expert_id=claimed_by 的数据

- getExpertStats / getExpertRevenueTrends 按 (expert_id=? OR claimed_by=?) 双口径统计,解决工作台与接单大厅口径不一致导致漏单

- withdrawals 新增 updated_at(ON UPDATE),提现卡单巡检改用最后更新时间,避免审核旧工单立即误报

- 115 套件/752 用例全绿;线上实测抢单写入 expert_id=9/claimed_by=2010,改后统计两口径一致
2026-10-22 10:31:21 +08:00
xcbyy
abf1f5afbb fix(subscribe): 识别演示账号假 openid,完善订阅消息测试诊断
- 新增 isPlausibleWechatOpenid:wx_openid_ 前缀/长度异常的种子 openid 一律视为无效,notifyBySubscribe 与内容安全 openid 均跳过,避免 40003 无效 openid 噪音

- 后台模拟推送返回 openidValid 诊断,并对演示账号给出「请改用真实微信登录用户测试」的明确提示;表单默认 UID 清空

- 115 套件/751 用例全绿;实测 2010 已走到微信侧(43101 用户未授权,需小程序内点击允许)
2026-10-22 10:05:53 +08:00
xcbyy
65ddc7301a feat(ops): 每日数据库备份 + 资金异常巡检告警 + 后台操作审计
- 新增 system_alerts/admin_audit_logs 表与 (status,created_at) 索引;启动即巡检、每 5 分钟扫描提现卡单/支付与订单不一致/待接单超时

- 后台新增「系统告警与操作审计」页(告警处理 + 审计列表),并接入消息铃铛待办

- 余额调整/封禁/删除/大神审核/提现打款/告警处理等敏感操作写入审计日志(含 IP)

- 新增 server/scripts/backup-db.sh 并已在生产配置每日 03:30 cron(校验+保留 14 天)

- 清理空的 order_messages 表;115 套件/750 用例全绿;线上实测告警接口/审计落库/备份均通过
2026-10-22 09:54:10 +08:00
xcbyy
d941a16d28 fix(miniapp): 清理剩余身份兜底并修正待接单状态/客服入口
- 修复 user/index 使用 normalizeUserId 未导入(分享按钮会报错)

- 待接单独立为 PENDING_ACCEPT:新增待接单 tab/状态色/取消订单与联系客服操作,不再显示为进行中

- 移除 hall/bill-records/reports/settings/favorites/order-create/activity-create/activity-detail/apply 的 1001/2006 身份兜底

- 线下订单(含指定大神)必须填写碰面地点;再次预约不再兜底到 101 号大神;评价不预选标签

- 接单大厅去掉「已实名认证/信誉积分100」等伪造信任文案;客服按钮统一为「联系客服」

- 114 套件/745 用例全绿
2026-10-22 09:25:27 +08:00
xcbyy
be1c7be5d3 revert(order): 移除订单站内聊天,沟通统一走官方客服
- 删除 pages/order/chat、聊天接口/仓储方法/order_messages 建表与客户端 API

- 买家「联系大神」、大神「联系老板」、大神详情「在线客服」、组局「私聊」统一改为 openSupportSheet(读取后台 customer_service 配置的客服微信/热线)

- 保留派单实时通知与雷达/大厅轮询

- 114 套件/742 用例全绿;聊天接口线上已 404
2026-10-22 09:10:16 +08:00
xcbyy
aca35db200 feat(order): 派单实时通知 + 订单站内聊天
- 新派单(余额支付立即入池 / 微信支付确认后入池)向在线认证大神推送 ORDER_POOL 站内通知;雷达 20s、接单大厅 30s 自动轮询

- 新增 order_messages 表与订单会话接口:仅买家与已认领大神可访问,服务端拦截手机号与违规内容,消息落库并推送 CHAT 通知

- 新增 pages/order/chat 聊天页(3s 轮询、已读、发送),买家订单「联系大神」与大神工作台「联系老板」接入

- 114 套件/744 用例全绿;线上实测聊天/越权/手机号拦截/新单通知均通过,测试数据已清理
2026-10-22 08:52:12 +08:00
xcbyy
33b6a3ea7d feat(activity): 发单页统一组局与平台派单入口,接单大厅展示附近组局
- 移除附近活动页顶部单独的派单按钮(入口重复)

- 「我要发单」新增发布类型切换:发起组局 / 平台派单,派单模式填预算与时长并内联拉起支付,支付成功进入待接单池

- 接单大厅新增「附近组局(可报名)」区块,展示招募中的组局并可进入详情报名

- 113 套件/738 用例全绿
2026-10-21 18:03:09 +08:00
xcbyy
14ce4b25f5 feat(admin): 用户列表新增「调余额」人工充值/扣减入口
- 新接口 POST /api/admin/users/:id/balance(requireAdmin):事务锁行、扣减不可为负、单次上限 100 万、写 finance_records 并推送站内通知

- 后台用户列表每行新增「调余额」按钮与弹窗(当前余额/方向/金额/备注)

- 新增 admin-balance-adjust 护栏;113 套件/737 用例全绿
2026-10-21 17:41:54 +08:00
xcbyy
4e3283ff01 fix(miniapp): 修复 hall.vue 混入 TS 类型标注导致编译失败
- countByType 的 (cls: string)/(o: any) 改为纯 JS 写法

- 新增 miniapp-script-syntax 护栏:未声明 lang=ts 的 vue 脚本禁止 TS 类型标注(112 套件/734 用例全绿)
2026-10-21 16:48:32 +08:00
xcbyy
18035fefad feat(activity): 附近活动页新增「发布陪玩需求(平台派单)」入口
- 组局活动与抢单订单是两套数据:组局进活动大厅,平台派单订单才进入待接单池

- 入口直接跳转 /pages/order/create(不指定大神时自动进入平台派单模式)
2026-10-21 16:35:01 +08:00
xcbyy
16f6419cba refactor(data): 全面移除小程序写死的演示/兜底数据,测试数据统一落库
- 删除无引用的 common/mock.js;登录页与个人中心的演示账号改为 DB 配置 demo_accounts + /api/auth/demo-accounts、/api/auth/demo-login(签发真实 token)

- 移除订单/活动/大神/动态/推广/工作台/门票/充值/举报等页面的演示列表与假兜底;新增真实空态

- 修复伪造成功:活动调价、评价回复、核销、海报保存、图片上传失败、提现/核销固定 1001、随机开黑房号、随机即时匹配、假语音播放等

- 服务端移除 101/2006 合成用户与合成大神兜底、移除默认服务包虚构价格;演示账号清单可在后台关闭

- 111 套件/733 用例全绿;已部署 20261021_162041,demo-accounts/demo-login 实测通过
2026-10-21 16:21:10 +08:00
xcbyy
77aa4cb50b feat(order): 平台派单闭环(发需求单进入待接单池)
- 下单页新增「指定大神 / 平台派单」模式:平台派单填品类、预算、地点/选点,expertId=0

- 服务端:平台派单单据支付后进入待接单池(余额支付即时入池,微信支付确认后入池),预算由买家出价但受 1~2000 元/小时约束

- 抢单由认领大神写入 expert_id 并转履约中;30 分钟无人接单沿用自动全额退款

- 修复订单 INSERT 占位符少一个导致下单报 Column count doesn't match 的问题,并新增列数/占位符一致性护栏

- 111 套件/737 用例全绿;线上 1 元实测:下单→待接单→池内 640m,测试数据已回滚
2026-10-21 15:16:03 +08:00
xcbyy
5538d8ce7e fix(miniapp): 接单大厅分类数量取真实数据,抢单失败不再伪造订单
- 分类 chip 的 12/4/3 写死数量改为按真实订单统计

- 雷达页抢单失败时删除「自动落盘创建订单」兜底(原逻辑会伪造一笔 buyerId=2001 的订单并提示成功),改为如实提示已被抢/状态不可接/未认证

- 抢单使用当前登录身份(userId 由服务端 token 覆盖),成功后刷新列表

- 110 套件/730 用例全绿
2026-10-21 14:55:01 +08:00
xcbyy
68e41ca962 feat(lbs): 真实距离与按距离派单落地
- 数据库:orders/activities 新增 latitude/longitude(含存量表 ALTER 迁移)

- 服务端:Haversine 计算 distanceKm/distanceText,派单池支持 lat/lng/radius 过滤并按距离升序;历史无坐标订单用腾讯地理编码兜底并回写缓存

- 新增 /api/lbs/reverse 逆地址解析(Key 仅服务端持有,登录 + 限流)

- 小程序:雷达/接单大厅改用真实定位与真实距离,删除全部写死演示距离;下单页新增地图选点,组局页保存选点经纬度

- 修复接单大厅点接单会新建订单的问题,改为真正 claimOrder 认领

- 新增 lbs-distance 护栏(110 套件/729 用例全绿)
2026-10-21 14:29:33 +08:00
xcbyy
ecc4a116c4 feat(pay): 商家转账场景 1005 打通提现打款
- 转账场景报备信息按佣金报酬要求固定传「岗位类型/报酬说明」两段,否则微信参数校验拒绝

- 处理 WAIT_USER_CONFIRM(用户确认模式):推送「提现待你确认收款」,提示 24 小时内确认

- 提现申请增加单笔上限校验(finance_rules.maxWithdrawAmount,默认 200,对齐微信商家转账额度)

- /api/posts 身份优先取服务端会话 token

- 文档补充佣金报酬场景与用户确认模式说明(109 套件/722 用例全绿)
2026-10-21 14:03:22 +08:00
xcbyy
40e601e345 fix(security): 鉴权签名密钥 fail-closed,禁用仓库内置默认密钥
- ADMIN_TOKEN_SECRET 的随机化闸门由 NODE_ENV 改为 SECURE_MODE:线上以 development 运行时不再使用公开默认密钥(该密钥可伪造管理员/用户 token)

- 运行模式与安全开关常量前移到模块顶部,避免鉴权常量初始化顺序问题

- 启动自检与回归用例同步(109 套件/720 用例全绿)
2026-10-21 12:14:16 +08:00
xcbyy
dd836b674e fix(security): 安全闸门与 NODE_ENV 解耦,支付/提现 fail-closed
- 新增 SECURE_MODE(仅 ALLOW_INSECURE_DEV_AUTH=1 时放开):后台登录口令、上传、内容检测、核销码归属全部改为默认收紧,修复线上以 NODE_ENV=development 运行时闸门失效

- 提现审核:未开通真实转账且未显式 ALLOW_SANDBOX_PAY=1 时一律 503,杜绝只改状态不打款

- 预支付:未开启沙箱时不再下发沙箱参数;小程序删除预支付失败伪造沙箱成功的兜底,改为抛错

- 订阅消息支持 MINIPROGRAM_STATE=formal|trial|developer 显式配置,避免真实用户收不到通知

- 动态列表/点赞身份统一 normalizeUserId;文档补充安全闸门与订阅消息环境变量

- 109 套件/720 用例全绿,tsc 构建通过
2026-10-21 11:50:11 +08:00
xcbyy
87cb6a6374 fix(miniapp): 提现/财务接口不再用 1001 演示身份,修复 403
- getUserProfile/getUserWithdrawals/getUserFinanceRecords 去掉 userId=1001 默认值,改由 normalizeUserId 解析登录身份

- withdraw.vue / withdraw-records.vue / workspace.vue 调用改为 normalizeUserId(),不再硬编码 1001

- normalizeUserId 将 1001 视为演示占位符:登录态下传 0 由 token 识别,未登录才兜底 1001

- request.js 遇 403 身份校验失败时清理错配登录态并提示重新登录(其它 403 权限拒绝不受影响)

- 登录态闸门补齐用例(108 套件/714 用例全绿)
2026-10-21 11:38:26 +08:00
xcbyy
9217dfcf11 fix(miniapp): 导出 normalizeUserId 修复入驻页编译失败
- api.js 的 normalizeUserId 之前是内部函数,apply.vue 具名导入导致 HBuilderX 编译报错,现改为 export

- 新增 miniapp-imports.spec.ts:静态校验小程序所有具名导入都存在对应导出,避免再出现只能靠人工编译才发现的问题(108 套件/711 用例全绿)
2026-10-21 11:32:03 +08:00
xcbyy
a249a5ee62 feat(voice): 录音时实时读秒,60 秒自动停止
- 入驻申请页/大神工作台:点击开始录音后,按钮显示已录秒数,状态栏显示剩余秒数(每秒刷新)

- 录音中按钮转为红橙渐变并呼吸闪烁,状态文字高亮;离开页面/出错自动清理计时器

- 60 秒到点自动 stop 录音,避免超长被服务端拒绝

- voice-intro-consistency 增补读秒护栏(107 套件/710 用例全绿)
2026-10-21 11:20:22 +08:00
xcbyy
ae62f2b805 feat(voice): 入驻页录音 + 后台审核真实试听
- 入驻申请页新增「语音自我介绍(可选,≤60s)」录音/试听,申请成功拿到大神档案 id 后自动上传,失败不影响入驻结果

- 管理端审核「真人语音包核听」由 3 秒假播放改为按 voiceIntroUrl 真实播放,未上传显示灰色标记

- 清理小程序审核敏感词(语音房/连麦/开麦),入驻页身份改用 normalizeUserId 与 token 保持一致

- 新增 voice-intro-consistency.spec.ts(107 套件/709 用例全绿)
2026-10-21 11:12:42 +08:00