mahjong_group/docs/bug/1.0.1_bug文档.md

84 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1.0.1 Bug修复文档
## Bug列表
### cs120_10 - 鸽子费审核后组局未自动取消
**状态**: 已验证 ❌
**类型**: 后端逻辑缺陷
**描述**: 签到时有用户未到场,后台通过未到场审核后,该组局没有自动取消
**期望**: 应自动取消该组局
**问题分析**:
- 位置: `server/CoreCms.Net.Web.Admin/Controllers/SQ/SQReservationsController.cs` ApprovePigeonFee方法
- 当前逻辑: 审核通过鸽子费后,只分配费用给已赴约用户,但没有检查是否需要取消组局
- 缺失逻辑: 需要在审核后检查剩余有效参与者数量,如果不足则自动取消组局
**修复方案**: 在鸽子费审核通过后,检查剩余参与者数量是否满足最低要求,不满足则将预约状态设为取消(4)
---
### cs120_11 & cs120_12 - 锁定状态组局无法签到 (合并问题)
**状态**: 已验证 ❌
**类型**: 前端时间验证逻辑缺陷
**描述**: 组局成功锁定后,用户无法进行签到。无论是正常到时间还是后台修改时间,都会出现无法签到的问题
**期望**: 锁定状态的组局在合理时间范围内应该可以签到
**数据库验证结果**:
- 预约ID 2068: 状态1(锁定中)开始时间2025-12-31 23:25:00已过期1478分钟
- 该预约4个参与者人数已满但从未成功签到(check_reservation都为NULL)
**问题分析**:
- **前端验证**: `uniapp/mahjong_group/components/com/page/reservation-item.vue` 第78-111行
- **验证逻辑**: 签到按钮只在以下条件显示:
1. `item.status === 1` (锁定状态) ✅
2. `item.role === 1` (发起者权限) ✅
3. **时间条件**: 开始前10分钟内 OR 开始后结束前 ❌
- **根本原因**: 前端时间验证过于严格,超过结束时间后签到按钮消失
- **后端验证**: `CheckInReservation`方法本身没有时间限制,问题在前端
**具体问题**:
1. **cs120_11**: 正常情况下,如果用户错过了签到时间窗口,签到按钮就消失了
2. **cs120_12**: 后台修改时间后,如果当前时间不在新的时间窗口内,同样无法签到
**修复方案**:
1. **放宽前端时间验证**: 允许锁定状态的组局在更宽松的时间范围内签到
2. **增加管理员权限**: 后台修改时间后应该重置签到时间窗口
3. **或者增加强制签到功能**: 发起者可以在任何时间对锁定状态的组局进行签到
---
### cs120_13 - 进行中组局显示"取消组局"按钮 (新发现)
**状态**: 已修复 ✅
**类型**: 前端按钮显示逻辑缺陷
**描述**: 当组局状态为进行中(status=2)时,点击详情弹窗仍显示"取消组局"按钮,但此时组局已经开始,不应该允许取消
**期望**: 进行中和已结束的组局不应该显示取消按钮
**问题分析**:
- **位置**: `uniapp/mahjong_group/components/com/index/ReservationPopup.vue` 第154-173行
- **当前逻辑**: 只根据用户角色判断按钮显示,没有考虑预约状态
- **缺失逻辑**: 需要结合预约状态判断按钮显示
**修复方案**: ✅ 已实施
1. 新增 `isAddhandleJoin == 4` 状态,专门处理进行中的组局
2. 修改按钮显示逻辑,根据预约状态判断:
- 状态0-1(待开始/锁定中) + 发起者 → 显示"取消组局"
- 状态2(进行中) + 发起者 → 显示"进行中"(橙色,无点击事件)
- 状态3+(已结束/取消) + 发起者 → 只显示"关闭"
- 状态2+(进行中及以后) + 参与者 → 只显示"关闭"
**修复内容**:
- 增加了进行中状态的UI显示
- 完善了状态判断逻辑
- 确保进行中的组局不会显示误导性的操作按钮
## 修复优先级
1. **cs120_11 & cs120_12** (高) - 影响核心业务流程,用户无法正常签到
2. **cs120_13** (中) - 影响用户体验,可能导致误操作
3. **cs120_10** (中) - 影响组局管理,但属于边缘情况
## 相关文件
- `uniapp/mahjong_group/components/com/page/reservation-item.vue` - 前端签到按钮显示逻辑
- `uniapp/mahjong_group/components/com/index/ReservationPopup.vue` - 详情弹窗按钮显示逻辑
- `server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs` - 后端签到逻辑
- `server/CoreCms.Net.Web.Admin/Controllers/SQ/SQReservationsController.cs` - 鸽子费审核
- `server/CoreCms.Net.Task/SQReservationJob.cs` - 定时任务状态转换