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 |
|
xcbyy
|
f3ea26d161
|
feat(admin): 方案A—消息铃铛接真实待办聚合 + 清理空壳接口与空卡片
【消息铃铛(真实数据)】
- POST /api/message/list 改为待办聚合:待接单订单/待审核大神/待审核提现/待处理举报/待仲裁工单(复用 getDashboardTodos + 新增 pendingOrdersCount)
- POST /api/message/read 持久化已读:新表 admin_message_reads 记录"已读时的数量",待办数量增加会重新变未读
- 两个接口均加 requireAdmin(待办数量属运营数据,不再匿名可见)
【删除空壳/死接口(前端已无调用方)】
- /api/user/save-info、/api/chat/list、/api/user/my-team/list、/api/user/latest-activity、/api/user/my-project/list
【后台页面清理】
- 「用户与个人中心 → 管理员资料」移除 我的项目/最近动态/我的团队/站内通知 四张空卡(保留真实的管理员资料头部)
- 删除对应 4 个组件;api/user-center.ts 移除 queryMyProjectList/queryMyTeamList/queryLatestActivity/saveUserInfo;api/message.ts 移除 queryChatList
【验证】
- 新增 admin-todo-bell.spec.ts;更新 admin-demo-data-cleanup.spec.ts
- 全量 101 套件 / 690 用例全绿;冒烟 8/8(未登录50008、待办数量、已读、新增后重新未读)
- 后台 pnpm build 通过
|
2026-10-20 15:52:04 +08:00 |
|
xcbyy
|
05815b4708
|
feat(ui): 余下两页接入主题 + 清理后台模板 demo(1+2)
【1. 主题补全】
- pwuniapp/pages/expert/workspace.vue(大神工作台):根节点加 theme class,66 处深色硬编码改为全局主题变量(bg-primary/surface/surface-elevated/text-*/border-subtle/color-brand(-gradient))
- pwuniapp/pages/activity/my-ticket.vue(我的门票):同样接入主题;条码/二维码区域保持黑白(可扫描,不做主题化)
- 两页 onShow 刷新 currentThemeKey,切换主题回到页面即时生效
【2. 后台模板 demo 清理】
- 删除模板路由模块:form / list / profile / result / visualization(原本 hideInMenu 不可见)
- 删除对应 views 目录、api(form/list/profile/visualization/dashboard)、dashboard/monitor
- 删除 src/mock 与全部 views/**/mock.ts,并移除 main.ts 的 `import './mock'`
- 可见工作台移除:content-chart(调用不存在的 /api/content-data)、popular-content(写死假活动数据);分类占比卡片改为整行
- 同步清理 zh-CN/en-US locale 中对应导入与展开
【验证】
- 后台 `pnpm build` 通过,产物显著减小(chart 分块 1026KB→576KB)
- 新增 theme-and-admin-cleanup.spec.ts;更新 dashboard-reality.spec.ts
- 全量 100 套件 / 685 用例全绿
|
2026-10-20 15:01:50 +08:00 |
|
xcbyy
|
12bbf4fc6b
|
security: 后台登录态可吊销(令牌版本号) + 清理未使用的 prisma 依赖(依赖漏洞 46→0)
- admin token 载荷新增 ver 版本号,与当前版本不一致即失效;版本持久化到 platform_configs,重启/多实例(30s同步)均生效
- 新增 POST /api/admin/session/revoke-all(requireAdmin):一键吊销全部后台登录态;后台右上角新增入口
- 令牌有效期改为可配置 ADMIN_TOKEN_TTL_HOURS(默认由 7 天收紧到 24 小时)
- 移除 server 未使用的 @prisma/client / prisma(server/src 零引用),pnpm 移除 331 个包;pnpm audit --prod 由 46 个漏洞降为 0
- 新增回归护栏 admin-token-revocation.spec.ts(91 套件/653 用例全绿);冒烟 6/6
|
2026-10-19 14:08:58 +08:00 |
|
xcbyy
|
c17afd20d5
|
feat(admin): 模板列表支持「一键按标题填入槽位」,避免手抄长模板ID出错
- 列表每行新增「填入」按钮,按标题(订单/提现/活动报名/核销)自动写入对应槽位
- 顶部新增「一键按标题填入槽位」,批量填入后提示保存落库
- 回归 87 套件/639 用例全绿
|
2026-10-19 11:27:12 +08:00 |
|
xcbyy
|
1c38c32bd6
|
feat(subscribe): 明确「现场4位核销码」模板为可选(方案A),核销码随订单状态通知下发
- 后台第4项模板ID下方补充说明:留空即可,核销码已随「订单状态提醒」的温馨提示下发
- 测试推送下拉标注“(可选)”;未配置该类型时原因附带“可选”说明
- 文档明确 3 个必需模板 + 1 个可选模板
- 回归 87 套件/637 用例全绿
|
2026-10-19 11:14:27 +08:00 |
|
xcbyy
|
256aa381d5
|
feat(admin): 拉取模板列表新增「模板内容(关键词)」列,便于核对 47003 字段名
|
2026-10-19 11:07:18 +08:00 |
|
xcbyy
|
eb592dc1b9
|
fix(admin): 模板ID匹配改由后端裁决并 trim,修复"ID明明一致却报不属于该小程序"的误报
- 拉取模板列表接口在后端统一 trim 后比对,返回 mismatched 结论(含两侧空白差异场景)
- 后台改为直接展示后端结论,避免前端字符串比对误报
- 回归 87 套件/637 用例全绿
|
2026-10-19 11:06:47 +08:00 |
|
xcbyy
|
01823a1db4
|
security: 移除硬编码微信小程序 appId/appSecret,改为只读配置+缺失即失败
- 后端不再兜底内置 appId/appSecret,缺失时 jscode2session/手机号/支付/内容审核等接口明确拒绝(fail-closed)
- 建表种子改为空值;启动自愈由「写入占位值」改为「清空历史占位值」,杜绝误用非本小程序 appId(40037 根因)
- 后台/引导文案去除具体 AppID;文档补充 WX_APP_ID/WX_APP_SECRET 说明
- 新增回归护栏 wechat-appid-config-hardening.spec.ts(87 套件/636 用例全绿);HTTP 冒烟 4/4 验证缺失即失败
|
2026-10-19 10:33:31 +08:00 |
|
xcbyy
|
584e526bca
|
feat(subscribe): 新增拉取小程序真实模板列表诊断(定位40037)
- 新增 GET /api/admin/message/templates:调用 wxaapi/newtmpl/gettemplate 返回当前 appId(脱敏) 下真实模板列表,并标出后台已填但不在列表中的ID
- 测试推送 diagnostics 增加 appIdMasked,便于核对 appId
- 后台新增「拉取小程序模板列表(核对ID)」按钮与不匹配高亮提示
- 文档补充 40037 排查步骤;回归 86 套件/632 用例全绿
|
2026-10-19 10:26:10 +08:00 |
|
xcbyy
|
cacc478d71
|
fix(subscribe): 订阅消息未下发原因可见 + 小程序真实授权
- 后台测试推送:未就绪返回 mode=SIMULATED 明确原因 + 配置自检(模板ID/openid/appId/appSecret/总开关),不再把模拟显示为成功
- 占位符 tmpl_xxx 视为未配置(测试推送与订阅模板接口均过滤),微信错误码中文化(43101/47003/40037/40001 等)
- 小程序「平台消息与通知」点击时真实调用 wx.requestSubscribeMessage 并回显授权状态,标签不再恒为已开启
- 管理端拦截器错误提示改用 message;文档补订阅消息排查顺序;新增回归护栏(86 套件/631 用例全绿)
|
2026-10-19 10:02:57 +08:00 |
|
xcbyy
|
8edffbefa2
|
feat(pay): 接入微信支付V3原路退款(按支付渠道分流 + 幂等 + 退款回调)
- 新增微信退款客户端 createRefund/queryRefundByOutRefundNo(/v3/refund/domestic/refunds)
- 新增退款桥接模块与 payment_refunds 幂等退款记录表
- 订单退款按渠道分流:微信支付原路退回微信;余额支付退回钱包余额;微信退款失败(502)不回退余额,防重复退款
- 覆盖拒单/买家取消/仲裁全额与部分/超时自动退款;新增 /api/pay/wechat/refund-notify 回调
- 后台新增退款回调地址配置;文档补充退款验收说明
- 新增回归护栏 wechat-refund.spec.ts(77 套件/605 用例全绿)
|
2026-10-19 08:47:08 +08:00 |
|
xcbyy
|
2599dce315
|
feat(security): 三端闭环加固 + 微信提现打款/订阅消息落地
后端: 身份与归属鉴权收口; 资金安全(结算闸门/支付防篡改/报名费真实扣款/赠金/结算唯一入账/提现打款); 数据泄露与隐私; 登录与密钥安全(默认密钥闸门/登录限流); 可观测性; 启动自检.
微信: 商家转账到零钱提现打款闭环(含回调/查单/失败退回佣金); 订阅消息真实下发闭环与后台模板字段对齐.
后台: 财务/微信支付配置读取失败锁定; 看板/待办/走势去假数据; 打款与测试推送文案修正.
小程序: 请求层错误透传与登录过期提示; 多页失败反馈与乐观回滚; 帮助中心FAQ页面化.
测试: 新增 40+ 回归护栏与真实 MySQL 冒烟(75 套件/599 用例全绿).
|
2026-10-17 18:00:09 +08:00 |
|
xcbyy
|
78117bb4e1
|
feat: security hardening, wechat pay v3 platform cert integration, companion certification revocation, and audit closed-loop
|
2026-10-16 17:38:17 +08:00 |
|
xcbyy
|
3bf38db8b6
|
feat(order): complete 7.1 order full lifecycle state transitions, 15m/30m/48h auto-timeouts, expert reject/apply-complete, and partial refund arbitration
|
2026-10-14 15:52:56 +08:00 |
|
xcbyy
|
51c19d6063
|
feat(closed-loop): complete end-to-end closed loops across miniapp, backend, and admin
|
2026-10-14 10:13:50 +08:00 |
|
xcbyy
|
010edc130f
|
fix: 完善全系统业务闭环(大神入驻联动用户角色、服务评价人工下架监管、友圈搭子上车审核与抽屉)
|
2026-10-13 18:04:27 +08:00 |
|
xcbyy
|
173835dc4e
|
fix(business-loop): complete arbitration balance refund, withdrawal rejection compensation, admin activity takedown, and companion violation alerts
|
2026-10-13 17:18:11 +08:00 |
|
xcbyy
|
9e2c19088b
|
fix(report): optimize wechat toast length limit and add admin violation reports management center
|
2026-10-13 17:08:25 +08:00 |
|
xcbyy
|
736450973e
|
feat(admin): complete post management, finance csv export, and wechat message template config
|
2026-10-13 11:11:40 +08:00 |
|
xcbyy
|
ecde03f02c
|
docs(admin): clarify platform config menu title with user agreement and privacy keywords
|
2026-10-12 09:45:56 +08:00 |
|
xcbyy
|
334b7a63b0
|
feat(auth): compact agreement layout to single-line and support flexible backend configuration for user agreement and privacy policy
|
2026-10-12 09:20:40 +08:00 |
|
xcbyy
|
872af22c20
|
feat(config): add finance rules, activity rules, and real expert application flow
|
2026-10-10 14:06:29 +08:00 |
|
xcbyy
|
d7f5c31762
|
feat(safety): add expert skill tags and price range constraints configuration
|
2026-10-10 13:56:38 +08:00 |
|
xcbyy
|
2e726e125d
|
feat(config): implement dynamic security blocklist and home marketing popup with admin controls
|
2026-10-10 13:49:01 +08:00 |
|
xcbyy
|
9417fe24b3
|
fix(admin): resolve platform config save false alarm and unify response unwrapping
|
2026-10-10 11:00:48 +08:00 |
|
xcbyy
|
dec6f9df27
|
fix(admin): adapt axios interceptor response in platform-config saving
|
2026-10-10 10:45:19 +08:00 |
|
xcbyy
|
c6efac2ee5
|
fix(admin): display numeric sortOrder tag instead of dot badge
|
2026-10-10 10:18:27 +08:00 |
|
xcbyy
|
8845fbe7cb
|
feat(community,faq): support dynamic community topics, notice, and FAQ center
|
2026-10-10 10:04:49 +08:00 |
|
xcbyy
|
e36e80c399
|
feat(safety): support full CRUD for approved commercial places and dynamic sync to uniapp
|
2026-10-10 09:52:42 +08:00 |
|
xcbyy
|
dc19189bc6
|
feat(system): implement dynamic platform configs for customer service, safety notice, and service agreement
|
2026-10-10 09:47:53 +08:00 |
|
xcbyy
|
d9c8388711
|
feat(marketing): implement recharge tiers and coupon management across admin, server, and uniapp
|
2026-10-10 09:22:46 +08:00 |
|
xcbyy
|
51682fffea
|
feat(nav-category): support dynamic home grid categories in admin and uniapp
|
2026-10-10 09:08:18 +08:00 |
|
xcbyy
|
f2c6f98962
|
feat(banner): support dynamic banner management in admin and sync with miniprogram
|
2026-10-10 08:51:34 +08:00 |
|
xcbyy
|
d0f4050cdc
|
feat: 完善对象存储上传与真实条码二维码引擎,彻底剥离保底Mock数据
|
2026-10-09 17:18:14 +08:00 |
|