跳到主要内容

用户系统

用户系统是井云平台的核心业务系统,负责用户管理、素材管理、分销系统、点数管理等功能。

🎯 系统概述

核心功能

  • 用户管理: 用户的创建、查询、更新、删除
  • 素材管理: 素材分类和素材文件的管理
  • 分销系统: 分销等级管理、佣金计算、提现管理
  • 点数管理: 点数发放、消费、过期处理
  • 优惠码管理: 优惠码创建、验证、使用

服务端口

  • gRPC服务: 9002

🏗️ 架构设计

系统架构

┌─────────────────────────────────────────┐
│ User Service (9002) │
├─────────────────────────────────────────┤
│ Service Layer │
│ - UserService │
│ - MaterialService │
│ - DistributionService │
│ - PointService │
│ - DiscountCodeService │
├─────────────────────────────────────────┤
│ Business Layer │
│ - User Usecase │
│ - Material Usecase │
│ - Distribution Usecase │
│ - Point Usecase │
├─────────────────────────────────────────┤
│ Data Layer │
│ - User Repository │
│ - Material Repository │
│ - Distribution Repository │
│ - Point Repository │
│ - PostgreSQL │
│ - Redis │
│ - RabbitMQ │
└─────────────────────────────────────────┘

👤 用户管理

用户功能

  • 创建用户: 支持多种方式创建用户
  • 更新用户: 更新用户信息
  • 查询用户: 根据ID、用户名、邮箱等查询用户
  • 删除用户: 软删除用户
  • 用户列表: 分页获取用户列表

用户信息

  • 基本信息: username, email, phone, nickname, avatar
  • 认证信息: password_hash, wechat_openid
  • 状态信息: status, is_active, is_verified
  • 租户信息: tenant_id
  • 邀请信息: invite_code, inviter_id

📁 素材管理

素材分类

  • 创建分类: 创建素材分类
  • 更新分类: 更新分类信息
  • 删除分类: 删除分类
  • 分类列表: 获取分类列表

素材管理

  • 创建素材: 创建素材文件
  • 更新素材: 更新素材信息
  • 删除素材: 删除素材文件
  • 素材列表: 获取素材列表
  • 素材上传: 支持gRPC上传素材

素材信息

  • 基本信息: name, description, file_url, file_type
  • 分类信息: category_id
  • 大小信息: file_size
  • 状态信息: status, is_active

💰 分销系统

分销等级

  • 创建等级: 创建分销等级
  • 更新等级: 更新等级信息
  • 删除等级: 删除分销等级
  • 等级列表: 获取等级列表

分销功能

  • 设置等级: 设置用户分销等级
  • 获取信息: 获取我的分销信息
  • 下线列表: 获取我的下线列表
  • 佣金记录: 获取我的佣金记录

提现管理

  • 申请提现: 申请佣金提现
  • 提现记录: 获取提现记录
  • 处理提现: 管理员处理提现申请
  • 待处理列表: 获取待处理提现列表

分销规则

  • 直推佣金: 一级分销佣金
  • 间推佣金: 二级分销佣金
  • 佣金比例: 根据等级设置佣金比例
  • 升级条件: 根据消费和下线数量升级

💎 点数系统

点数发放

  • 购买点数: 用户购买点数
  • 赠送点数: 系统赠送点数
  • 活动点数: 活动奖励点数
  • 退款点数: 退款返还点数

点数消费

  • FIFO策略: 优先消费快到期的点数
  • 跨账本消费: 支持跨账本消费
  • 消费记录: 记录每次消费
  • 余额查询: 查询用户点数余额

点数过期

  • 自动过期: 定时任务自动处理过期点数
  • 过期记录: 记录过期点数
  • 通知提醒: 过期前通知用户

点数查询

  • 总览: 获取用户点数总览
  • 交易历史: 获取点数交易历史
  • 消费记录: 获取点数消费记录
  • 过期统计: 获取过期点数统计

🎫 优惠码系统

优惠码管理

  • 创建优惠码: 创建优惠码
  • 更新优惠码: 更新优惠码信息
  • 删除优惠码: 删除优惠码
  • 优惠码列表: 获取优惠码列表

