小鱼开发
|
c6a40331d4
|
chore(release): bump version to 1.9.1 and apply pending changes
|
2026-06-16 15:17:30 +08:00 |
|
小鱼开发
|
53371aabcd
|
feat(image): 封面形象抠图增加积分消耗(每次 10 积分)
- config/points-config.yaml: 添加 cover_avatar: 10 固定积分
- point_service.py: _CATEGORY_MAP 添加 cover_avatar → 封面形象
- image.py: remove_background 接口前置余额检查 + 后置扣费
- CoverAvatarLibrary.tsx: 上传弹窗显示积分提示,余额不足友好提示
|
2026-05-23 10:59:47 +08:00 |
|
小鱼开发
|
88f913b511
|
revert: remove auto-generated DMG background, pending design
|
2026-05-19 09:50:56 +08:00 |
|
小鱼开发
|
8f99d0166b
|
chore: 清理后端未使用文件(307 行)
- 删除 core/health_checker.py(完全未使用)
- 删除 crud/point_batch.py(CRUD 封装未被引用,service 直接用 SQLAlchemy)
- 删除 crud/user_point.py(同上)
- 顺手修复 point_service.py 缺失 logger 定义(ruff F821)
|
2026-05-14 23:10:46 +08:00 |
|
小鱼开发
|
7550559aa0
|
refactor: 清理未使用IPC命令、修正point_service注释与扣费逻辑、修复camelToSnake正则、优化vidu import
- 删除8个未使用IPC命令,保留validate_media_path
- file.rs返回类型优化为ApiResponse<()>
- point_service.consume()注释与签名一致
- VideoGeneration改为拼接成功后扣费
- 添加漏扣费风险注释
- 删除过时测试文件
- 修复camelToSnake连续大写字母问题
- vidu.py import移至模块顶层
Refs: P1-1~P1-6 技术债务清理
|
2026-05-14 17:45:28 +08:00 |
|
小鱼开发
|
873db1a26f
|
fix: 禁止积分余额变为负数
- point_service.consume 默认 allow_negative=False
- script.py / voice.py 捕获 ValueError(积分不足) 返回 402
- Scheduler 后置扣费余额不足时静默失败并记录日志
|
2026-05-11 21:47:26 +08:00 |
|
小鱼开发
|
edc782b15b
|
fix(points): 积分明细首次加载、自定义Select、名词口径统一
- 修复首次进入积分明细无数据(日期就绪后才触发查询)
- 新增 CustomSelect 组件替换原生 select,绿色主题
- 下拉选项根据后端配置动态过滤(只展示有扣费的业务)
- 后端新增 /points/chargeable-types 接口
- 统一名词口径:消耗→消费、声音克隆→复刻、封面制作→设计、润色→文案润色
- 后端接口支持 source_type 查询参数(修复类型筛选不生效)
|
2026-05-10 07:39:08 +08:00 |
|
小鱼开发
|
04e467e433
|
feat(points): 积分系统收尾 + 充值弹窗改造 + 命名统一
后端:
- 微信回调 db.commit 失败仍返回 SUCCESS,避免无限重试
- recharge() 加 order_id 幂等保护,防重复充值
- time_expire 使用北京时间(UTC+8),修复时区 bug
- 充值档位后端配置化(points-config.yaml + /recharge-options API)
- 代码审查 20 项修复(认证加固、扣费顺序、错误响应、状态同步等)
前端:
- 充值弹窗:自动轮询 + 【我已支付】手动兜底
- 二维码倒计时显示,过期后遮罩 + 刷新按钮
- 充值档位从后端动态加载
- 去掉 select/qrcode 弹窗标题,金额红色突出显示
- 全项目命名统一(视频生成/压制成片/配音合成/声音复刻等)
- Modal 关闭按钮独立于 title 显示
|
2026-05-09 21:29:35 +08:00 |
|
小鱼开发
|
0722225c62
|
feat(points): 积分流水表支持时长显示,说明字段简化
后端:
- PointTransaction 模型添加 duration 字段(float, nullable)
- PointTransactionItem schema 添加 duration
- consume() 新增 duration 参数,写入流水记录
- 各业务 description 统一简化为【脚本生成】【配音合成】等格式
- duration 类业务(tts/video)传入实际秒数
- Alembic 迁移: 95eb1a1c0af9_add_duration_to_point_transaction
前端:
- PointTransaction 类型添加 duration
- UsageDetail: 来源列 → 时长列(有值显示 xs,无值显示 -)
- 说明列直接显示后端返回的简化描述
|
2026-05-09 17:08:50 +08:00 |
|
小鱼开发
|
c6eba97b43
|
feat(points): 积分消耗系统全链路集成
后端:
- 简化积分服务: 删除 freeze/settle/refund, 保留 consume/recharge/expire
- 计费配置化: config/points-config.yaml 驱动 fixed/duration/free 三种模式
- TTS 时长探测: app/utils/audio_utils.py (httpx + mutagen 纯 Python)
- Python 层扣费: script(5)/polish(1)/title(1)/voice_clone(200)/tts(按秒)/video(按秒)
- 字幕 free_services: caption/auto_align 不扣费
- 新增 POST /points/consume 端点(402余额预检)
- 新增 check_balance + /points/cost 返回 sufficient/balance/required
- 新增 expire_batches 定时回收, 接入 scheduler main(每5分钟)
- 删除废弃 tts_handler.py
- Alembic 迁移: 删除 frozen/total_refunded 字段
- 同步 requirements.lock 添加 mutagen
前端:
- Rust/IPC 层扣费: compose(5)/subtitle_burn(2)/cover_design(2)
- 字幕打轴改异步: 走 scheduler subtitle handler
- 对口型传 duration: VideoGeneration 传 actualDuration
- 创建 pointStore: 全局余额 + fetchBalance + 充值弹窗控制
- 402 欠费弹 RechargeModal: VideoGeneration/SubtitleBurning/CoverDesign
- 修复 VoiceDubbing.tsx 类型错误 (alignResult never)
- 同步 PointBalance 类型(删除 frozen/available/totalRefunded)
Refs: 积分消耗集成收尾
|
2026-05-09 15:42:54 +08:00 |
|
小鱼开发
|
51521fc0dd
|
feat(payment): 微信支付 APIv2 + 积分充值 + SMS 短信 + 双 Token 认证
- 微信支付从 APIv3 降级为 APIv2(MD5/XML)
- 积分系统:充值下单、微信回调、消费冻结/结算/退款
- SMS B2M 短信验证码服务
- 双 Token 认证(Access 30min + Refresh 30days)
- SSE 单设备踢人
- 用户设备管理、积分账户模型
- Alembic 迁移脚本
|
2026-05-07 18:43:02 +08:00 |
|