不用守着闹钟campus-imaotai i茅台自动预约部署与调参实战【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai早上 8 点 55 的闹钟响起来你打开 i茅台 app 输完验证码页面转了一圈申购按钮已经灰了。campus-imaotai 就是为这个场景做的 i茅台自动预约工具Java Spring BootCampus 框架后端 Vue 管理后台定时任务在 9 点整替你完成申购支持 Docker 一键部署。项目能做什么能力速览能力解决什么问题对应模块/配置项每日自动预约人工 9 点申购手速拼不过服务器CampusIMTTask定时任务campus-modular多账号管理每个账号都要单独登录、单独点i_user表 用户管理页门店策略选择不知道该抢哪家门店i_user.shop_type1 出货量最大 / 2 附近门店商品与门店数据自动刷新预约项目过期、门店列表过期7:10 / 7:55 / 8:10 / 8:55 的refresh任务申购结果推送18 点还要人工看结果push_plus_tokenPushPlusApi小茅运旅行奖励每天手动点一遍11 点整点批量任务架构上是一个 Maven 多模块工程campus-common、campus-framework、campus-admin是通用管理后台脚手架真正的 i茅台业务全在campus-modular。⚡️3 分钟跑起来最小化部署环境要求只有几条硬性的Docker 与 Docker Compose 已安装Linux 服务器compose 文件用了network_mode: host和/docker/...绝对路径挂载Windows 上跑不了至少 2GB 空闲内存、10GB 磁盘宿主机 3306、6379、80、8160 端口未被占用host 网络模式直接占用宿主机端口下面这条命令序列完成克隆、拉起 4 个容器mysql、redis、nginx-web、campus-imaotai并导入初始表结构# 克隆代码并进入部署目录 git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotai cd campus-imaotai/doc/docker # 一键启动所有服务 docker-compose up -d # 导入表结构和初始数据含管理员账号、菜单权限 docker exec -i mysql mysql -uroot -p123456789 campus_imaotai ../sql/campus_imaotai-1.0.5.sql部署完用这两条验证docker ps curl -I http://localhost预期输出docker ps里 4 个容器全部Upcurl返回HTTP/1.1 200 OK。之后浏览器访问http://你的服务器IP用admin / admin123登录管理后台。影响效果的关键配置账号加进系统后真正决定 9 点那一下表现的就是i_user表里三个字段。minute默认 5 → 各账号错开到 1~10 内不同值为什么改9 点的 cron 按每个账号的minute字段触发全部账号都是 5 的话请求会挤在同一分钟、同一出口 IP 上连续打出去。怎么改-- 把某个账号固定在 3 分执行并锁定不被重算 UPDATE i_user SET minute3, random_minute1 WHERE mobile13800000001;改完验证在用户管理页看该账号的分钟列或者 9 点结束后在操作日志里搜这个手机号操作时间应该是 09:03。random_minute默认 0 随机 → 锁定账号改成 1为什么改1:10 有个批量任务会把所有random_minute0的账号分钟重新随机一遍你前一天设好的固定值第二天就没了。怎么改上一条 SQL 里的random_minute1就是干这个的想保留随机行为就维持默认值 0。改完验证等到 1:10 之后查一次i_user.minuterandom_minute1的账号数值不应变化。shop_type默认 1 → 按取酒场景二选一策略适用场景配置写法注意事项出货量最大门店1只关心能不能中UPDATE i_user SET shop_type1依赖 7:10 / 8:10 刷新出的门店数据附近门店2想就近自提新增/修改账号时在预约项目里选门店经纬度、省市由所选门店自动带出手填不生效改完验证门店列表页按省市筛选确认数据在用户列表页类型列应为 1 或 2。剩下的配置一笔带过push_plus_token决定申购结果是否走 PushPlus 推送到微信不用就留空。进阶玩法按难度递进玩法一单账号手动跑通一遍入门前提已添加一个账号且 token 未过期。用户管理页输入手机号点发送验证码填码登录后账号入库在预约项目、门店列表页确认今天有可预约商品和门店把该账号minute设为 10 分钟后、random_minute1在用户列表点该账号的预约按钮手动触发一次到操作日志页搜这个手机号看是否出现i茅台预约记录预期效果日志里出现成功记录说明 9 点批量任务走的是同一条链路当晚就可以放着不管。玩法二多账号错峰进阶前提已添加 2 个以上账号。按组分分钟间隔至少 10 分钟各组random_minute都设 1防止 1:10 被重算打乱不同组设不同shop_type或不同门店把请求打散9 点结束后在操作日志按手机号筛成功率依据i_log里的失败记录微调下一天的分钟值-- 3 个账号错峰 12 分钟 UPDATE i_user SET minute3, random_minute1 WHERE mobile13800000001; UPDATE i_user SET minute15, random_minute1 WHERE mobile13800000002; UPDATE i_user SET minute27, random_minute1 WHERE mobile13800000003;预期效果9 点请求分布在 3 个分钟里同一 IP 不再连续打满 1 分钟。玩法三换成自己的通知渠道高级前提会改 Java 代码并能重新构建镜像。看 PushPlusApi.java推送接口和报文都写死在这里把sendNotice里的请求改成自己的 webhook / 邮件通道保留token, title, content三参在日志落库链路里确认调用点别漏了成功/失败两个分支用玩法一的手动预约验证一次// PushPlusApi.java AsyncManager.me().execute(sendNotice(token, title, content, txt)); // 把 sendNotice 内部换成你自己的通知逻辑即可预期效果申购成功或失败时你自己的渠道收到带手机号和日志内容的推送。踩坑记录与快速排错campus-imaotai 容器反复重启docker logs campus-imaotai | tail -50 docker exec -it mysql mysql -uroot -p123456789 -e SHOW DATABASES;判断依据日志里出现Communications link failure基本是 SQL 没导入campus_imaotai库不存在或没表容器起不来还可能是宿主机 3306 / 6379 被占用host 网络模式会直接抢端口。修复先让 mysql、redis 两个容器稳定Up导入 SQL 后重新docker-compose up -d。9 点没有动作日志提示 token 过期docker exec -it mysql mysql -uroot -p123456789 campus_imaotai \ -e SELECT mobile,expire_time FROM i_user; SELECT * FROM i_log ORDER BY log_id DESC LIMIT 5;判断依据i_log.status1异常且内容提到 token / 认证失败就是账号问题如果所有账号同一分钟集体失败优先怀疑服务器时间不准cron 完全依赖系统时钟。修复删掉该账号重新发验证码登录整批失败先校时。门店列表为空或类型列一直是默认值docker logs campus-imaotai 21 | grep 刷新数据判断依据每天 7:10、7:55、8:10、8:55 各应有一条「刷新数据」开始刷新日志全是报错说明容器访问app.moutai519.com.cn不通或 redis 没起来。修复在容器内测试外网连通性或到门店列表页点刷新茅台商品列表按钮手动触发。页面能打开但接口 401 / 404curl -I http://localhost # 80nginx 前端页面 curl -I http://localhost:8160 # 8160纯后端 API判断依据80 是 Vue 页面8160 是裸接口直接拿浏览器访问 8160 必然失败前端的/prod-api/前缀由 nginx 转发到 8160。修复后台入口固定用http://IP80 端口进。通用排查四步docker ps确认 4 个容器全部Updocker logs campus-imaotai看最新报错的堆栈第一行检查容器内 MySQL / Redis 连通性和服务器时间用管理后台手动点一次预约靠i_log记录定位是账号问题还是系统问题⚠️合规与安全红线README 的声明写得很明确项目内容仅供学习和研究使用要求24 小时内完成学习和研究并及时删除本项目中的所有内容——长期挂产、商用已经超出授权边界。不要在同一 IP 下堆大量账号也不要用脚本循环调sendCode刷验证码这两件事最容易触发风控。i_user表里 token、cookie 是明文存的数据库还是 root/123456789 且默认无网络隔离别把它暴露到公网也别把 admin 账号交给别人。项目自带说明不提供成品使用的是已淘汰的算法接口一变整体就会失效请把可能随时不能用作为基线预期。i茅台平台的接口和规则会不定期调整建议定期对照官方条款核对自己的用法一旦预约逻辑集体失败先怀疑接口变更再回头查自己的配置。后续可以折腾的方向通知集成business/api/PushPlusApi.java替换成自己的 webhook / 邮件通道主流程不用动。门店策略用i_log历史成功率替换出货量最大的固定规则改动集中在 IMTServiceImpl.java。数据统计从i_log表按分钟聚合成功率把统计结果反哺给minute的分配。下次 9 点整的闹钟再响你可以选择让它响完再花一分钟翻一下操作日志——这比在灰掉的按钮前输验证码从容得多。【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?