i茅台自动预约系统campus-imaotai:5分钟部署完成每日9点定时申购
【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai
campus-imaotai 是一个 i茅台自动预约系统。它把 i茅台账号托管在服务器上,每天 9 点按账号各自的时间自动提交预约,晚间 18:05 自动查询结果,并可把成败推送到手机。适合想自己部署、并愿意动手维护接口的用户。
🚀 快速上手:从零到跑起来
环境要求
| 组件 | 版本 | 用途 |
|---|---|---|
| Docker + Compose | 17+ / 3.x | 容器化启动全部服务 |
| MySQL | 5.7 | 存账号、门店、商品、日志四张业务表 |
| Redis | 6.2 | 缓存 i茅台 App 版本号和会话 |
| Nginx | 1.23 | 托管管理后台前端页面 |
| campus/campus-imaotai 镜像 | 1.0.13 | 后端服务,监听 8160 端口 |
机器 2 核 4G 够用,比配置更重要的是每天 9 点前后保持在线。
部署步骤
git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotai cd campus-imaotai/doc/docker docker-compose up -d docker-compose psps里 mysql、redis、nginx-web、campus-imaotai 四个容器都是 Up 即成功。数据库 campus_imaotai 会自动创建,表没生成时手动导入 初始化脚本。
首次访问
- 地址:
http://localhost:8160 - 账号:admin / admin123
- 登录后左侧有「i茅台」(用户管理、预约项目、门店列表)和「系统管理」两组菜单,先添加账号,定时任务才跑得起东西。
核心能力实战
用验证码绑定账号
输入手机号和短信码,系统自动调 i茅台登录接口取回 token、cookie、设备号入库,不用手动抓包。 路径:i茅台 → 用户管理 → 添加账号:填手机号,点发送验证码,填码后点登录。成功后列表出现该账号,到期时间按登录起 30 天计算;已有现成信息也可以用「直接新增」手填。
添加账号弹窗:只需手机号和验证码,token 与设备号由系统自动获取
配置预约商品与门店策略
每个账号要配两件事:约什么、约哪家店。 路径:用户管理 → 修改。预约商品编码从「预约项目」菜单里选,多个用 @ 分隔;类型 1 为「本市出货量最大的门店」,类型 2 为「位置附近门店」,后者要填准省份、城市和经纬度;预约分钟可指定 9:00–9:59 的某一分钟,留空则由系统每天 1:10 随机分配。
跟踪执行与结果推送
每天 9 点起,「系统管理 → 操作日志」按账号逐条记录,内容含预约项目、门店 ID 和平台原始返回;18:05 查询成功时会补写「申购成功」一条。想在手机上看,就在用户配置里填 PushPlus token,该账号每次执行成败都会收到推送。
界面走查
用户管理列表:顶部是手机号、用户 id、省份、城市四条件筛选,中间展示各账号 token、预约项目、坐标、门店类型和到期时间,行内带「预约」按钮,可在 9 点前手动触发一次验证配置。用户管理列表:账号凭证、预约项目、门店类型、到期时间一屏可见
门店列表:按商品 ID、省份、城市、地区、公司名称筛选,表格给出各门店地址与坐标,顶部「刷新i茅台商品列表」可手动更新门店和商品数据,用于核对预约目标门店是否存在。门店列表:展示各区域门店的地址和经纬度,供核对预约目标
操作日志:按系统模块、操作人员、状态、时间筛选,点「详情」可看完整日志内容,定位是哪个接口失败。操作日志:每个账号每天一条执行记录,详情里是平台原始返回
⚙️ 进阶配置
| 配置项 | 默认值 | 建议值 | 为什么改 |
|---|---|---|---|
| 预约分钟 minute | 空,每天 1:10 随机分配 | 开启随机分钟 | 多账号错开同一分钟,避开 9:00 整点并发 |
| 门店类型 shopType | 1 本市出货量最大 | 要自提则设 2 | 类型 2 依赖经纬度,选最近门店 |
| 预约商品 itemCode | 必须填 | 填目标商品编码 | 决定每天约什么,空则该账号被跳过 |
| PushPlus token | 空 | 填自己的 | 填了才有手机推送 |
| SERVER_PORT | 8160 | 冲突时改 | 在 docker-compose.yml 环境变量里 |
实用技巧
- 多账号错峰。每个账号设不同预约分钟;账号超过 60 个后系统自动改成把分钟均匀铺满时间窗,不要手动集中在同一分钟。
- 先用手动触发验通路。列表行的「预约」按钮会在当前时刻立即执行一次,9 点前点一遍能提前暴露 token 失效、商品编码错误等问题。
- 早上不用手动刷新数据。7:10 和 8:55 系统会自动刷新 App 版本号、门店、商品列表;换商品后点「刷新i茅台商品列表」立即生效。
- 盯到期时间列。token 登录起 30 天到期,列表显示过期后重新走一遍验证码登录即可续上。
- 留意 11 点的旅行任务。系统 11 点整自动跑「小茅运旅行」领耐力(9–20 点支持,开始需耐力 ≥ 100),失败会写进日志但不影响 9 点预约。
幕后机制
系统是一个 campus(RuoYi 系)管理框架加四张业务表:i_user 存账号、i_shop 存门店、i_item 存商品、i_log 存执行日志。自动化全部由定时任务驱动,模拟 i茅台 App 的请求方式,在 HTTP 调用上加 MD5 签名和 AES 加密。
| 组件 | 职责 |
|---|---|
| CampusIMTTask | 5 个 cron:1:10 分配随机分钟、7:10/8:55 刷新数据、9:00–9:59 每分钟预约、11:00–11:59 旅行奖励、18:05 查询结果 |
| IMTServiceImpl | 发验证码、登录、选门店、调预约接口、领耐力 |
| IShopServiceImpl | 门店选择:本市出货量最大或按坐标最近 |
| PushPlusApi | 把执行结果文本推送到手机 |
| MySQL / Redis | 业务数据存取 / 版本号与会话缓存 |
界面代码在 vue_campus_admin/src/views/imt/,改字段或加筛选条件都在这里。
⚠️ 常见坑
- 接口失效。项目基于 2023 年的 i茅台 App 接口,README 写明「使用的是已淘汰的算法」。App 升级后签名盐或 AES 密钥可能变化导致预约失败,解法是对照新版请求自己改 IMTServiceImpl.java 里的参数。
- 时区不对。定时任务全部依赖容器时间,compose 里 TZ 已设为 Asia/Shanghai;机器在其他时区时先
date确认。 - 端口占用。8160 被占就改 docker-compose.yml 里 SERVER_PORT,再 up -d。
- 商品没配置。itemCode 为空时账号静默跳过、不报错,9 点前检查「预约项目code」列。
- 旅行奖励报错。「活动未开始」(不在 9–20 点)和「耐力不足」都按异常写日志,属正常现象,无需处理。
campus-imaotai 的定位是一套能完整跑通「账号管理—定时预约—结果跟踪」链路的 i茅台自动预约样例。想要稳定的成品工具,它满足不了;想看懂 Java + Vue 怎么落地这类任务并在此基础上跟进接口变化,值得部署一遍再读源码。
【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考