井云服务中心点数系统概述
📋 系统简介
井云服务中心点数系统是集成在用户服务中的核心功能模块,负责管理用户的点数生命周期,包括点数发放、消费、过期处理等核心功能。系统采用FIFO(先进先出)消费策略,确保点数按过期时间优先消费,同时支持多租户隔离和产品定价管理。基于 Go 1.25.4 和 Kratos v2 框架构建,使用 Ent ORM 进行数据管理。
🎯 核心功能
点数生命周期管理
- 点数发放: 支持多种来源(购买、赠送、活动、退款)
- 点数消费: FIFO策略智能消费
- 点数过期: 自动过期处理
- 交易记录: 完整的审计日志
多租户支持
- 租户隔离: 完全独立的点数管理
- 产品定价: 灵活的定价策略
- 跨账本消费: 智能组合消费
智能消费策略
- FIFO算法: 优先消费快过期点数
- 余额检查: 消费前验证
- 原子操作: 确保一致性
🏗️ 系统架构
服务组件
- User服务: 点数管理核心业务逻辑 (gRPC 9002)
- Cron服务: 定时任务处理 - 每天凌晨2点自动过期点数 (gRPC 9008)
- PostgreSQL: 数据存储 (端口 5431)
- Redis: 缓存和性能优化 (端口 6378)
- RabbitMQ: 异步消息处理 (端口 5672)
核心流程
- 点数发放 → 创建账本记录
- 点数消费 → FIFO算法扣减
- 过期检查 → 定时任务处理
- 交易记录 → 完整审计日志
📊 数据模型
核心实体 (Ent Schema)
- UserPointLedger: 用户点数账本表 (
user_point_ledgers) - PointTransaction: 点数交易记录表 (
point_transactions) - PointConsumptionRecord: 点数消费记录表 (
point_consumption_records) - User: 用户信息表 (
users) - 扩展点数相关字段
关系说明
- 用户拥有多个 点数账本
- 交易记录关联账本和消费
- 产品定价支持租户级别
🔧 技术特性
FIFO算法
- 按过期时间排序消费
- 跨账本智能组合
- 余额实时计算
性能优化
- 高效的数据库索引
- 批量过期处理
- 连接池管理
扩展性设计
- 水平扩展支持
- 插件化定价策略
- 多级过期规则
📈 业务价值
用户体验
- 透明的点数消费
- 最大化点数利用率
- 详细的消费记录
运营效率
- 自动化的过期处理
- 灵活的定价配置
- 完整的数据分析
成本控制
- 精确的点数计量
- 防止点数浪费
- 优化的存储策略
🔗 相关文档
最后更新:2025年12月