🤖
AI审核中

打牌记账-使用手册

  Java   49分钟   2056浏览   2评论
AI 智能摘要
AI正在分析文章内容

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 访问应用

方式一:直接访问网址

  1. 打开浏览器
  2. 在地址栏输入:https://www.hqxiaozou.top/puke
  3. 按回车键进入应用

方式二:扫描二维码

  1. 打开手机相机或微信扫一扫
  2. 扫描下方二维码

sojson.com

  1. 自动跳转到应用页面

2.3 首次使用流程

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   打开应用   │ →  │   创建房间   │ →  │   输入昵称   │
└─────────────┘    └─────────────┘    └─────────────┘
                                            ↓
┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   开始记账   │ ←  │   邀请好友   │ ←  │   进入房间   │
└─────────────┘    └─────────────┘    └─────────────┘

三、功能详解

3.1 首页功能

界面介绍

打开应用后,您会看到以下界面:

image-20260304135916519

功能按钮说明

按钮 功能 适用场景
创建房间 创建一个新的记账房间 您要当房主,组织牌局
加入房间 输入房间号加入已有房间 朋友邀请您加入
我加入的房间 查看历史加入的房间列表 快速进入之前去过的房间

3.2 创建房间

操作步骤

步骤1:点击"创建房间"按钮

在首页点击蓝色的"创建房间"大按钮。

步骤2:输入您的昵称

image-20260304140006171

昵称规则:

  • 长度:2-10个字符
  • 支持:中文、英文、数字
  • 示例:"张三"、"小明"、"Player1"

密码设置(可选):

  • 勾选"设置房间密码"可启用密码保护
  • 密码格式:4-6位数字
  • 设置密码后,其他用户需要输入密码才能加入
  • 房主创建房间后无需再次输入密码

步骤3:点击"创建"按钮

系统会自动创建房间并跳转到房间页面。

创建成功后的界面

image-20260304140130933

界面元素说明:

元素 说明
房间号 8位字母数字组合,如"ABCD1234"
👑 皇冠图标 表示这是房主
+ 按钮 表示空位,等待玩家加入
复制链接 复制房间链接分享给好友
结算房间 结束牌局,查看最终盈亏(仅房主可见)

3.3 加入房间

操作步骤

步骤1:获取房间号

向房主索要8位房间号,如"ABCD1234"。

步骤2:点击"加入房间"按钮

在首页点击灰色的"加入房间"按钮。

步骤3:输入房间号

image-20260304140442645

步骤4:点击"进入"按钮

步骤5:输入房间密码(如果房间设置了密码)

如果房间设置了密码保护,会弹出密码输入框:

image-20260304140558482

步骤6:输入昵称

如果是首次加入该房间,需要输入昵称:

image-20260304140717560

注意:

  • 同一个房间内不能有重复的昵称
  • 如果提示"用户名已存在",请更换其他昵称
  • 密码只需输入一次,验证通过后会自动记住

3.4 房间界面详解

3.4.1 顶部信息栏

image-20260304140953157

3.4.2 用户列表区域

image-20260304141028647

用户卡片说明:

元素 说明
昵称 用户名称
👑 房主标识
余额 正数表示赢钱(应收),负数表示输钱(应付)
+ 空位,等待其他玩家加入
蓝色背景 表示自己
灰色背景 其他玩家

3.4.3 记账操作

如何记账:

  1. 点击要付款的用户(输钱的人)
  2. 在弹窗中选择收款人(赢钱的人)
  3. 输入金额
  4. 点击确认

示例:张三输给李四50元

步骤1:点击"张三"的卡片
         ↓
步骤2:在弹窗中选择"李四"
         ↓
步骤3:输入金额 50
         ↓
步骤4:点击"确认记账"

记账弹窗界面:

image-20260304141202015

记账规则:

  • 金额必须是正整数
  • 最小金额:1元
  • 最大金额:无限制(但请合理记账)

3.4.4 记账记录列表

image-20260304141355916

记录说明:

  • 按时间倒序排列,最新的记录在最上面
  • 显示完整的时间和金额
  • 所有玩家都能看到相同的记录

3.4.5 顶部操作栏

image-20260304141723433

按钮说明:

按钮 功能 适用对象
复制 复制房间链接,可分享给微信好友 所有人
结算 结束牌局,查看最终结算结果 仅房主

3.5 邀请好友(二维码)

功能说明

当房间内人数少于8人时,系统会在用户列表中显示一个"+"加号卡片。点击该卡片可以:

  • 生成房间二维码
  • 显示房间链接
  • 一键复制链接分享给好友

