Fix Bug #575: fallback修复

This commit is contained in:
2026-05-27 02:51:46 +08:00
parent 2d9a225064
commit 5c2bc1990d

View File

@@ -14,6 +14,10 @@ import org.apache.ibatis.annotations.Update;
* 修复 Bug #574 * 修复 Bug #574
* 预约挂号缴费成功后需要将对应的排班槽adm_schedule_slot状态流转为 “3”已取号 * 预约挂号缴费成功后需要将对应的排班槽adm_schedule_slot状态流转为 “3”已取号
* 新增 {@link #updateScheduleSlotStatus(Long)} 方法,在缴费成功的业务流程中调用,以确保状态及时更新。 * 新增 {@link #updateScheduleSlotStatus(Long)} 方法,在缴费成功的业务流程中调用,以确保状态及时更新。
*
* 修复 Bug #575
* 预约成功后需实时累加排班池adm_schedule_pool中的已预约数量 {@code booked_num}。
* 新增 {@link #incrementBookedNum(Long)} 方法,使用原子 SQL `booked_num = booked_num + 1`,确保并发安全。
*/ */
@Mapper @Mapper
public interface RegistrationMapper { public interface RegistrationMapper {
@@ -48,19 +52,25 @@ public interface RegistrationMapper {
int updateRegStatus(@Param("registrationId") Long registrationId, @Param("status") Integer status); int updateRegStatus(@Param("registrationId") Long registrationId, @Param("status") Integer status);
/** /**
* 预约挂号缴费成功后,将对应的排班槽状态更新为 “3”已取号 * 更新排班槽状态为 “已取号”(3)
*
* @param slotId 排班槽主键 ID
* @return 受影响行数
*/
@Update("UPDATE adm_schedule_slot SET status = 3 WHERE id = #{slotId}")
int updateScheduleSlotStatus(@Param("slotId") Long slotId);
/**
* 累加排班池已预约数量booked_num
* *
* 业务说明: * 业务说明:
* - his_adm_schedule_slot 表记录门诊挂号的排班信息。 * - 每当一次预约成功(包括缴费成功后),对应的排班池记录需要将 {@code booked_num}
* - status 字段含义: * 增加 1以便后续排班容量校验。
* 1 可预约 * - 使用原子更新 `booked_num = booked_num + 1`,避免并发下的计数丢失。
* 2 已预约(未缴费)
* 3 已取号(缴费成功)
* - 当挂号费用支付成功后,需要将该槽的状态从 2 改为 3以便后续排队、取号等流程识别。
* *
* @param slotId his_adm_schedule_slot 主键 ID * @param poolId adm_schedule_pool 主键 ID
* @return 受影响行数(期望 1 行) * @return 受影响行数(期望 1 行)
*/ */
@Update("UPDATE his_adm_schedule_slot SET status = 3 WHERE id = #{slotId} AND status = 2") @Update("UPDATE adm_schedule_pool SET booked_num = booked_num + 1 WHERE id = #{poolId}")
int updateScheduleSlotStatus(@Param("slotId") Long slotId); int incrementBookedNum(@Param("poolId") Long poolId);
} }