优惠码验证

  • 验证优惠码: 验证优惠码有效性
  • 获取优惠码: 根据优惠码获取详情
  • 使用限制: 使用次数和有效期限制

优惠码类型

  • 百分比折扣: 百分比折扣优惠
  • 固定金额: 固定金额折扣优惠

📊 数据模型

User (用户)

  • 基本信息: username, email, phone, nickname, avatar
  • 认证信息: password_hash, wechat_openid
  • 状态信息: status, is_active, is_verified
  • 租户信息: tenant_id
  • 邀请信息: invite_code, inviter_id

Material (素材)

  • 基本信息: name, description, file_url, file_type
  • 分类信息: category_id
  • 大小信息: file_size
  • 状态信息: status, is_active

DistributionLevel (分销等级)

  • 等级信息: name, description, level
  • 佣金比例: direct_commission_rate, indirect_commission_rate
  • 升级条件: min_consumption, min_downlines

CommissionRecord (佣金记录)

  • 用户信息: user_id, order_id
  • 佣金信息: amount, commission_type
  • 状态信息: status
  • 时间字段: created_at, settled_at

UserPointLedger (用户点数账本)

  • 用户信息: user_id, tenant_id
  • 点数信息: balance, total_earned, total_consumed
  • 过期信息: expires_at
  • 状态信息: status

PointTransaction (点数交易记录)

  • 用户信息: user_id, tenant_id
  • 交易信息: amount, transaction_type
  • 来源信息: source, source_id
  • 时间字段: created_at

🔌 API 接口

用户管理接口

  • CreateUser: 创建用户
  • UpdateUser: 更新用户信息
  • GetUserInfo: 获取当前用户信息
  • GetUser: 获取指定用户信息
  • ListUsers: 获取用户列表
  • DeleteUser: 删除用户

素材管理接口

  • CreateMaterialCategory: 创建素材分类
  • UpdateMaterialCategory: 更新素材分类
  • GetMaterialCategory: 获取素材分类详情
  • DeleteMaterialCategory: 删除素材分类
  • ListMaterialCategories: 获取素材分类列表
  • CreateMaterial: 创建素材
  • UpdateMaterial: 更新素材
  • GetMaterial: 获取素材详情
  • DeleteMaterial: 删除素材
  • ListMaterials: 获取素材列表

分销系统接口

  • CreateDistributionLevel: 创建分销等级
  • UpdateDistributionLevel: 更新分销等级
  • ListDistributionLevels: 获取分销等级列表
  • DeleteDistributionLevel: 删除分销等级
  • SetUserDistributionLevel: 设置用户分销等级
  • GetMyDistributionInfo: 获取我的分销信息
  • ListMyCommissionRecords: 获取我的佣金记录
  • ListMyDownlines: 获取我的下线列表
  • RequestWithdrawal: 申请提现
  • GetMyWithdrawalRecords: 获取我的提现记录
  • ListPendingWithdrawals: 获取待处理提现列表
  • ProcessWithdrawal: 处理提现申请

点数系统接口

  • GrantPoints: 发放点数
  • ConsumePoints: 消费点数
  • GetPointsOverview: 获取用户点数总览
  • GetPointTransactionHistory: 获取点数交易历史

优惠码接口

  • CreateDiscountCode: 创建优惠码
  • UpdateDiscountCode: 更新优惠码
  • GetDiscountCode: 获取优惠码详情
  • GetDiscountCodeByCode: 根据优惠码获取详情
  • ValidateDiscountCode: 验证优惠码
  • DeleteDiscountCode: 删除优惠码
  • ListDiscountCodes: 获取优惠码列表

🔔 事件处理

订单支付事件

  • 事件名称: payment.order.paid
  • 事件来源: 支付服务
  • 处理逻辑: 计算分销佣金

分销佣金计算

  • 查询邀请链: 查询用户的邀请人(最多二级)
  • 计算佣金: 根据邀请人的分销等级计算佣金
  • 累计佣金: 将佣金累计到邀请人的佣金余额
  • 记录交易: 记录佣金交易记录

🔗 相关文档