操作步骤

步骤1:点击"+"加号卡片

在用户列表中找到带有"+"号的虚线边框卡片,点击它。

步骤2:查看二维码

image-20260304141843182

步骤3:分享房间

  • 方式一:让好友扫描二维码
  • 方式二:点击"复制"按钮,将链接发送给好友

注意事项:

  • 房间满8人后,加号卡片会自动消失
  • 房间结算后,加号卡片也会消失
  • 二维码有效期与房间有效期一致

3.6 修改昵称

操作步骤

步骤1:点击自己的头像

在房间界面,点击带有蓝色背景的自己头像。

步骤2:输入新昵称

image-20260304142011338

步骤3:点击"确认"

修改效果:

  • 用户列表中的昵称立即更新
  • 所有历史记账记录中的昵称同步更新
  • 其他玩家实时看到新昵称

注意事项:

  • 不能与其他玩家重名
  • 修改后所有相关记录都会更新

3.6 房间结算

结算功能说明

当牌局结束,需要结账时,房主可以使用"结算房间"功能:

  1. 系统自动计算每个人的最终盈亏
  2. 显示谁应该给谁多少钱
  3. 关闭房间,禁止新的记账操作

操作步骤(仅房主)

步骤1:点击"结算房间"按钮

步骤2:确认结算

image-20260304142145785

步骤3:查看结算结果

image-20260304142232935

结算结果说明:

状态 含义 操作
应收 X元 应该收到X元 等待其他人付款
应付 X元 应该支付X元 向应收的人付款
收支平衡 不赢不亏 无需操作

结算后的房间状态

  • 🔒 房间已锁定,禁止新用户加入
  • 🚫 禁止新的记账操作
  • 👀 可以查看历史结算结果

3.7 "我加入的房间"功能

功能说明

这个功能可以查看您之前加入过的所有房间,包括:

  • 正在进行的房间(未结算)
  • 已经结束的房间(已结算)

操作步骤

步骤1:点击"我加入的房间"按钮

在首页点击"我加入的房间"按钮。

步骤2:查看房间列表

image-20260304142447234

筛选功能

筛选按钮 显示内容 操作按钮
未结算 正在进行中的房间 "加入" - 进入房间继续记账
已结算 已经结束的房间 "查看" - 查看结算结果

切换筛选:

  • 点击"未结算"按钮:只显示进行中的房间
  • 点击"已结算"按钮:只显示已结束的房间
  • 默认显示"未结算"房间

房间卡片信息

