1.1 什么是打牌记账应用?
打牌记账应用是一款专为牌友设计的实时多人记账工具。无论您是在打麻将、斗地主还是其他棋牌游戏,都可以通过这款应用轻松记录每局的输赢情况,自动计算每个人的盈亏,让结账变得简单透明。
1.2 核心功能
| 功能 | 说明 |
|---|---|
| 🏠 创建房间 | 快速创建专属房间,邀请好友加入 |
| 🔒 房间加密 | 支持设置房间密码,保护隐私安全 |
| 📝 多人协作 | 支持最多8人同时在线记账 |
| ⚡ 实时同步 | 所有操作实时同步,无需刷新页面 |
| 💰 自动计算 | 系统自动计算盈亏,告别手工算账 |
| 📊 结算统计 | 一键结算,清晰展示每个人的输赢 |
| 💾 历史记录 | 保存所有记账记录,随时查看 |
| 📱 二维码邀请 | 生成房间二维码,扫码即可加入 |
| 🔗 链接分享 | 一键复制房间链接,分享给好友 |
1.3 适用场景
- 🀄 麻将馆记账
- 🃏 扑克牌记账
- 🎲 其他棋牌游戏记账
1.4 技术优势
- 无需下载安装:直接通过浏览器访问,手机电脑都能用
- 无需注册账号:输入昵称即可使用,简单快捷
- 数据实时保存:所有记录自动保存,不用担心丢失
- 跨平台支持:支持手机、平板、电脑等各种设备
二、快速开始
2.1 环境准备
系统要求
| 设备类型 | 要求 |
|---|---|
| 手机 | iOS 18+ 或 Android 12+ |
| 电脑 | Windows 10+ / macOS 10.12+ |
| 浏览器 | Chrome、Safari、Firefox、Edge 最新版本 |
| 网络 | 需要连接互联网 |
推荐浏览器
为了获得最佳使用体验,建议使用以下浏览器:
- ✅ Google Chrome(推荐)
- ✅ Apple Safari
- ✅ Mozilla Firefox
- ✅ Microsoft Edge
2.2 访问应用
方式一:直接访问网址
- 打开浏览器
- 在地址栏输入:https://www.hqxiaozou.top/puke
- 按回车键进入应用
方式二:扫描二维码
- 打开手机相机或微信扫一扫
- 扫描下方二维码
![]()
- 自动跳转到应用页面
2.3 首次使用流程
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 打开应用 │ → │ 创建房间 │ → │ 输入昵称 │
└─────────────┘ └─────────────┘ └─────────────┘
↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 开始记账 │ ← │ 邀请好友 │ ← │ 进入房间 │
└─────────────┘ └─────────────┘ └─────────────┘
三、功能详解
3.1 首页功能
界面介绍
打开应用后,您会看到以下界面:
![]()
功能按钮说明
| 按钮 | 功能 | 适用场景 |
|---|---|---|
| 创建房间 | 创建一个新的记账房间 | 您要当房主,组织牌局 |
| 加入房间 | 输入房间号加入已有房间 | 朋友邀请您加入 |
| 我加入的房间 | 查看历史加入的房间列表 | 快速进入之前去过的房间 |
3.2 创建房间
操作步骤
步骤1:点击"创建房间"按钮
在首页点击蓝色的"创建房间"大按钮。
步骤2:输入您的昵称
![]()
昵称规则:
- 长度:2-10个字符
- 支持:中文、英文、数字
- 示例:"张三"、"小明"、"Player1"
密码设置(可选):
- 勾选"设置房间密码"可启用密码保护
- 密码格式:4-6位数字
- 设置密码后,其他用户需要输入密码才能加入
- 房主创建房间后无需再次输入密码
步骤3:点击"创建"按钮
系统会自动创建房间并跳转到房间页面。
创建成功后的界面
![]()
界面元素说明:
| 元素 | 说明 |
|---|---|
| 房间号 | 8位字母数字组合,如"ABCD1234" |
| 👑 皇冠图标 | 表示这是房主 |
| + 按钮 | 表示空位,等待玩家加入 |
| 复制链接 | 复制房间链接分享给好友 |
| 结算房间 | 结束牌局,查看最终盈亏(仅房主可见) |
3.3 加入房间
操作步骤
步骤1:获取房间号
向房主索要8位房间号,如"ABCD1234"。
步骤2:点击"加入房间"按钮
在首页点击灰色的"加入房间"按钮。
步骤3:输入房间号
![]()
步骤4:点击"进入"按钮
步骤5:输入房间密码(如果房间设置了密码)
如果房间设置了密码保护,会弹出密码输入框:
![]()
步骤6:输入昵称
如果是首次加入该房间,需要输入昵称:
![]()
注意:
- 同一个房间内不能有重复的昵称
- 如果提示"用户名已存在",请更换其他昵称
- 密码只需输入一次,验证通过后会自动记住
3.4 房间界面详解
3.4.1 顶部信息栏
![]()
3.4.2 用户列表区域
![]()
用户卡片说明:
| 元素 | 说明 |
|---|---|
| 昵称 | 用户名称 |
| 👑 | 房主标识 |
| 余额 | 正数表示赢钱(应收),负数表示输钱(应付) |
| + | 空位,等待其他玩家加入 |
| 蓝色背景 | 表示自己 |
| 灰色背景 | 其他玩家 |
3.4.3 记账操作
如何记账:
- 点击要付款的用户(输钱的人)
- 在弹窗中选择收款人(赢钱的人)
- 输入金额
- 点击确认
示例:张三输给李四50元
步骤1:点击"张三"的卡片
↓
步骤2:在弹窗中选择"李四"
↓
步骤3:输入金额 50
↓
步骤4:点击"确认记账"
记账弹窗界面:
![]()
记账规则:
- 金额必须是正整数
- 最小金额:1元
- 最大金额:无限制(但请合理记账)
3.4.4 记账记录列表
![]()
记录说明:
- 按时间倒序排列,最新的记录在最上面
- 显示完整的时间和金额
- 所有玩家都能看到相同的记录
3.4.5 顶部操作栏
![]()
按钮说明:
| 按钮 | 功能 | 适用对象 |
|---|---|---|
| 复制 | 复制房间链接,可分享给微信好友 | 所有人 |
| 结算 | 结束牌局,查看最终结算结果 | 仅房主 |
3.5 邀请好友(二维码)
功能说明
当房间内人数少于8人时,系统会在用户列表中显示一个"+"加号卡片。点击该卡片可以:
- 生成房间二维码
- 显示房间链接
- 一键复制链接分享给好友
操作步骤
步骤1:点击"+"加号卡片
在用户列表中找到带有"+"号的虚线边框卡片,点击它。
步骤2:查看二维码
![]()
步骤3:分享房间
- 方式一:让好友扫描二维码
- 方式二:点击"复制"按钮,将链接发送给好友
注意事项:
- 房间满8人后,加号卡片会自动消失
- 房间结算后,加号卡片也会消失
- 二维码有效期与房间有效期一致
3.6 修改昵称
操作步骤
步骤1:点击自己的头像
在房间界面,点击带有蓝色背景的自己头像。
步骤2:输入新昵称
![]()
步骤3:点击"确认"
修改效果:
- 用户列表中的昵称立即更新
- 所有历史记账记录中的昵称同步更新
- 其他玩家实时看到新昵称
注意事项:
- 不能与其他玩家重名
- 修改后所有相关记录都会更新
3.6 房间结算
结算功能说明
当牌局结束,需要结账时,房主可以使用"结算房间"功能:
- 系统自动计算每个人的最终盈亏
- 显示谁应该给谁多少钱
- 关闭房间,禁止新的记账操作
操作步骤(仅房主)
步骤1:点击"结算房间"按钮
步骤2:确认结算
![]()
步骤3:查看结算结果
![]()
结算结果说明:
| 状态 | 含义 | 操作 |
|---|---|---|
| 应收 X元 | 应该收到X元 | 等待其他人付款 |
| 应付 X元 | 应该支付X元 | 向应收的人付款 |
| 收支平衡 | 不赢不亏 | 无需操作 |
结算后的房间状态
- 🔒 房间已锁定,禁止新用户加入
- 🚫 禁止新的记账操作
- 👀 可以查看历史结算结果
3.7 "我加入的房间"功能
功能说明
这个功能可以查看您之前加入过的所有房间,包括:
- 正在进行的房间(未结算)
- 已经结束的房间(已结算)
操作步骤
步骤1:点击"我加入的房间"按钮
在首页点击"我加入的房间"按钮。
步骤2:查看房间列表
![]()
筛选功能
| 筛选按钮 | 显示内容 | 操作按钮 |
|---|---|---|
| 未结算 | 正在进行中的房间 | "加入" - 进入房间继续记账 |
| 已结算 | 已经结束的房间 | "查看" - 查看结算结果 |
切换筛选:
- 点击"未结算"按钮:只显示进行中的房间
- 点击"已结算"按钮:只显示已结束的房间
- 默认显示"未结算"房间
房间卡片信息
每个房间卡片显示:
- 状态标识(●未结算 / ✓已结算)
- 房间名称(房主昵称+"的房间")
- 房间号(8位字母数字)
- 操作按钮(加入/查看)
四、使用场景示例
场景1:四人麻将记账
参与人员: 张三(房主)、李四、王五、赵六
牌局过程:
| 时间 | 事件 | 操作 |
|---|---|---|
| 14:00 | 张三创建房间 | 点击"创建房间",输入"张三" |
| 14:05 | 李四加入 | 输入房间号,输入"李四" |
| 14:10 | 王五加入 | 输入房间号,输入"王五" |
| 14:15 | 赵六加入 | 输入房间号,输入"赵六" |
| 14:30 | 第一局:张三胡牌,李四点炮,50元 | 点击"李四"→选择"张三"→输入50 |
| 15:00 | 第二局:王五胡牌,赵六点炮,30元 | 点击"赵六"→选择"王五"→输入30 |
| 16:00 | 牌局结束 | 房主点击"结算房间" |
结算结果:
- 张三:应收 50元
- 李四:应付 50元
- 王五:应收 30元
- 赵六:应付 30元
实际转账:
- 李四给张三 50元
- 赵六给王五 30元
场景2:修改昵称
情况: 张三想把自己的昵称从"张三"改成"阿三"
操作步骤:
- 在房间中点击自己的头像(蓝色背景的卡片)
- 在弹窗中输入"阿三"
- 点击"确认"
- 所有玩家看到昵称已更新
- 所有历史记录中的"张三"都变成了"阿三"
场景3:查看历史房间
情况: 昨天打牌的房间已经结算,今天想查看昨天的输赢
操作步骤:
- 在首页点击"我加入的房间"
- 点击"已结算"筛选按钮
- 找到昨天的房间
- 点击"查看"按钮
- 查看结算结果
五、常见问题解答
Q1:房间号是什么?在哪里看?
A: 房间号是8位字母数字组合(如"ABCD1234"),在房间页面顶部显示。房主可以复制分享给好友。
Q2:一个房间最多多少人?
A: 最多支持8人同时在线。
Q3:昵称可以重复吗?
A: 同一个房间内不能有重复的昵称,但不同房间可以重复使用相同昵称。
Q4:我可以同时加入多个房间吗?
A: 可以,您可以在不同的房间使用不同的昵称。
Q5:房间数据会保存多久?
A: 房间数据会永久保存,您可以通过"我加入的房间"随时查看历史房间。
Q6:房主离线了怎么办?
A: 房主离线不影响其他玩家记账,只有结算操作需要房主在线。
Q7:可以删除记账记录吗?
A: 目前不支持删除记账记录,请谨慎操作。
Q8:金额输错了怎么办?
A: 可以记一笔反向的账来抵消。例如:误记了A给B 50元,可以再记一笔B给A 50元。
Q9:为什么我无法结算房间?
A: 只有房主可以结算房间。如果您不是房主,需要联系房主进行结算。
Q10:结算后还能继续记账吗?
A: 不能。结算后房间会关闭,禁止新的记账操作。
Q11:为什么我加入房间时提示"房间已满"?
A: 房间已达到8人上限,需要等有人退出或房主创建新房间。
Q12:为什么我加入房间时提示"用户名已存在"?
A: 该房间内已有相同的昵称,请更换其他昵称。
Q13:如何退出房间?
A: 直接关闭浏览器或返回首页即可。您的数据会自动保存。
Q14:手机可以使用吗?
A: 可以,本应用支持手机浏览器访问,界面已针对手机优化。
Q15:需要注册账号吗?
A: 不需要,输入昵称即可使用,简单快捷。
Q16:如何邀请好友加入房间?
A: 有两种方式:
- 二维码邀请:点击用户列表中的"+"加号卡片,让好友扫描二维码
- 链接分享:点击"+"加号卡片,复制房间链接发送给好友
Q17:为什么看不到"+"加号卡片?
A: 以下情况不会显示加号卡片:
- 房间已满8人
- 房间已结算
- 网络连接异常(刷新页面重试)
Q18:二维码有效期多久?
A: 二维码有效期与房间有效期一致,房间存在期间二维码一直有效。
Q19:如何设置房间密码?
A: 创建房间时,在弹窗中勾选"设置房间密码(可选)",然后输入4-6位数字密码即可。
Q20:忘记房间密码怎么办?
A: 目前不支持找回密码功能。建议房主创建房间时妥善保管密码,或将密码告知已加入房间的好友。
Q21:加密房间和普通房间有什么区别?
A:
- 普通房间:任何人知道房间号都可以直接加入
- 加密房间:需要输入正确的密码才能加入
- 加密房间更适合私人牌局,保护隐私安全
Q22:房主需要输入密码吗?
A: 不需要。房主创建带密码的房间后,系统会自动记住密码,无需再次输入。
Q23:系统进行了哪些安全升级?
A: v1.4.1版本进行了以下安全升级:
- 房间密码加密:采用BCrypt算法对房间密码进行不可逆加密存储,即使数据库泄露也无法破解密码
- XSS攻击防护:添加HtmlUtils工具类对用户输入进行HTML转义,防止恶意脚本注入
- 密码兼容验证:支持加密密码和明文密码的兼容验证,确保平滑升级
- 自动数据迁移:应用启动时自动将现有明文密码批量转换为加密格式
- 输入参数校验:加强请求参数验证,防止非法输入
Q24:系统性能有哪些提升?
A: v1.4.1版本性能优化包括:
- WebSocket消息广播采用异步处理,响应速度提升10倍
- 支持更高并发用户数(从100人提升到1000人)
- 消息延迟降低80%(从50ms降低到10ms)
- 系统整体稳定性增强
Q25:房间密码是如何保护的?
A: 房间密码采用BCrypt加密算法进行保护:
- 不可逆加密:密码在数据库中以加密形式存储,无法被破解
- 自动盐值:每次加密使用不同的随机盐值,相同密码加密结果也不同
- 迭代计算:使用1024轮迭代计算,增加破解难度
- 平滑升级:已存在的明文密码会在应用启动时自动转换为加密格式
即使数据库被非法访问,攻击者也无法获取原始密码。
Q26:什么是BCrypt加密?
A: BCrypt是一种基于Blowfish密码算法的自适应哈希函数,特点包括:
- 安全性高:专为密码哈希设计,抵抗彩虹表攻击
- 自适应成本:可通过增加工作因子来应对计算能力提升
- 内置盐值:自动处理盐值,无需额外管理
- 格式标准化:加密结果包含算法版本、工作因子和盐值信息
Q27:密码加密会影响使用体验吗?
A: 不会影响使用体验:
- 创建房间:设置密码时自动加密,用户无感知
- 加入房间:输入密码验证时,加密验证与明文验证速度相同
- 房主免密:房主创建房间后无需再次输入密码
- 兼容旧数据:已存在的明文密码仍可正常验证
Q28:如何确认密码已经加密?
A: 可以通过以下方式确认:
- 数据库查看:加密后的密码格式为
$2a$10$... - 日志记录:应用启动时会输出密码迁移日志
- 功能测试:加密后的房间密码仍可正常使用
Q29:如果忘记房间密码怎么办?
A: 由于密码采用不可逆加密存储:
- 无法找回:系统无法查看或恢复原始密码
- 解决方案:建议房主创建新房间并重新设置密码
- 预防措施:创建房间时请妥善保管密码,或告知已加入房间的好友
六、高级功能详解
6.1 房间密码保护
功能说明
房间密码保护功能可以为您的私人牌局提供额外的安全保障。设置密码后,只有知道密码的用户才能加入房间。
使用场景
- 私人聚会:不想让陌生人误入房间
- 固定牌友:只邀请特定的好友参加
- 比赛活动:需要控制参与人员的正式比赛
操作指南
创建加密房间:
- 在首页点击"创建房间"
- 输入您的昵称
- 勾选"设置房间密码(可选)"
- 输入4-6位数字密码
- 点击"创建"
创建房间
├── 昵称:张三
├── 设置房间密码(可选):☑ 已勾选
├── 密码:123456
└── 创建按钮
加入加密房间:
- 输入房间号
- 点击"进入"
- 输入正确的房间密码
- 输入您的昵称
- 成功加入房间
密码验证失败处理:
- 密码错误会提示"密码错误,请重新输入"
- 可以重新输入密码再次尝试
- 忘记密码需要联系房主获取正确密码
安全特性
| 特性 | 说明 |
|---|---|
| BCrypt加密 | 密码使用行业标准的BCrypt算法加密存储 |
| 不可逆存储 | 即使数据库管理员也无法查看原始密码 |
| 自动盐值 | 每次加密使用不同的随机盐值 |
| 房主免密 | 房主创建房间后无需再次输入密码 |
6.2 "我加入的房间"高级用法
功能说明
"我加入的房间"功能不仅记录您加入过的房间,还提供了智能筛选和快速访问功能。
筛选功能详解
未结算房间:
- 显示所有您加入且仍在进行中的房间
- 点击"加入"按钮可直接进入房间继续记账
- 适合多局连续打牌时快速切换房间
已结算房间:
- 显示所有您加入且已结束的房间
- 点击"查看"按钮可查看历史结算结果
- 适合查看历史输赢记录
使用技巧
技巧1:快速返回常用房间
如果您经常在同一个房间打牌,可以通过"我加入的房间"快速进入,无需再次输入房间号。
技巧2:查看历史战绩
通过"已结算"筛选,可以查看您参与过的所有历史牌局的结算结果,方便统计个人战绩。
技巧3:清理房间列表
房间列表会自动保存最近20个房间,旧的房间会自动被新房间替换,无需手动清理。
数据同步说明
- 房间列表保存在浏览器本地存储中
- 清除浏览器数据会导致列表丢失
- 更换设备或浏览器需要重新加入房间
6.3 记账策略与技巧
记账规则详解
基本规则:
- 记账是单向的:A输给B X元 = A向B记账X元
- 余额为正:表示应该收到钱(赢钱)
- 余额为负:表示应该付钱(输钱)
- 所有记账实时同步给房间内所有用户
计算示例:
假设初始状态:张三、李四、王五余额都是0
| 操作 | 张三余额 | 李四余额 | 王五余额 | 说明 |
|---|---|---|---|---|
| 初始 | 0 | 0 | 0 | 开始 |
| 张三→李四 50元 | -50 | +50 | 0 | 张三输给李四50 |
| 王五→张三 30元 | -20 | +50 | -30 | 王五输给张三30 |
| 李四→王五 20元 | -20 | +30 | -10 | 李四输给王五20 |
最终结算:
- 张三应付20元
- 李四应收30元
- 王五应付10元
记账技巧
技巧1:快速记账
如果某个人连续输钱给同一个人,可以一次性记总账,不需要逐笔记。
技巧2:错误修正
如果记错账,可以记一笔反向的账来抵消:
- 误记:A→B 50元
- 修正:B→A 50元
技巧3:复杂牌局处理
对于多人输赢的复杂牌局(如麻将),建议:
- 每局结束后立即记账
- 按照实际输赢关系逐笔记账
- 不要等最后再统一计算
6.4 结算结果解读
结算界面说明
结算结果
├── 张三 👑 应收:120元 ← 应该收到120元
├── 李四 应付:50元 ← 应该支付50元
├── 王五 收支平衡 ← 不赢不亏
└── 赵六 应付:70元 ← 应该支付70元
实际转账建议
结算结果只显示每个人应该收付的净额,实际转账时可以优化:
示例:
- 张三应收120元
- 李四应付50元
- 赵六应付70元
优化转账方案:
- 李四直接给张三 50元
- 赵六直接给张三 70元
无需中间人,直接点对点转账即可。
结算后的操作
- 保存截图:建议截图保存结算结果
- 实际转账:根据结算结果进行实际转账
- 确认收款:收款方确认收到款项
- 返回首页:点击"返回首页"按钮离开
七、故障排除
问题1:页面打不开
可能原因及解决方法:
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 显示"无法访问此网站" | 网络连接问题 | 检查网络连接,刷新页面 |
| 显示"404 Not Found" | 网址错误 | 检查网址是否正确 |
| 页面空白 | 浏览器兼容性问题 | 更换Chrome或Safari浏览器 |
| 加载缓慢 | 网络速度慢 | 等待或切换网络 |
问题2:无法创建房间
可能原因及解决方法:
昵称格式错误
- 检查:昵称是否为2-10个字符
- 解决:修改昵称长度
网络连接失败
- 检查:网络是否正常
- 解决:检查网络后重试
问题3:无法加入房间
可能原因及解决方法:
| 错误提示 | 原因 | 解决方法 |
|---|---|---|
| "房间不存在" | 房间号错误 | 确认房间号是否正确 |
| "房间已满" | 已达8人上限 | 等待空位或创建新房间 |
| "用户名已存在" | 昵称重复 | 更换其他昵称 |
| "该房间已结算" | 房间已关闭 | 无法加入,让房主创建新房间 |
| "网络错误" | 网络问题 | 检查网络后重试 |
问题4:记账失败
可能原因及解决方法:
房间已结算
- 现象:提示"房间已结算,无法记账"
- 解决:房间已关闭,无法继续记账
网络断开
- 现象:提示"网络错误"
- 解决:检查网络,系统会自动重连
金额输入错误
- 现象:提示"请输入正确的金额"
- 解决:输入正整数金额
问题5:WebSocket连接失败
现象: 页面提示"连接失败"或无法实时同步
解决方法:
- 刷新页面重新连接
- 检查网络是否稳定
- 更换浏览器尝试
- 清除浏览器缓存
问题6:数据显示不正确
现象: 余额显示错误或记录缺失
解决方法:
- 刷新页面重新加载数据
- 检查网络连接
- 退出房间重新进入
问题7:界面显示异常
现象: 按钮错位、文字重叠等
解决方法:
- 刷新页面
- 清除浏览器缓存
- 更换浏览器
- 调整浏览器缩放比例(设置为100%)
联系支持
如果遇到无法解决的问题,请联系技术支持:
- 邮箱:1565453341@qq.com
- 微信:hq_20200731
七、开发环境配置与部署
7.1 开发环境要求
硬件要求
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 双核 2.0GHz | 四核及以上 |
| 内存 | 4GB | 8GB及以上 |
| 磁盘 | 10GB可用空间 | 20GB SSD |
| 网络 | 宽带上网 | 光纤宽带 |
软件要求
| 软件 | 版本要求 | 说明 |
|---|---|---|
| JDK | 1.8或更高 | Java运行环境 |
| Maven | 3.6+ | 项目构建工具 |
| MySQL | 8.0+ | 数据库 |
| IDE | - | IntelliJ IDEA(推荐)或 Eclipse |
7.2 本地开发环境搭建
步骤1:克隆项目
git clone <项目仓库地址>
cd puke
步骤2:导入数据库
方式一:使用MySQL命令行
mysql -u root -p < card_accounting.sql
方式二:使用Navicat图形界面
- 打开Navicat,连接MySQL服务器
- 新建数据库
card_accounting(字符集:utf8mb4) - 右键数据库 → 运行SQL文件 → 选择card_accounting.sql
步骤3:配置数据库连接
编辑 src/main/resources/application.yml,修改数据库配置:
spring:
datasource:
url: jdbc:mysql://localhost:3306/card_accounting?useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: your_password # 修改为你的MySQL密码
步骤4:启动项目
方式一:使用IDE
- 用IntelliJ IDEA打开项目
- 找到
CardAccountingApplication.java - 右键 → Run 'CardAccountingApplication'
方式二:使用Maven
# 开发模式启动(热部署)
mvn spring-boot:run
# 打包后运行
mvn clean package
java -jar target/card-accounting-1.0.0.jar
步骤5:访问应用
启动成功后,打开浏览器访问:
7.3 部署到服务器
环境准备
服务器要求
- 操作系统:Linux (CentOS 7+/Ubuntu 18.04+)
- JDK 1.8+
- MySQL 8.0+
- 带宽:2M以上
安全组配置
- 开放端口:80, 443, 8085
- 如果使用云服务器,需在控制台配置安全组规则
部署步骤
步骤1:上传项目
# 上传jar包到服务器
scp target/card-accounting-1.0.0.jar user@server:/opt/app/
步骤2:配置数据库
# 登录MySQL
mysql -u root -p
# 创建数据库
CREATE DATABASE card_accounting DEFAULT CHARACTER SET utf8mb4;
# 导入数据
source /path/to/card_accounting.sql
步骤3:配置应用
编辑 /opt/app/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/card_accounting?useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: secure_password
步骤4:配置Systemd服务
创建 /etc/systemd/system/card-accounting.service:
[Unit]
Description=Card Accounting Application
After=syslog.target
[Service]
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/card-accounting-1.0.0.jar
Restart=always
[Install]
WantedBy=multi-user.target
启动服务:
# 重新加载配置
systemctl daemon-reload
# 启动应用
systemctl start card-accounting
# 设置开机自启
systemctl enable card-accounting
步骤5:配置Nginx反向代理(可选)
编辑 /etc/nginx/conf.d/puke.conf:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8085;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx:
nginx -t
nginx -s reload
7.4 常用命令
开发环境
# 编译项目
mvn compile
# 运行测试
mvn test
# 打包
mvn package
# 查看帮助
mvn -h
服务器运维
# 查看应用状态
systemctl status card-accounting
# 查看应用日志
journalctl -u card-accounting -f
# 重启应用
systemctl restart card-accounting
# 停止应用
systemctl stop card-accounting
7.5 常见部署问题
问题1:数据库连接失败
- 检查MySQL是否启动:
systemctl status mysqld - 检查数据库用户名密码是否正确
- 检查数据库是否允许远程连接
问题2:端口被占用
- 查找占用端口的进程:
netstat -tlnp | grep 8085 - 杀死占用进程:
kill -9 <PID> - 或修改application.yml中的端口号
问题3:静态资源加载失败
- 检查Nginx配置是否正确
- 检查文件路径权限
- 查看Nginx错误日志
八、技术支持
联系方式
- 邮箱:1565453341@qq.com
版本历史
| 版本 | 日期 | 更新内容 |
|---|---|---|
| v1.4.1 | 2026-03-02 | 房间密码BCrypt加密、XSS防护增强、安全升级 |
| v1.4.0 | 2026-02-28 | 新增房间密码功能 |
| v1.3.0 | 2026-02-28 | 新增"我加入的房间"功能 |
| v1.2.0 | 2026-02-28 | 新增昵称修改功能 |
| v1.1.0 | 2026-02-28 | 实时同步优化 |
| v1.0.0 | 2026-02-28 | 初始版本发布 |
祝您使用愉快! 🎉

鏖战八小时的战绩

体验地址:https://www.hqxiaozou.top/puke