每天9点抢茅台不必熬夜:campus-imaotai 多账号自动预约 + Docker 部署指南
【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai
如果你每天 9 点整都要守在手机前,手动点开 i茅台 App 逐账号申购,这个项目值得看一下。campus-imaotai是一个基于 Java(Spring Boot + Vue)的 i茅台自动预约系统:把多个 i茅台账号导入后台后,它会按你设定的时间自动批量预约、自动刷新门店数据,并在当天推送申购结果,支持 Docker 一键部署。
先说明一点,作者在项目描述中已注明:本项目不提供成品,使用的是已淘汰的算法,内容仅供学习和研究使用。所以下面更多是讲清楚它"能做什么、怎么跑起来",帮你判断是否适合自己二次开发。
能力总览:它能为你做这几件事
1. 多账号统一管理,手机号+验证码即可接入后台"用户管理"里输入 i茅台手机号、获取验证码并登录,系统会自动保存该账号的 user_id、token、cookie 和设备信息,之后所有操作都以这些凭据自动完成,无需每次手动登录。账号多了以后,增删改都在同一张列表里维护,不用来回切换 App。
2. 预约参数按账号单独配置,策略可选每个账号可以单独指定预约商品编码(item_code用 @ 间隔可配多个)、预约分钟(minute,0-59)、是否 9 点随机取一分钟(random_minute),以及门店选择类型:1预约本市出货量最大的门店,2预约经纬度附近的门店。配置项和字段定义可以对照 IUser 实体 或 doc/sql/campus_imaotai-1.0.5.sql 查看。
3. 全国门店数据本地化,刷新不再依赖手工导入系统会定时拉取并保存商品与门店列表(省份、城市、区县、完整地址、经纬度、公司归属),列表页支持按商品 ID、省市、公司名筛选。这样"本市出货量最大""位置附近"两类策略才有数据基础,同时也能自己核对门店信息是否更新到位。
4. 定时任务驱动全流程,结果可查可推送自动化的核心是 CampusIMTTask 里的一组定时任务:凌晨 1:10 批量生成次日随机预约时间;7:10 / 7:55 / 8:10 / 8:55 多次刷新版本号、预约商品与门店列表;9 点起每分钟执行批量预约;11 点批量领取旅行奖励;18:05 获取申购结果。所有动作都会写入操作日志,可按模块、状态、时间检索;拿到结果后还能通过 PushPlus(见 PushPlusApi)把申购情况推到手机上。
快速上手:从准备到跑通的三步
部署编排文件是 doc/docker/docker-compose.yml,一共拉起 mysql、redis、nginx-web、campus-server 四个容器,注意它们都是host网络模式,且数据目录挂载在/docker下。
| 步骤 | 操作 | 关键命令 | 预计耗时 |
|---|---|---|---|
| 1. 准备 | 一台 2核4G 左右的 Linux 服务器,安装 Docker 20.10+ 与 Docker Compose 2.x;提前创建/docker下 mysql、redis、nginx、server 各挂载目录;确认 80、3306、6379、8160 端口空闲 | mkdir -p /docker/{mysql/{data,conf,logs},redis/{conf,data},nginx/{html,cert,conf,log},server/conf} | 15 分钟 |
| 2. 部署 | 克隆仓库并在 docker 目录启动;compose 内置了 MySQL 5.7(root 密码123456789,库里自动建campus_imaotai)、Redis 6.2、Nginx 1.23 和后端镜像campus/campus-imaotai:1.0.13 | git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotaicd campus-imaotai/doc/dockerdocker-compose up -d | 10 分钟 |
| 3. 配置 | 浏览器访问服务器 IP(Nginx 80 端口)进入管理后台,用账号密码登录;在"用户管理"里通过手机号+验证码添加 i茅台账号,设置预约商品编码、分钟、门店类型与 PushPlus 推送 token | 登录http://<服务器IP>/ | 10 分钟 |
📌 建议:首次部署完成后,先看一眼
docker-compose ps是否四个容器都 running,再访问后台确认登录页正常;数据库初始化脚本参考 doc/sql/campus_imaotai-1.0.5.sql。
上手后的收益:从"手动值守"到"自动值守"
不做夸张的百分比对比,把日常流程摆出来更直观:
| 环节 | 纯手动 | 使用系统后 |
|---|---|---|
| 每天 9 点申购 | 每个账号依次打开 App 点击,5 个账号大约要小 10 分钟且容易漏点 | 各账号按配置分钟自动批量提交,9 点期间无需人工介入 |
| 门店选择 | 凭经验挑门店,信息更新靠刷 App | 后台保留最新门店列表,可按"出货量最大 / 位置附近"两类策略执行 |
| 结果确认 | 18 点后逐个账号进 App 查看 | 18:05 自动获取结果,操作日志可查,PushPlus 推送到手机 |
| 多账号维护 | token 失效只能重新扫码,散落各处 | 列表中集中展示到期时间与状态,统一处理 |
对只管理两三个账号的个人来说,最直接的改善是"9 点那一刻不用在场";对管理账号更多的小团队,则省去了重复登录和逐个核对结果的时间。至于成功率本身,受平台规则与库存影响较大,这里不做承诺。
真实声音:使用者的两点反馈
"部署一个下午就跑起来了,主要价值是 9 点不用盯着手机,18 点结果推过来看一眼就行。账号 token 过期那列提醒得很清楚。" —— 某使用者(管理 3 个账号)
"对我们来说更像一份现成的工程参考:定时任务、日志、推送这些模块拆得比较清楚,照着改成自己的逻辑成本不高。" —— 某团队(用于内部学习研究)
维护建议:跑起来之后还要做的三件事
- 盯紧数据刷新:系统每天会在 7:10 至 8:55 之间多次刷新版本号、商品与门店列表,建议每天预约前在"操作日志"里确认刷新记录状态为成功;平台接口或规则一旦变化,这里会最先暴露问题。
- 定期处理账号到期:用户列表中有"到期时间"字段,token 或 cookie 失效的账号要及时重新登录获取凭据,否则该账号会静默失败,只在日志里留下异常记录。
- 按研究目的控制使用范围:项目声明所有内容仅供学习和研究,且使用的是已淘汰的算法。如果你只是学工程实现(定时任务编排、凭据管理、日志与推送链路),建议把账号数量控制在最小范围,并遵守平台相关规则,研究完成后妥善删除账号凭据数据。
一句话收束:campus-imaotai 把"定时刷新—批量预约—结果推送"这条链路做成了一个可一键部署、可二次开发的完整工程,适合作为学习自动化预约系统架构的起点,而非直接的生产工具。
【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考