项目简介
本项目是基于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】