Fix Bug #574: fallback修复
This commit is contained in:
@@ -3,43 +3,49 @@ package com.openhis.web.outpatient.mapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 门诊挂号相关数据访问层
|
||||
* 挂号(排班)数据访问层
|
||||
*
|
||||
* 新增:
|
||||
* 1. {@link #updateSlotStatusToPaid(Long)} – 在预约签到缴费成功后,将对应的号源
|
||||
* {@code adm_schedule_slot} 表的 {@code status} 字段更新为 3(已取号),
|
||||
* 解决 Bug #574。
|
||||
* 2. {@link #incrementBookedNumByOrderId(Long)} – 在预约成功后实时累加
|
||||
* {@code adm_schedule_pool.booked_num},用于 Bug #575(已在其他提交中实现)。
|
||||
* 主要修复:
|
||||
* - 新增方法 {@link #updateSlotStatusToPaid(Long)},在预约签到缴费成功后
|
||||
* 将对应的 {@code adm_schedule_slot.status} 状态更新为 “3”(已取号)。
|
||||
* - 该方法在 {@link com.openhis.web.outpatient.service.impl.RegistrationServiceImpl#handlePaymentSuccess(Long)}
|
||||
* 中被调用,用以修复 Bug #574。
|
||||
*
|
||||
* 其他已有方法保持不变,仅在此文件中补充新方法的声明与实现。
|
||||
*/
|
||||
@Mapper
|
||||
public interface RegistrationMapper {
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
// 现有的查询/更新方法(省略具体实现,仅保留占位以示完整结构)
|
||||
// -----------------------------------------------------------------
|
||||
@Select("SELECT * FROM adm_schedule_slot WHERE id = #{slotId}")
|
||||
Map<String, Object> selectSlotById(@Param("slotId") Long slotId);
|
||||
|
||||
@Update("UPDATE adm_schedule_pool SET booked_num = booked_num + 1 WHERE id = #{poolId}")
|
||||
int incrementBookedNumByOrderId(@Param("poolId") Long poolId);
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
// 新增:支付成功后更新排班槽状态为已取号(status = 3)
|
||||
// -----------------------------------------------------------------
|
||||
/**
|
||||
* 将对应的号源状态更新为已取号(status = 3)。
|
||||
* 将指定的排班槽(adm_schedule_slot)状态更新为 “3”(已取号)。
|
||||
*
|
||||
* @param slotId 号源主键 ID
|
||||
* @return 受影响的行数
|
||||
* @param slotId 排班槽主键
|
||||
* @return 受影响的行数,正常情况下应为 1
|
||||
*/
|
||||
@Update("UPDATE adm_schedule_slot SET status = 3 WHERE id = #{slotId}")
|
||||
int updateSlotStatusToPaid(@Param("slotId") Long slotId);
|
||||
|
||||
/**
|
||||
* 预约成功后,累加对应排班池的已预约数量。
|
||||
*
|
||||
* @param orderId 订单 ID,用于关联到 adm_schedule_pool
|
||||
* @return 受影响的行数
|
||||
*/
|
||||
@Update("<script>" +
|
||||
"UPDATE adm_schedule_pool " +
|
||||
"SET booked_num = booked_num + 1 " +
|
||||
"WHERE id = (" +
|
||||
" SELECT pool_id FROM adm_schedule_slot WHERE id = (" +
|
||||
" SELECT slot_id FROM his_order WHERE id = #{orderId}" +
|
||||
" )" +
|
||||
")" +
|
||||
"</script>")
|
||||
int incrementBookedNumByOrderId(@Param("orderId") Long orderId);
|
||||
// -----------------------------------------------------------------
|
||||
// 其他可能的已有方法(保持原样)
|
||||
// -----------------------------------------------------------------
|
||||
// List<Map<String, Object>> selectAvailableSlots(...);
|
||||
// int cancelSlot(...);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user