littlebot
Published on 2025-04-08 / 4 Visits
0

【源码】基于Go语言和MySQL的红包雨系统

项目简介

本项目是基于Go语言和MySQL数据库的红包雨系统,模拟红包分配场景。用户可通过API接口完成红包的创建、抢夺和查看等操作,系统运用随机算法分配红包金额,保证公平性与效率。

项目的主要特性和功能

  1. 红包创建:用户能通过API创建红包,指定总金额和数量。
  2. 红包抢夺:用户可通过API抢夺红包,系统用随机算法分配金额。
  3. 钱包查看:用户可查看钱包列表,含未打开和已打开的红包。
  4. 红包排序:支持按时间或金额等方式对红包排序。
  5. 配置管理:使用viper进行配置管理,支持环境变量和配置文件读取。

安装使用步骤

环境准备

  1. 确保已安装Go语言环境,推荐版本为go1.17.2
  2. 确保已安装MySQL数据库,推荐版本为5.7

配置

  1. 在项目根目录下创建configs文件夹,并在其中创建default.yaml文件。
  2. 按以下格式填写数据库连接信息和其他配置信息: yaml database: host: "localhost" port: 3306 user: "root" password: "password" dbname: "myenvelope"

运行项目

  1. 复制项目到本地: bash git clone https://gitee.com/your-repo/MyEnvelope.git
  2. 进入项目目录: bash cd MyEnvelope
  3. 启动服务: bash go run main.go
  4. 访问API接口进行交互。

API接口说明

1. 创建红包

  • 请求方式: POST
  • 请求路径: /create_envelope
  • 请求参数:
  • uid: 用户ID
  • total_money: 红包总金额
  • total_count: 红包总数量

2. 抢夺红包

  • 请求方式: POST
  • 请求路径: /snatch_envelope
  • 请求参数:
  • uid: 用户ID
  • envelope_id: 红包ID

3. 获取钱包列表

  • 请求方式: GET
  • 请求路径: /get_wallet_list
  • 请求参数(可选):
  • sort: 排序方式(amounttime,默认按时间排序)
  • 返回参数:
  • user_id: 用户ID
  • amount: 金额(若为已开启则为实际金额,未开启则为初始金额)
  • snatch_time: 抢夺时间(若为未开启则为初始创建时间)
  • status: 状态(已开启或未开启)

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】