chenchun
|
75c208dafc
|
feat: 完成激活码功能
|
2025-12-19 13:50:30 +08:00 |
|
chenchun
|
8021ca9eff
|
perf: 优化封装
|
2025-12-19 12:58:57 +08:00 |
|
chenchun
|
2cf06a5677
|
perf: 优化订单创建逻辑
|
2025-12-19 11:53:17 +08:00 |
|
ccnetcore
|
fcf0fd7f70
|
feat: 全面支持geminicli
|
2025-12-17 21:51:01 +08:00 |
|
chenchun
|
4e421c160c
|
feat: 新增gemini支持
|
2025-12-17 18:47:28 +08:00 |
|
ccnetcore
|
a46a552097
|
feat: 完成模型库优化
|
2025-12-11 21:12:29 +08:00 |
|
chenchun
|
f90105ebb4
|
feat: 全站优化
|
2025-12-11 17:33:12 +08:00 |
|
chenchun
|
67ed1ac1e3
|
fix: 聊天模型列表仅返回 OpenAi 类型
在 Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/Chat/AiChatService.cs 中,为查询添加了 .Where(x => x.ModelApiType == ModelApiTypeEnum.OpenAi) 过滤,确保只返回 ModelType 为 Chat 且 ModelApiType 为 OpenAi 的模型,避免将非 OpenAi 的模型纳入聊天模型列表。
|
2025-12-11 17:17:35 +08:00 |
|
ccnetcore
|
433d616b9b
|
feat: 支持codex
|
2025-12-11 01:17:31 +08:00 |
|
chenchun
|
381b712b25
|
feat: 完成模型库功能模块
|
2025-12-10 15:08:16 +08:00 |
|
ccnetcore
|
1a32fa9e20
|
feat: 支持多选模型库条件
|
2025-12-10 00:31:14 +08:00 |
|
chenchun
|
54a1d2a66f
|
feat: 完成模型库
|
2025-12-09 19:11:30 +08:00 |
|
ccnetcore
|
94c52c62fe
|
style: 修改token描述
|
2025-11-29 18:33:39 +08:00 |
|
ccnetcore
|
37b4709d76
|
feat: 新增token默认分组
|
2025-11-29 18:28:42 +08:00 |
|
ccnetcore
|
86555af6ce
|
feat: 完成token下拉框
|
2025-11-29 18:25:43 +08:00 |
|
chenchun
|
b78ecf27d5
|
feat: 完成token功能
|
2025-11-27 19:01:16 +08:00 |
|
chenchun
|
afe9c8bcae
|
feat: 新增模型列表 IsPremiumPackage 字段并在 AiChatService 中设置
- 在 Yi.Framework.AiHub.Application.Contracts.Dtos.ModelGetListOutput 中新增 bool 属性 IsPremiumPackage。
- 在 Yi.Framework.AiHub.Application.Services.Chat.AiChatService 的模型映射中设置该属性,判断逻辑为 PremiumPackageConst.ModeIds.Contains(x.ModelId)。
- 便于前端区分并展示“尊享包”模型。
|
2025-11-25 09:59:31 +08:00 |
|
ccnetcore
|
ffb2f2fb4c
|
fix: 修复尊享包查询条件并新增时间范围筛选
|
2025-11-16 21:32:41 +08:00 |
|
ccnetcore
|
4bd2fc357d
|
refactor: 邀请码逻辑调整,支持双方填写/使用邀请码统计,并移除已被邀请状态字段
|
2025-11-14 23:53:29 +08:00 |
|
chenchun
|
da23d17af8
|
feat: 为尊享包 Token 列表新增按是否免费过滤并添加请求 DTO
- 新增 PremiumTokenUsageGetListInput,包含 IsFree 过滤项并继承分页 DTO
- 修改 UsageStatisticsService.GetPremiumTokenUsageListAsync 签名为使用新的输入 DTO,并根据 IsFree 添加 WhereIF 过滤
- 微调 DTO 导入与格式化(PremiumTokenUsageGetListOutput)
|
2025-11-14 18:00:49 +08:00 |
|
chenchun
|
c1a6046107
|
feat: 完成公告、尊享记录功能
|
2025-11-14 17:54:40 +08:00 |
|
chenchun
|
1b4c3cbb8d
|
feat: 支持尊享包用量统计
|
2025-11-10 15:18:05 +08:00 |
|
chenchun
|
b7756e2112
|
feat: 新增功能
- 概要
- 重构并扩展公告相关模型、DTO、服务,新增公告类型、图片与时间字段,调整缓存与查询处理。
- 新增枚举 AnnouncementTypeEnum。
- 主要改动(简要)
- Yi.Framework.AiHub.Application.Contracts/Dtos/Announcement/AnnouncementLogDto.cs
- 新增 ImageUrl、StartTime、EndTime、Type 字段,移除 Date 字段,Title 不再默认空串。
- Yi.Framework.AiHub.Domain/Entities
- 重命名 AnnouncementLogAggregateRoot -> AnnouncementAggregateRoot
- 表名由 Ai_AnnouncementLog 改为 Ai_Announcement(SugarTable 标注)
- 新增 ImageUrl、StartTime、EndTime、Type、Remark 字段(Remark 已存在,保持)
- Yi.Framework.AiHub.Domain.Shared/Enums/AnnouncementTypeEnum.cs
- 新增枚举文件(Activity=1, System=2)
- Yi.Framework.AiHub.Application.Contracts/IServices/IAnnouncementService.cs
- GetAsync 返回类型由 AnnouncementOutput 改为 List<AnnouncementLogDto>
- Yi.Framework.AiHub.Application/Services/AnnouncementService.cs
- 使用 Mapster 进行 DTO 映射
- 查询按 StartTime 降序,返回 List<AnnouncementLogDto>,缓存结构简化
- Yi.Abp.Web/YiAbpWebModule.cs
- 改为初始化 AnnouncementAggregateRoot 的表(Ai_Announcement)
- Yi.Ai.Vue3/types/import_meta.d.ts
- 移除 VITE_BUILD_COMPRESS 环境变量声明
- 重要注意/兼容性提示
- 接口变更:IAnnouncementService.GetAsync 返回类型已改变,调用方需同步更新(之前返回 AnnouncementOutput 的代码需调整)。
- 数据库表变更:表名从 Ai_AnnouncementLog -> Ai_Announcement,若需保留历史数据,请在部署前做好数据迁移(重命名表或迁移数据到新表结构),或使用 CodeFirst 初始化新表(当前代码在启动时会 InitTables<AnnouncementAggregateRoot>())。
- 新增 Mapster 适配(确保项目有 Mapster 依赖)。
- 前端类型声明移除环境变量后,前端构建/运行脚本若依赖 VITE_BUILD_COMPRESS 需同步调整。
- 若有缓存结构(AnnouncementCacheDto)或序列化相关约定变更,确认兼容性。
- 建议操作
- 更新所有使用 IAnnouncementService 的代码(API 层/前端适配返回结构)。
- 在非生产环境先执行数据迁移验证(保留旧表数据或写迁移脚本)。
- 确认 Mapster 包已安装并编译通过。
- 前端项目检查并同步 import_meta.d.ts 变更。
|
2025-11-10 15:03:02 +08:00 |
|
chenchun
|
cb49059e84
|
feat: 翻牌与邀请码逻辑重构,新增中奖记录与前7次中奖概率
- CardFlipTaskAggregateRoot.cs
- 用 WinRecords(Dictionary<int,long>) 替代原先第8/9/10次的各自字段,且以 JSON 存库(SugarColumn IsJson)。
- 构造函数初始化 WinRecords。
- 新增 SetWinReward(int flipCount, long amount) 统一记录中奖。
- CardFlipService.cs
- 读取并展示 WinRecords,按翻牌顺序映射中奖信息(不再依赖单独的第8/9/10字段)。
- CardFlipManager.cs
- 重构中奖逻辑:
- 前7次翻牌改为 50% 概率可中奖,奖励范围 1w–3w(新增配置常量 FREE_*)。
- 统一通过 SetWinReward 记录任意次的中奖金额。
- GenerateRandomReward 根据最小值自动选单位(1w 或 100w)。
- 邀请类型翻牌校验由“仅统计被填写次数”改为“统计本周作为邀请人或被邀请人的邀请记录数量”(双方都计入),并据此判断是否可解锁邀请翻牌次数。
- InviteCodeManager.cs
- 使用邀请码时:
- 验证规则调整:一个账号只能填写别人的邀请码一次(hasUsedOthersCode 检查)。
- 邀请记录的语义变化:当使用邀请码时,邀请记录同时代表邀请人和被邀请人各增加一次翻牌机会。
- 不再将邀请码标记为单次已用;改为增加 UsedCount(一个邀请码可以被多人使用)。
- 优化日志与提示信息。
- InviteCodeAggregateRoot.cs
- 移除 IsUsed、UsedTime、UsedByUserId、MarkAsUsed 等单次使用相关字段/方法。
- 保留 IsUserInvited(被邀请后不能再作为被邀请者使用)和 UsedCount(统计多人使用次数)。
注意事项
- 这是数据结构与业务逻辑的变更,数据库表结构发生变化(新增 WinRecords JSON 字段,移除若干字段)。上线前请准备相应的迁移脚本或数据迁移方案,确保历史中奖数据平滑迁移到 WinRecords。
- 变更会影响相关单元/集成测试、前端展示字段,需同步更新对应测试与界面展示逻辑。
|
2025-11-07 21:31:18 +08:00 |
|
chenchun
|
690cabfd96
|
feat: 新增公告功能
|
2025-11-06 16:59:29 +08:00 |
|
ccnetcore
|
477c0e3f2c
|
Merge branch 'invitation' into ai-hub
|
2025-11-02 13:00:36 +08:00 |
|
chenchun
|
f02fb91175
|
feat: 增加邀请码每周使用上限并调整翻牌规则(扩展免费次数、移除赠送翻牌与翻倍提示)
|
2025-10-30 19:51:56 +08:00 |
|
chenchun
|
5beef22269
|
fix: 修复权限判断逻辑(应为 &&,避免始终抛出权限异常)
修正 AiAccountService.GetProfitStatisticsAsync 中的条件判断,原先使用 || 导致即使为 Guo 或 cc 仍被拒绝访问。
|
2025-10-30 14:48:53 +08:00 |
|
chenchun
|
933cbb91d8
|
feat: 新增尊享包利润统计接口及 ElCollapseTransition 类型声明
- 在 AiAccountService 中新增 GetProfitStatisticsAsync 接口(GET account/profit-statistics),注入 PremiumPackage 仓储并统计尊享包已消耗/剩余、总成本、总收益、利润率及按200售价的成本估算。接口受授权控制。
- 注入 ISqlSugarRepository<PremiumPackageAggregateRoot> 并在构造函数中赋值。
- 在 types/components.d.ts 中新增 ElCollapseTransition 类型声明,补充前端组件类型提示。
- 注意:接口中对用户权限的判断使用了 "CurrentUser.UserName != \"Guo\" || CurrentUser.UserName != \"cc\"",该逻辑可能有误(应为 &&),建议确认并修正权限校验。
|
2025-10-30 14:38:58 +08:00 |
|
chenchun
|
e906208f4a
|
feat: 新增邀请翻牌验证及相关文案与界面调整
- CardFlipManager:注入 InviteCodeManager,新增对 Invite 类型翻牌的邀请校验(未使用邀请码则抛出异常),防止未被邀请的用户使用邀请类型翻牌。
- CardFlipService:调整提示文案,统一使用“本周”前缀,并在邀请解锁提示中强调必定中奖且每次中奖最大额度翻倍。
- 前端:
- CardFlipActivity.vue:注释掉翻牌失败的全局提示,调整统计文案为“本周已翻/本周剩余/本周邀请”,并在邀请弹窗文案中说明必定中奖且奖励翻倍。
- Avatar.vue:更新菜单项标签为“每日任务(限时)”和“每周邀请(限时)”。
|
2025-10-30 11:19:22 +08:00 |
|
chenchun
|
e6b991fe86
|
feat: 调整翻牌与邀请码逻辑,增加第8次奖励及前端骨架屏
|
2025-10-29 21:55:17 +08:00 |
|
chenchun
|
3e75792e43
|
fix: 修复bug - 在可用性检查中支持忽略剩余令牌校验,避免负数用量包被错误过滤
- 将 PremiumPackageAggregateRoot.IsAvailable 增加参数 isVerifyRemainingToken=true,保持默认行为不变,允许按需跳过对 RemainingTokens 的校验。
- 在 UsageStatisticsService 中计算可用包时改为使用 p.IsAvailable(false),仅过滤过期或禁用的包,但不再因 RemainingTokens 为负而将包排除,从而保证统计(如 TotalTokens/RemainingTokens 汇总)包含负数用量的包,修正统计错误。
修改文件:
- Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs
- Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs
|
2025-10-29 16:34:53 +08:00 |
|
chenchun
|
108ba348f6
|
feat: 扣减尊享包用量并调整日常任务奖励
- 在 AiGateWayManager 中新增:当请求使用尊享包模型时,按实际使用的 totalTokens 调用 PremiumPackageManager.TryConsumeTokensAsync 扣减用户尊享包用量(仅在 totalTokens > 0 时)。
- 调整 DailyTaskService 中两项日常任务的奖励配置:1000w 消耗奖励由 200w -> 100w,3000w 消耗奖励由 400w -> 200w。
- 兼顾少量格式化优化(if 条件空格调整)。
|
2025-10-28 17:43:23 +08:00 |
|
chenchun
|
a1395d9a33
|
feat: 新增翻牌顺序追踪并重构翻牌/邀请码逻辑到 Manager,更新前端
- 在 CardFlipStatusOutput 与前端 types 添加 FlipOrderIndex 字段以记录牌在翻牌顺序中的位置
- 在域实体 CardFlipTaskAggregateRoot 增加 FlippedOrder(Json 列)以保存用户实际翻牌顺序
- 将 CardFlipService 重构为调用 CardFlipManager 与 InviteCodeManager,移除大量内聚的业务实现与常量(职责下沉到 Manager)
- 调整翻牌、使用邀请码和查询相关流程为 Manager 驱动,更新返回结构与提示文本
- 更新前端 CardFlipActivity 组件与 types,允许任意未翻的卡片被点击并显示翻牌顺序位置
- 若干文案、格式与日志细节修正
|
2025-10-27 21:57:26 +08:00 |
|
chenchun
|
aec90ec9d6
|
feat: 新增翻牌活动入口与全局组件声明
- 在 Header Avatar 菜单新增翻牌活动(cardFlip)入口,并添加对应插槽 <card-flip-activity/>
- 在 types/components.d.ts 中添加 CardFlipActivity 与 ElCollapseTransition 类型声明
- 在 .eslintrc-auto-import.json 中新增 ElMessage 与 ElMessageBox 自动导入
- 从 import_meta.d.ts 中移除 VITE_BUILD_COMPRESS 环境声明
- 在 YiAbpWebModule.cs 中添加相关 using 并保留数据库建表初始化的注释(CodeFirst.InitTables)
|
2025-10-23 21:58:47 +08:00 |
|
chenchun
|
cdbfc5383d
|
feat: 为充值记录新增订单类型字段并区分VIP与套餐逻辑
|
2025-10-20 10:18:24 +08:00 |
|
ccnetcore
|
86c5890476
|
feat: 用户中心新增每日任务组件并在头像菜单中集成
|
2025-10-18 17:34:46 +08:00 |
|
ccnetcore
|
a13ee395c7
|
feat: 支持 x-api-key 认证并扩展 Anthropic 响应字段,优化工具调用处理
|
2025-10-18 13:23:54 +08:00 |
|
ccnetcore
|
acb2db8397
|
fix: 商品类型返回值
|
2025-10-15 23:00:42 +08:00 |
|
chenchun
|
2d6c1f3c46
|
fix: 验证交易状态仅在成功时执行充值逻辑
|
2025-10-15 11:53:54 +08:00 |
|
ccnetcore
|
959eb3f782
|
fix: 优化服务号与支付逻辑,增加AccessToken为空校验及优惠描述完善
|
2025-10-14 23:02:44 +08:00 |
|
ccnetcore
|
533b87fc5b
|
fix: 修复统计近7天token消耗时角色过滤条件错误
|
2025-10-14 22:22:35 +08:00 |
|
ccnetcore
|
15713cf7fe
|
feat: 支持Claude模型API类型及尊享包校验与扣减逻辑
|
2025-10-14 22:17:21 +08:00 |
|
ccnetcore
|
aa9dd0129b
|
refactor: 将尊享包Token统计逻辑从AiAccountService迁移至UsageStatisticsService,并移除AiUserRoleMenuDto相关字段
|
2025-10-12 21:51:51 +08:00 |
|
ccnetcore
|
d32906702a
|
feat: 商品枚举与支付服务优化,支持中文名称、参考价格及类别筛选
|
2025-10-12 21:04:08 +08:00 |
|
ccnetcore
|
9bcdaf6bd8
|
fix: 更新尊享包折扣规则为每10元减2.5元,最多减50元,并同步修改提示文案
|
2025-10-12 20:14:07 +08:00 |
|
ccnetcore
|
a9e8b2b01f
|
feat: 增加尊享包商品及折扣逻辑,完善VIP与尊享包相关接口和数据返回
- 新增尊享包商品类型,支持 5000W 和 10000W Tokens
- 增加尊享包折扣计算与折扣后价格获取方法
- PayService 新增获取商品列表接口,支持尊享包折扣展示
- PayManager 支持尊享包订单金额按折扣计算,并新增获取用户累计充值金额方法
- OpenApiService Anthropic接口增加VIP与尊享包用量校验
- AiGateWayManager 增加尊享包Token扣减逻辑
- AiAccountService 返回用户VIP状态、到期时间及尊享包Token统计信息
|
2025-10-12 20:07:58 +08:00 |
|
ccnetcore
|
4d09243efd
|
feat: 完成尊享服务
|
2025-10-12 16:42:26 +08:00 |
|
chenchun
|
345ed80ec8
|
feat: 新增claude接口转换支持
|
2025-10-11 15:25:43 +08:00 |
|
chenchun
|
fa3ac91ba4
|
fix: 修正文件整理大师Vip数量限制提示错误
|
2025-09-18 16:17:10 +08:00 |
|