项目简介
本项目是基于Go语言和MySQL数据库的红包雨系统,模拟红包分配场景。用户可通过API接口完成红包的创建、抢夺和查看等操作,系统运用随机算法分配红包金额,保证公平性与效率。
项目的主要特性和功能
- 红包创建:用户能通过API创建红包,指定总金额和数量。
- 红包抢夺:用户可通过API抢夺红包,系统用随机算法分配金额。
- 钱包查看:用户可查看钱包列表,含未打开和已打开的红包。
- 红包排序:支持按时间或金额等方式对红包排序。
- 配置管理:使用
viper
进行配置管理,支持环境变量和配置文件读取。
安装使用步骤
环境准备
- 确保已安装Go语言环境,推荐版本为
go1.17.2
。 - 确保已安装MySQL数据库,推荐版本为
5.7
。
配置
- 在项目根目录下创建
configs
文件夹,并在其中创建default.yaml
文件。 - 按以下格式填写数据库连接信息和其他配置信息:
yaml database: host: "localhost" port: 3306 user: "root" password: "password" dbname: "myenvelope"
运行项目
- 复制项目到本地:
bash git clone https://gitee.com/your-repo/MyEnvelope.git
- 进入项目目录:
bash cd MyEnvelope
- 启动服务:
bash go run main.go
- 访问API接口进行交互。
API接口说明
1. 创建红包
- 请求方式: POST
- 请求路径:
/create_envelope
- 请求参数:
uid
: 用户IDtotal_money
: 红包总金额total_count
: 红包总数量
2. 抢夺红包
- 请求方式: POST
- 请求路径:
/snatch_envelope
- 请求参数:
uid
: 用户IDenvelope_id
: 红包ID
3. 获取钱包列表
- 请求方式: GET
- 请求路径:
/get_wallet_list
- 请求参数(可选):
sort
: 排序方式(amount
或time
,默认按时间排序)- 返回参数:
user_id
: 用户IDamount
: 金额(若为已开启则为实际金额,未开启则为初始金额)snatch_time
: 抢夺时间(若为未开启则为初始创建时间)status
: 状态(已开启或未开启)
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】