abingyyds
75e8062226
chore: sync pending distributor workspace changes
2026-04-08 14:17:09 +08:00
abingyyds
de5d047371
Add nested distributor pricing and profit split
2026-04-08 14:17:07 +08:00
abingyyds and Claude Sonnet 4.6
1138015cc4
feat: 分站控制台增加邀请面板 + 充值快捷入口 + 完善i18n翻译
...
- 将邀请返佣面板从充值页移至控制台首页(Dashboard)
- Dashboard 快捷入口新增充值链接
- 添加邀请相关中英文翻译(16个key)
- 清理 Topup.jsx 中已移除的 aff 代码
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 01:57:02 +08:00
abingyyds and Claude Sonnet 4.6
dca8f9b6e2
feat: 分站充值入口 + 邀请返佣 + 充值金额显示人民币
...
- 分站控制台新增充值 tab,复用主站 TopUp 组件
- 分站注册支持 aff_code 邀请码,走主站反佣逻辑
- 分站充值页新增邀请返佣卡片(邀请链接、佣金统计、划转、收入明细)
- 分站充值快捷按钮和输入框按汇率显示人民币
- 后端新增 5 个分站 aff API 路由,复用主站 controller
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 23:45:33 +08:00
abingyyds and Claude Opus 4.6
179ee855be
fix: 优化分站 API Key 页面显示细节
...
- 移除空状态冗余创建按钮,改为提示点击上方卡片
- 移除 My API Keys 标题栏多余的新建按钮
- ConfigExporter 无 key 时提示改为"请先创建 API Key"
- 修复 KeyGroupCard 推荐/折扣标签颜色适配所有主题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-31 23:51:38 +09:00
abingyyds and Claude Opus 4.6
3aeff2ede6
fix: 分站日志耗时显示修复
...
use_time 字段已经是秒,不需要再除以1000
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-31 23:41:56 +09:00
abingyyds and Claude Sonnet 4.6
6b77f00396
fix: 分站套餐页额度显示改为人民币,优化文案
...
- 套餐卡片的每日额度从 $2.20 改为 ¥16.06 显示
- 确认弹窗的额度也改为人民币
- 翻译 key 里 $ 符号改为 ¥
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-28 00:36:44 +09:00
abingyyds and Claude Opus 4.6
91e673aabd
fix: 分站加载动画跟随主题色
...
- 添加 --page-bg/--page-spinner CSS 变量,各主题定义自己的颜色
- body 背景改用 CSS 变量,不再硬编码黑色
- SiteContext 获取站点信息后立即应用主题类到 body
- localStorage 缓存主题类,刷新时在 React 加载前恢复,防止闪烁
- 浅色主题(clean/corporate/claude)加载时显示白色/米色背景+对应色 spinner
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-27 21:29:53 +09:00
abingyyds and Claude Sonnet 4.6
16c42412bc
feat: 分站套餐价格改为人民币存储,额度输入简化为人民币金额
...
- 后端: DistributorPackage.Price/OriginalPrice 改为存 CNY
- 后端: SubscribePackage 购买时自动 CNY→USD 转换再算 quota
- 前端: 套餐表单额度从 quota 单位改为人民币金额输入
- dist-site: 7个主题 + Packages页面去掉 price*rate 转换
计费逻辑不变:CNY/汇率=USD,USD*QuotaPerUnit=quota
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 21:02:31 +09:00
abingyyds and Claude Opus 4.6
f087c0f978
feat: 分站用户调用日志页面
...
- 新增 DistUserGetLogs 后端接口,支持按模型/令牌筛选和分页
- 新增 dist-site Logs 页面,desktop 表格 + mobile 卡片布局
- 所有 7 个主题 Layout 添加日志导航项
- Dashboard 快捷入口替换为调用日志链接
- 添加中英文 i18n 翻译
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-26 21:34:56 +09:00
abingyyds and Claude Opus 4.6
23920eb635
fix: 自定义价格真正参与计费 + 修复价格显示翻倍
...
1. 计费核心改动 (relay/helper/price.go):
- applyDistributorMarkup 新增自定义价格支持
- 自定义价格转 USD 后与平台底价对比,计算等效加价倍率
- 保底机制:自定义价格不得低于平台底价,防止平台亏损
- 优先级:全站加价 > 自定义价格 > 单模型加价比例
2. 分站价格显示修复 (controller/dist_site.go):
- 自定义价格跟随商家币种(CNY),发送前需转 USD
- 修复 ¥6.8 显示为 ¥46.24 的翻倍问题
3. 管理页面改进 (DistributorModels.jsx):
- 全站加价模式下展示含加价的价格
- 自定义价格输入框显示正确的币种单位
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-26 17:53:22 +09:00
abingyyds and Claude Sonnet 4.6
31e4bd22e4
fix: 周期性套餐等价计算使用整个有效期的总额度
...
之前只用了单次周期的 quota 计算等价,导致每日重置套餐(如 $1/天 × 30天)
只显示 $45 等价,实际应该是 $30 总额度 × 45倍 = $1359 等价
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 20:34:15 +09:00
abingyyds and Claude Sonnet 4.6
b27fa4df53
fix: 修复官方等价对比 pattern 无法匹配后端 model_name 的问题
...
- Pattern 改为匹配后端实际格式(如 claude-opus-4-5 而非 claude-4.5-opus)
- 确保更具体的 pattern 排在前面,避免 Opus 4.5 误匹配到 Opus 4 的 $15 官方价
- 补充更多模型:GPT-4.1 Mini/Nano、Gemini Flash Lite、DeepSeek R1/V3 等
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 17:41:01 +09:00
abingyyds and Claude Sonnet 4.6
2109f2a7a0
fix: 官方等价轮播限制最多展示前 3 个模型
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 17:16:48 +09:00
abingyyds and Claude Sonnet 4.6
a6b962084d
feat: 官方等价对比改为轮播动效,展示所有匹配模型
...
- 新增 RotatingEquiv 组件,3秒间隔淡入淡出切换
- calcOfficialEquivList 返回所有匹配模型(含 Gemini 系列)
- Packages 页面和 7 个 Home 模板全部适配轮播
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 17:10:31 +09:00
abingyyds and Claude Sonnet 4.6
3b8206284f
feat: 所有模板 Home 页套餐卡片添加官方价格等价对比
...
提取 calcOfficialEquiv 为公共工具函数,7 个 Home 模板和
Packages 页面共用,自动选择折扣比例最大的模型展示等价额度。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 03:46:01 +09:00
abingyyds and Claude Sonnet 4.6
6e5a4ff97e
feat: 分站套餐卡片添加官方价格等价对比营销文案
...
在套餐卡片中展示与 Claude/GPT 官方价格对比的等价额度,
帮助用户直观理解套餐的性价比优势。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 03:33:38 +09:00
abingyyds
31dfed1a2e
Revert "feat: 分站套餐页增加限时特惠标识"
...
This reverts commit 34dfa2099bc9f2f23e900583b268406d9422c738.
2026-03-22 23:12:04 +09:00
abingyyds and Claude Sonnet 4.6
d628477e4d
feat: 分站套餐页增加限时特惠标识
...
- 页面顶部添加限时特惠横幅,提示当前为特价
- 每个套餐卡片增加"特惠价"徽章
- 价格区域增加折扣百分比标签和涨价提示
- 中英文 i18n 键补全
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-22 09:43:53 +09:00
abingyyds and Claude Sonnet 4.6
3ed0f67be0
feat: 分站配置导出器模型搜索功能 + i18n 补全
...
ConfigExporter 模型下拉改为可搜索的自定义 combobox,
新增 config.searchModel / config.noModelMatch i18n 键。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 23:05:07 +09:00
abingyyds and Claude Sonnet 4.6
782439995f
feat: 分站 API Key 支持随时查看复制 + 配置文件导出器
...
- 后端:DistTokenList 去掉 Clean(),返回完整 key 供前端显示
- 前端:Token 列表每行显示完整 key 和复制按钮
- 新增 ConfigExporter 组件,支持 7 种工具配置生成
(Claude Code / OpenClaw / OpenCode / Cursor / cURL / Python / Anthropic SDK)
- 自动使用分站域名作为 API Base URL
- 中英文 i18n 翻译
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 22:54:52 +09:00
abingyyds and Claude Sonnet 4.6
6e99c12292
feat: 管理员"充值记录"改为"订单记录",新增分站订单查看
...
- 管理员侧边栏标签从"充值记录"改为"订单记录"
- 新增 Tab 切换:充值订单 / 分站订单
- 后端新增 GET /api/user/dist_orders 管理员接口
- 分站订单表格显示订单类型、金额、折扣比例、站点名称等
- 完善 6 语言 i18n 翻译
- 包含其他 Agent 的 dist-site 样式改动
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 18:08:48 +09:00
abingyyds and Claude Sonnet 4.6
aa7bbb3f56
chore: 提交其他 Agent 的未推送改动
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 17:22:17 +09:00
abingyyds and Claude Sonnet 4.6
914ddf0a26
fix: 套餐购买系统修复 - 事务安全、购买记录、前端错误处理
...
- 新增 PackageOrder 模型,记录每次套餐购买的详细信息
- 将套餐扣费和充值操作改为数据库事务(原子操作),防止部分失败导致数据不一致
- 使用行级锁(FOR UPDATE)确保并发安全
- 添加 ErrInsufficientQuota 哨兵错误,提升错误处理可靠性
- 购买成功后记录操作日志(RecordLog)
- 前端 Packages.jsx 增加失败时的错误提示
- 分站模型管理和设置页面小幅修正
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 16:47:29 +09:00
abingyyds and Claude Sonnet 4.6
41d199625f
fix: 分站支付跳转和回调问题
...
- EPay/Stripe: 前端传 return_url (window.location.origin + '/topup')
- 后端优先用 return_url,回退到 Origin/Referer 头
- Stripe: 分站自己实现下单,跳过 ValidateRedirectURL 验证
- 增加分站支付日志便于排查
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 16:09:49 +09:00
abingyyds and Claude Sonnet 4.6
1428aa2895
fix: 修复分站充值页面所有支付按钮不可用的问题
...
- EPay: 改用隐藏表单POST提交(与主站一致),修复参数缺失错误
- Stripe: 修正响应字段为 data.pay_link,使用 window.open 打开
- Crypto: 新增链(TRON/ETH/BSC)和代币(USDT/USDC)选择器,发送完整参数
- Creem: 改为产品模式,展示产品卡片,发送 product_id 而非 amount
- 新增相关 i18n 翻译键
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 15:35:54 +09:00
abingyyds and Claude Sonnet 4.6
3494a21838
build: rebuild dist-site with topup feature
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 15:24:29 +09:00
abingyyds and Claude Sonnet 4.6
a512c4c344
fix: replace TiltedCard with SpotlightCard in default theme features
...
TiltedCard requires an imageSrc prop (renders <img>), but was used as
a children container, causing broken image icons. Replaced with
SpotlightCard which properly supports children content.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 14:59:57 +09:00
abingyyds and Claude Sonnet 4.6
662685cc97
feat: add language switch button and optimize theme visuals
...
- Add LanguageSwitch component to all 4 theme layouts (starter/default/dark/minimal)
- Import Noto Sans SC for proper Chinese font rendering
- Fix theme flash on refresh by blocking render until site info loads
- Optimize default theme: violet/blue/cyan palette, SVG icons instead of emoji
- Optimize dark theme: unified emerald accent, reduced particle count, backdrop-blur
- Add Tailwind safelist for dark theme dynamic class names
- Prioritize localStorage in i18n detection so manual language choice persists
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 10:19:38 +09:00
abingyyds and Claude Sonnet 4.6
01405ca8cf
feat: dist-site 多主题模板 + 中英双语 i18n
...
- 新增 4 套主题模板:starter/default/dark/minimal
- Starter: 毛玻璃 + GradientText + SpotlightCard (原有风格)
- Default: Aurora 极光背景 + SplitText + TiltedCard
- Dark: Particles 粒子 + DecryptedText 赛博朋克风格
- Minimal: 极简优雅 + FadeContent 淡入动画
- 新增 i18n 中英双语支持 (i18next + browser-languagedetector)
- 新增 ThemeProvider 运行时主题切换 (根据 theme_template 字段)
- 新增 11 个 react-bits 动画组件
- 所有页面文案国际化 (Login/Register/Dashboard/Tokens/Pricing/Packages)
- 新增 README.md + README.zh.md 含主题切换指南
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 09:04:25 +09:00
abingyyds and Claude Sonnet 4.6
cc9a8bcc0e
fix: 分站价格单位改为每1M tokens + 移除所有SubRouter主站标识
...
- 价格表单位从 "per 1K tokens" 改为 "per 1M tokens"(价格×1000显示)
- 移除 footer "Powered by SubRouter" 字样
- 默认站名从 "SubRouter" 改为 "AI Platform"
- HTML title 从 "SubRouter Dist Site" 改为 "AI Platform"
- 分站不再包含任何主站品牌标识
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 06:01:43 +09:00