Fix Bug #575: fallback修复
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user