每个房间卡片显示:

  • 状态标识(●未结算 / ✓已结算)
  • 房间名称(房主昵称+"的房间")
  • 房间号(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:修改昵称

情况: 张三想把自己的昵称从"张三"改成"阿三"

操作步骤:

  1. 在房间中点击自己的头像(蓝色背景的卡片)
  2. 在弹窗中输入"阿三"
  3. 点击"确认"
  4. 所有玩家看到昵称已更新
  5. 所有历史记录中的"张三"都变成了"阿三"

场景3:查看历史房间

情况: 昨天打牌的房间已经结算,今天想查看昨天的输赢

操作步骤:

  1. 在首页点击"我加入的房间"
  2. 点击"已结算"筛选按钮
  3. 找到昨天的房间
  4. 点击"查看"按钮
  5. 查看结算结果

五、常见问题解答

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: 有两种方式:

  1. 二维码邀请:点击用户列表中的"+"加号卡片,让好友扫描二维码
  2. 链接分享:点击"+"加号卡片,复制房间链接发送给好友

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 房间密码保护

功能说明

房间密码保护功能可以为您的私人牌局提供额外的安全保障。设置密码后,只有知道密码的用户才能加入房间。

使用场景

  • 私人聚会:不想让陌生人误入房间
  • 固定牌友:只邀请特定的好友参加
  • 比赛活动:需要控制参与人员的正式比赛

操作指南

创建加密房间:

  1. 在首页点击"创建房间"
  2. 输入您的昵称
  3. 勾选"设置房间密码(可选)"
  4. 输入4-6位数字密码
  5. 点击"创建"
创建房间
├── 昵称:张三
├── 设置房间密码(可选):☑ 已勾选
├── 密码:123456
└── 创建按钮

加入加密房间:

  1. 输入房间号
  2. 点击"进入"
  3. 输入正确的房间密码
  4. 输入您的昵称
  5. 成功加入房间

密码验证失败处理:

  • 密码错误会提示"密码错误,请重新输入"
  • 可以重新输入密码再次尝试
  • 忘记密码需要联系房主获取正确密码

安全特性

特性 说明
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:复杂牌局处理

对于多人输赢的复杂牌局(如麻将),建议:

  1. 每局结束后立即记账
  2. 按照实际输赢关系逐笔记账
  3. 不要等最后再统一计算

6.4 结算结果解读

结算界面说明

结算结果
├── 张三 👑 应收:120元  ← 应该收到120元
├── 李四    应付:50元   ← 应该支付50元
├── 王五    收支平衡     ← 不赢不亏
└── 赵六    应付:70元   ← 应该支付70元

实际转账建议

结算结果只显示每个人应该收付的净额,实际转账时可以优化:

示例:

  • 张三应收120元
  • 李四应付50元
  • 赵六应付70元

优化转账方案:

  • 李四直接给张三 50元
  • 赵六直接给张三 70元

无需中间人,直接点对点转账即可。

结算后的操作

  1. 保存截图:建议截图保存结算结果
  2. 实际转账:根据结算结果进行实际转账
  3. 确认收款:收款方确认收到款项
  4. 返回首页:点击"返回首页"按钮离开

七、故障排除

问题1:页面打不开

可能原因及解决方法:

现象 原因 解决方法
显示"无法访问此网站" 网络连接问题 检查网络连接,刷新页面
显示"404 Not Found" 网址错误 检查网址是否正确
页面空白 浏览器兼容性问题 更换Chrome或Safari浏览器
加载缓慢 网络速度慢 等待或切换网络

问题2:无法创建房间

可能原因及解决方法:

  1. 昵称格式错误

    • 检查:昵称是否为2-10个字符
    • 解决:修改昵称长度
  2. 网络连接失败

    • 检查:网络是否正常
    • 解决:检查网络后重试

问题3:无法加入房间

可能原因及解决方法:

错误提示 原因 解决方法
"房间不存在" 房间号错误 确认房间号是否正确
"房间已满" 已达8人上限 等待空位或创建新房间
"用户名已存在" 昵称重复 更换其他昵称
"该房间已结算" 房间已关闭 无法加入,让房主创建新房间
"网络错误" 网络问题 检查网络后重试

问题4:记账失败

可能原因及解决方法:

  1. 房间已结算

    • 现象:提示"房间已结算,无法记账"
    • 解决:房间已关闭,无法继续记账
  2. 网络断开

    • 现象:提示"网络错误"
    • 解决:检查网络,系统会自动重连
  3. 金额输入错误

    • 现象:提示"请输入正确的金额"
    • 解决:输入正整数金额

问题5:WebSocket连接失败

现象: 页面提示"连接失败"或无法实时同步

解决方法:

  1. 刷新页面重新连接
  2. 检查网络是否稳定
  3. 更换浏览器尝试
  4. 清除浏览器缓存

问题6:数据显示不正确

现象: 余额显示错误或记录缺失

解决方法:

  1. 刷新页面重新加载数据
  2. 检查网络连接
  3. 退出房间重新进入

问题7:界面显示异常

现象: 按钮错位、文字重叠等

解决方法:

  1. 刷新页面
  2. 清除浏览器缓存
  3. 更换浏览器
  4. 调整浏览器缩放比例(设置为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图形界面

  1. 打开Navicat,连接MySQL服务器
  2. 新建数据库 card_accounting(字符集:utf8mb4)
  3. 右键数据库 → 运行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

  1. 用IntelliJ IDEA打开项目
  2. 找到 CardAccountingApplication.java
  3. 右键 → Run 'CardAccountingApplication'

方式二:使用Maven

# 开发模式启动(热部署)
mvn spring-boot:run

# 打包后运行
mvn clean package
java -jar target/card-accounting-1.0.0.jar

步骤5:访问应用

启动成功后,打开浏览器访问:

7.3 部署到服务器

环境准备

  1. 服务器要求

    • 操作系统:Linux (CentOS 7+/Ubuntu 18.04+)
    • JDK 1.8+
    • MySQL 8.0+
    • 带宽:2M以上
  2. 安全组配置

    • 开放端口: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 初始版本发布

祝您使用愉快! 🎉

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
  2 条评论
召田最帅boy 博主   湖南省衡阳市

鏖战八小时的战绩heilian

召田最帅boy 博主   湖南省衡阳市
AI助手
召田最帅boy的小助手
🤖
我是召田最帅boy的小助手
我已经阅读了这篇文章,可以帮您:
理解文章内容 · 解答细节问题 · 分析核心观点