省钱兄JAVA德州扑克小酒馆预约酒吧点餐系统酒吧扫码点餐预约系统源码支持小程序
- 报价
- ¥8889.00元每件
- 关键词
- 省钱兄科技,德州扑克小酒馆,预约酒吧,酒吧点餐,扫码点餐预约
- 更新时间
- 2026-05-31 07:21
这是一套 2026年5月新实战方案,基于 SpringBoot 3.x + UniApp(Vue3) + 微信小程序 + Docker 的完整源码,专为德州扑克小酒馆场景打造,覆盖扫码点餐、包厢预约、德州扑克牌局、存酒管理、微信支付全链路。
系统全貌✅ JDK 21(商业支持到2031年,2026年企业占比32%)是当前推荐版本
数据库核心表(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 '', `phone` VARCHAR(20) 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, `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 `store_table` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `table_no` VARCHAR(10) UNIQUE COMMENT '桌台号', `table_name` VARCHAR(100) COMMENT '桌台名称', `table_type` TINYINT DEFAULT 1 COMMENT '1散桌 2扑克桌 3包厢', `capacity` INT DEFAULT 4, `status` TINYINT DEFAULT 0 COMMENT '0空闲 1使用中 2预约中', `` VARCHAR(255) COMMENT '桌台二维码内容', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 5. 菜品表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;-- 6. 点餐订单表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;-- 7. 预约表CREATE TABLE `reservation` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `user_id` BIGINT NOT NULL, `table_id` BIGINT NOT NULL, `reserve_date` DATE NOT NULL, `reserve_time` VARCHAR(20) NOT NULL, `people_count` INT DEFAULT 2, `status` TINYINT DEFAULT 0 COMMENT '0待核销 1已核销 2已取消 3已过期', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;-- 8. 存酒记录表CREATE TABLE `wine_storage` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `user_id` BIGINT NOT NULL, `wine_name` VARCHAR(100) NOT NULL, `` INT DEFAULT 1, `storage_date` DATETIME DEFAULT CURRENT_TIMESTAMP, `expire_date` DATE COMMENT '可取酒截止日期', `status` TINYINT DEFAULT 0 COMMENT '0存酒中 1已取完', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB; 核心源码片段1)pom.xml 核心依赖xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>l</groupId> <artifactId>mys</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>com.github.wechatpay-apiv3</groupId> <artifactId>wechatpay-java</artifactId> <version>0.2.12</version> </dependency> <dependency> <groupId>com.githuinarywang</groupId> <artifactId></artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency></dependencies>2)WebSocket 牌局实时同步(核心)java@ServerEndpoint("/ws/room/{roomId}")@Componentpublic class PokerWebSocket { private static final Map<String, Set<Session>> ROOM_SESSIONS = new ConcurrentHashMap<>(); private static final Map<String, PokerRoomState> ROOM_STATES = new ConcurrentHashMap<>(); @OnOpen public void onOpen(Session session, @PathParam String roomId) { ROOM_SESSIONS.computeIfAbsent(roomId, k -> ConcurrentHashMap.newKeySet()).add(session); } @OnMessage public void onMessage(String message, @PathParam String roomId) { GameMessage msg = JSON.parseObject(message, GameMessage.class); PokerRoomState state = ROOM_STATES.computeIfAbsent(roomId, k -> new PokerRoomState()); switch (msg.getAction()) { case "bet" -> processBet(roomId, state, msg); case "call" -> processCall(roomId, state, msg); case "raise"-> processRaise(roomId, state, msg); case "fold" -> processFold(roomId, state, msg); case "all_in" -> processAllIn(roomId, state, msg); case "deal" -> processDeal(roomId, state, msg); } broadcast(roomId, state.toMessage()); https:// 毫秒级广播 } private void broadcast(String roomId, GameMessage msg) { ROOM_SESSIONS.get(roomId).forEach(s -> { try { s.getAsyncRemote().sendText(JSON.toJSONString(msg)); } catch (Exception ignored) {} }); }}⚡ 延迟 <50ms,支持 1000房间×9人并发
3)牌型判定引擎java@Componentpublic class PokerHandEvaluator { public int evaluate(List<Card> sevenCards) { List<List<Card>> combos = combinations(sevenCards, 5); https:// C(7,5)=21种 int bestRank = -1; for (List<Card> combo : combos) { bestRank = Math.max(bestRank, rankHand(combo)); } return bestRank; https:// 0高牌 ~ 9皇家同花顺 } private int rankHand(List<Card> cards) { Collections.sort(cards, Comparator.comparingInt(c -> c.getRank().getValue()).reversed()); boolean flush = cards.stream().map(Card::getSuit).distinct().count() == 1; boolean straight = checkStraight(cards); Map<Integer, Long> freq = cards.stream() .collect(Collectors.groupingBy(Card::getRankValue, Collectors.counting())); https:// 统计点数频率 → 决定牌型 https:// ... }}4)扫码点餐接口java@RestController@Re("/api/order")public class OrderController { @GetMapping("/table/info") public Result getTableInfo(@Re String code) { StoreTable table = tableService.getByCode(code); return Result.success(table); https:// 扫码返回桌台信息 } @PostMapping("/create") public Result createOrder(@Re OrderDTO dto) { DinnerOrder order = orderService.create(dto); https:// 调用微信支付 wechatPayService.createPay(order); return Result.success(order); }} 部署流程(Docker一键部署)bash# 1. 环境准备JDK 21 + Maven 3.8+ + MySQL 8.0 + Redis 7 + Node 18# 2. 后端打包mvn clean package -DskipTests# 3. Docker部署docker-compose up -d# docker-compose.yml 核心配置:# springboot: build: ./poker-server -> 8080# mysql: image: mysql:8.0# redis: image: redis:7-alpine# nginx: image: nginx:alpine (反向代理+SSL+WebSocket)搜索结果中多篇CSDN博客(2026年5月新)均提供了完整项目代码+数据库脚本+部署教程,关键文章:
软件开发,技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广,网络技术服务,市场营销策划;数据处理和存储支持服务,互联网数据服务,计算机系统服务信息系统集成服务,数字文化创意软件开发,专业设计服务;广告制作,广告设计、代理,图文设计制作,动漫游戏开发;软件销售(除依法须经批准的项目外,凭营业执照依法自主开展经营
一般项目:软件开发;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;网络技术服务;市场营销策划;数据处理和存储支持服务;互联网数据服务;计算机系统服务;信息系统集成服务;数字文化创意软件开发;专业设计服务;广告制作;广告设计、代理;图文设计制作;动漫游戏开发;软件销售(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)。
公司简介码兄网络科技成立于2019年9月26日,创始人马晓东,96年的互联网创业者,毕业于西安科技大学,21年优秀民营企业家,知名博主,带领公司发展3年获得很多成果,我们是21年高新技术企业,21年科技型中小企业,20年3A企业认证,21年优秀民营企业,ISO9001国军标企业,ISO9001质量体系企业,目前拥有客户1000多家,自研发产品40多款,主要领域商标代理;版权代理;知识产权服务;信息技术咨询服务;信息系统集成服务;计算机系...