☰
3步用 Docker 拉起 i茅台多账号自动预约
2026/10/18 1:31:22 网站建设 项目流程

3步用 Docker 拉起 i茅台多账号自动预约

【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai

campus-imaotai是一个 Java + Vue 编写的 i茅台多账号自动预约工具:在管理后台录入账号后,系统定时刷新门店与商品数据、9 点整批量申购、18:05 查结果并用 pushplus 推送,整个环境用 docker compose 一条命令拉起。README 里有一句关键声明要留意:本项目不提供成品,使用的是已淘汰的算法——适合想读懂它整套调度结构、再按新接口改造的人,不适合拿来"直接躺赢"。

🐳 一条命令拉起四件套

克隆仓库之后,部署其实就三行:

git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotai cd campus-imaotai/doc/docker docker-compose up -d

docker-compose 配置 会同时起四个容器,全部用network_mode: host,不需要再做端口映射:

服务镜像版本端口职责
mysql5.73306存 i_user、i_shop、i_item、i_log
redis6.2.126379缓存门店列表、session、省市库存
nginx1.23.480管理后台前端页面
campus-server1.0.138160后端接口 + 全部定时任务

数据库campus_imaotai自动创建,表结构来自仓库自带的初始化 SQL。起来之后浏览器打开 8160,用初始脚本里的 admin 账号登录即可。

进后台第一件事:手机号加验证码录入账号

多账号管理的核心是i_user表,主键就是手机号,一行对应一个 i茅台账号。

在「用户管理」里点"添加账号",填手机号后会向 i茅台 app 发验证码,校验通过后端调平台登录接口,把返回的 token、cookie、deviceId 落库。之后预约、领奖励这些动作都由服务端代发,不用再守着手机 app。token 过期时,回到列表点"登录"重新走一遍验证码流程就行。旁边还有"直接新增":如果你已经手动抓好了 token,可以跳过验证码直接填字段入库。

两个开关:shop_type 与 random_minute

第一次 9 点窗口跑起来之前,真正值得配的就两个字段:

  • shop_type:1 表示选本市出货量(inventory)最大的门店,本市没有投放就回退到按经纬度算的省内最近门店,距离用IShopServiceImpl里的球面公式算;2 表示直接选你所在经纬度最近的省内门店。省、市维度的库存数据会缓存进 Redis,60 分钟过期。
  • random_minute:0 表示随机分钟,1 表示固定分钟。开启随机后,每天 01:10 系统会批量重算每个账号的minute字段,取值 1~50,等于把各账号的申购时刻打散在 09:01 到 09:50 之间,避免所有账号同一秒打出去。

「门店列表」菜单能看到商品 ID、省市、完整地址、经纬度,方便你人工核对目标城市当天有哪些店可约,也可以在页面上手动刷新茅台商品列表。

🕘 从早 7 点到晚 6 点后台在跑什么

完整排期在 CampusIMTTask 里,几个关键时间点记一下:

时间任务
01:10为每个账号重算当天随机分钟
07:10、07:55、08:10、08:55刷新版本号、商品列表、门店列表
09:00~09:59每分钟跑一次,执行 minute 匹配的账号批量预约
11:00~11:59每分钟跑一次,批量领旅行奖励
18:05查询申购结果,落日志

每个账号之间间隔 3 秒,同一账号多个商品之间还有 3~5 秒随机延迟,都是为了让请求别太集中。每笔预约完成后还会等 10 秒再去领申购耐力值,全过程和返回结果都写进i_log。

晚 6 点以后:看结果、翻日志

18:05 的结果任务会逐账号调平台预约列表接口,状态为 2 且预约时间在 24 小时内的记为申购成功;如果你给账号配了 pushplus 的 token(push_plus_token字段),结果会直接推到手机,不用守着后台。

不看推送的话,「操作日志」里有全部记录,每条标着"预约成功/失败",点"详情"能看到接口返回原文,排查时基本从这里入手:

跑挂了先查三件事:早上 7~8 点的刷新任务有没有报错(门店表空了 9 点必然失败)、账号minute和实际执行时间是否对得上、i_log里 status=1 的报错文案;如果账号到了expire_time,回用户管理重新登录一次 token。把这套定时任务、Redis 缓存和日志链路摸清之后,下一步就是对着新接口的变化去改IMTServiceImpl里的请求参数,仓库的价值就在这个可以直接读、直接改的结构上。

【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法)项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询