省钱兄JAVA德州扑克小酒馆 扫码点餐预约系统源码
根据2026年5月新的技术方案,这套系统的核心定位是:德州扑克小酒馆轻量化数字化升级方案,支持微信小程序,源码可直接部署。
系统架构总览
层级技术选型说明后端框架SpringBoot 2.7.x / 3.x + JDK 17/21RESTful API,快速开发数据库MySQL 8.0核心业务数据存储缓存/实时Redis 7房间状态、在线用户、WebSocket实时通信Spring WebSocket牌局实时同步,延迟<50ms前端小程序UniApp (Vue3) → 微信小程序一套代码多端运行管理后台Vue3 + Element Plus运营管理系统支付微信支付SDK (wechatpay-java 0.2.12)充值+点餐支付部署Docker + Nginx生产级一键部署
核心功能模块一、德州扑克游戏模块
功能说明 游戏大厅快速匹配(按等级/盲注)、创建私密房间(邀请码)、房间列表实时显示 牌局流程翻牌前→翻牌→转牌→河牌,每轮下注(跟注/加注/弃牌/全押) 牌型判定皇家同花顺>同花顺>四条>葫芦>同花>顺子>三条>两对>一对>高牌 游戏工具记分牌、胜率计算器、抽位置、历史战绩⚡ WebSocket实时同步毫秒级推送,断线5秒自动重连
二、 小酒馆消费模块(核心)
功能说明 扫码点餐扫桌台码→自动绑定桌台→浏览菜品→下单→微信支付️ 菜品管理酒水/小吃/套餐分类,支持口味备注、加辣少糖等 桌台预约在线预约德州扑克包厢,时段/人数锁定,支持取消/过期处理 存酒管理存酒记录、取酒、积分兑换酒水 优惠券领券、用券,锁客留客 充值中心微信支付充值游戏筹码
三、 管理后台模块
模块功能用户管理注册用户、封号、等级管理房间管理房间审核、盲注设置、大人数订单管理点餐/充值订单、退款处理商品管理酒水/菜品增删改查、库存管理数据统计DAU、收入、游戏局数、胜率分布系统配置轮播图、公告、微信支付配置
核心数据库表设计(12张表)s DATABASE poker_tavern DEFAULT CHARSET utf8mb4;USE poker_tavern;-- 1. 用户表CREATE TABLE `user` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `openid` VARCHAR(64) UNIQUE COMMENT '', `nickname` VARCHAR(50) DEFAULT '', `avatar` VARCHAR(255) DEFAULT '', `balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '余额', `chips` INT DEFAULT 10000 COMMENT '游戏筹码', `level` INT DEFAULT 1, `total_profit` DECIMAL(10,2) DEFAULT 0.00 COMMENT '总盈亏', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 2. 游戏房间表CREATE TABLE `poker_room` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `room_no` VARCHAR(20) UNIQUE COMMENT '房间号/邀请码', `blind_level` INT DEFAULT 1 COMMENT '盲注 1/2 2/4 5/10', `max_yers` INT DEFAULT 9, `status` TINYINT DEFAULT 0 COMMENT '0等待 1游戏中 2已结束', `creator_id` BIGINT NOT NULL, `pot` INT DEFAULT 0 COMMENT '底池', `phase` TINYINT DEFAULT 0 COMMENT '0翻前 1翻牌 2转牌 3河牌', `community_cards` JSON, `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 3. 牌局记录表CREATE TABLE `poker_hand` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `room_id` BIGINT NOT NULL, `yer_id` BIGINT NOT NULL, `hole_cards` VARCHAR(20) COMMENT '底牌 AH-KH', `final_rank` INT COMMENT '0高牌~9皇家同花顺', `win_chips` INT DEFAULT 0, `is_winner` TINYINT DEFAULT 0, `yed_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 4. 菜单/商品表CREATE TABLE `menu_item` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `category` VARCHAR(20) DEFAULT '酒水', `price` DECIMAL(10,2) NOT NULL, `image` VARCHAR(255) DEFAULT '', `stock` INT DEFAULT 999, `status` TINYINT DEFAULT 1, `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 5. 点餐订单表CREATE TABLE `dinner_order` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `order_no` VARCHAR(32) UNIQUE, `user_id` BIGINT NOT NULL, `table_no` VARCHAR(10) COMMENT '桌台号', `items` JSON COMMENT '菜品列表', `total_amount` DECIMAL(10,2), `status` TINYINT DEFAULT 0 COMMENT '0待支付 1已支付 2完成 3取消', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 6. 存酒记录表CREATE TABLE `wine_storage` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `user_id` BIGINT NOT NULL, `wine_name` VARCHAR(100), `` INT DEFAULT 1, `store_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `status` TINYINT DEFAULT 1 COMMENT '1存放中 0已取完', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 7. 桌台表CREATE TABLE `store_table` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `table_name` VARCHAR(100), `table_code` VARCHAR(100) UNIQUE COMMENT '扫码用', `table_type` TINYINT DEFAULT 1 COMMENT '1散桌 2扑克桌 3包厢', `status` TINYINT DEFAULT 0 COMMENT '0空闲 1使用中', `capacity` INT DEFAULT 4, `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 8. 预约表CREATE TABLE `reservation` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `user_id` BIGINT NOT NULL, `table_id` BIGINT, `reserve_date` DATE, `reserve_time` VARCHAR(10), `people_count` INT DEFAULT 2, `status` TINYINT DEFAULT 0 COMMENT '0待核销 1已到店 2已完成 3已取消 4已过期', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;️ 核心依赖(pom.xml)xml<dependencies> <!-- SpringBoot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.7.10</version> </dependency> <!-- WebSocket 实时通信 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <!-- MySQL --> <dependency> <groupId>l</groupId> <artifactId>mys</artifactId> <scope>runtime</scope> </dependency> <!-- MyBatis-Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.5</version> </dependency> <!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 微信支付SDK --> <dependency> <groupId>com.github.wechatpay-apiv3</groupId> <artifactId>wechatpay-java</artifactId> <version>0.2.12</version> </dependency> <!-- JWT --> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.5</version> </dependency> <!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency></dependencies> 部署流程(约1-2天可上线)bash# 1. 环境准备JDK 17+ | Maven 3.8+ | MySQL 8.0 | Redis 7 | Node.js 18+# 2. 创建项目mvn archetype:generate \ -DgroupId=com.poker.tavern \ -DartifactId=poker-server \ -DarchetypeArtifactId=maven-archetype- \ -DinteractiveMode=false# 3. 配置 application.ymlspring: datasource: url: jdbc:mysql:https://localhost:3306/poker_tavern username: root password: your_password redis: host: localhost port: 6379 # 微信支付配置 wechat: pay: appId: wx_xxx mchId: xxx apiKey: xxx# 4. 执行数据库初始化脚本mysql -u root -p < l# 5. 打包部署mvn clean package -DskipTestsjava -jar poker-server.jar# 6. 前端小程序cd poker-miniappnpm installnpm run dev:mp-weixin # 微信开发者工具导入 dist/dev/mp-weixin✅ 源码核心亮点
特性说明⚡ WebSocket牌局同步延迟<50ms,支持1000房间×9人并发 牌型判定引擎7选5优组合算法,C(7,5)=21种遍历 合规管控未成年人验证、操作日志、防(AOP+JWT) 一码多用同一二维码支持点餐+预约+游戏房间加入 微信支付全覆盖充值筹码+点餐支付,官方SDK Docker一键部署生产级部署,开箱即用
⚠️ 合规底线(必须遵守)
严禁添加、现金交易、虚拟货币兑换代码
严禁修改未成年人验证、操作日志等合规逻辑
德州扑克模块仅用于小酒馆内部休闲娱乐
积分店内兑换,不具备现金价值
遵守《个人信息保护法》《微信小程序审核规范》
这套源码是2026年5月新实战方案,Java单体架构+模块化设计,开发部署成本低,适合中小型德州扑克小酒馆直接使用。如需获取完整源码,可搜索"省钱兄JAVA德州扑克小酒馆"或相关CSDN技术博客获取项目完整代码。
省钱兄科技,德州扑克小酒馆,预约酒吧,点餐系统,酒吧扫码点餐