微信小程序号源抢购(秒杀/预约)系统产品系统

我要开发同款
木鱼2026年11月10日
14阅读

技术信息

语言技术
Java、Node.js、MySQL、uniapp
系统类型
Web、小程序轻应用、H5
行业分类
人工智能、企业服务

作品详情

行业场景


微信小程序号源抢购(秒杀/预约)系统:运营配活动场次,用户到点抢号得唯一核销码,到店扫码核销;配套 RBAC、黑名单限流、订阅消息、审计日志。

功能介绍

活动/场次:活动与场次 CRUD、暂停/恢复、状态自动流转(待开抢→抢号中→已结束)、过期时间配置
抢号(核心):幂等抢号、库存预扣、单人限购、核销码生成、我的抢号结果
公共查询:活动/场次详情、状态轮询(has_stock)、服务端时间戳校准
核销:扫码核销、手动核销、撤销核销、核销流水、码过期判定
预约记录:管理端多条件查询导出、用户端我的预约
风控:黑名单(openid + 手机号双维度)、封禁/解封、IP/用户级限流
消息:订阅消息模板配置、用户订阅、批量推送、抢号成功自动通知
系统与鉴权:管理端 JWT 登录、小程序 code2session 登录与手机号绑定、用户/角色/菜单/权限(super_admin/operator/verifier/read_only)
审计可观测:操作审计日志、API 访问日志、健康检查、dev 验收接口

项目实现

设计思路(紧扣"1000 人抢 100 号不超卖、不重复、不崩溃")
读走缓存、写走异步:热点全部在 Redis(库存、场次快照、限购计数、幂等标记、核销码序号、限流窗口),MySQL 只承担最终落库与唯一索引最后一道防线。
防超卖三件套:GET+判断+DECRBY 封装为 Lua 原子扣减 → 用户级分布式锁(qx:lock:seckill:{sessionId}:{userId})串行化重复提交 → verify_code 唯一索引兜底。刻意不用场次级大锁,避免 1000 并发被锁等待拖垮吞吐。
削峰 + 最终一致:抢号成功只投递内存队列即返回, worker 批量落库;队列满则同步落库降级,失败则回补库存并清理标记,绝不允许"扣了库存没记录";对账服务补齐 Redis/DB 差异。
前端无感体验:倒计时以服务端时间戳为准;开抢前 10 s 内轮询降为 300 ms、平时 1500 ms,靠 has_stock 自动切换按钮态,无需刷新;轮询接口在限流规则里单独放宽,防 NAT 出口误伤。
工程细节:配置全环境变量注入 + dev/perf/prod 多 profile;Tomcat 400 线程 + 独立业务线程池/调度池隔离;优雅停机 30 s;逻辑删除 + 审计字段自动填充;BCrypt 仅引 crypto 包不引完整 Security。
技术栈
语言/框架:Java 8、Spring Boot 2.7.18(web / aop / validation)、Lombok
存储:MySQL 8(InnoDB utf8mb4,主键 bigint、datetime(3))、HikariCP;MyBatis-Plus 3.5.3.2(逻辑删除、分页、元数据填充)
缓存/协调:Redis(Lettuce + commons-pool2 连接池)、Lua 脚本、自研 Dist

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论