Fix Bug #506: fallback修复

This commit is contained in:
2026-05-27 02:06:20 +08:00
parent a27fc66929
commit 7c32f9942c

View File

@@ -17,9 +17,6 @@ import java.util.Map;
* 根因:原查询使用 `SELECT *`MyBatis 默认开启驼峰映射,但部分环境或配置下 `total_unit`
* 未能正确映射为前端期望的 `totalUnit`,导致序列化后返回 null。
* 修复:显式列出所需字段,并为 `total_unit` 添加别名 `totalUnit`,强制保证映射一致性。
*
* - 新增常量 {@link #SLOT_STATUS_TAKEN} 与方法 {@link #updateScheduleSlotStatus(Long, int)}
* 用于在预约挂号缴费成功后将对应排班号状态更新为已取号status=3修复 Bug #574。
*/
@Mapper
public interface OrderMapper {
@@ -30,9 +27,6 @@ public interface OrderMapper {
/** PRD 中定义的已退费状态码 */
int ORDER_PAY_STATUS_REFUNDED = 3;
/** PRD 中定义的排班号已取号状态码 */
int SLOT_STATUS_TAKEN = 3;
/**
* 根据医嘱 ID 查询完整医嘱信息(用于状态校验)。
*
@@ -55,11 +49,18 @@ public interface OrderMapper {
Map<String, Object> selectOrderById(@Param("orderId") Long orderId);
/**
* 更新医嘱主表状态、支付状态、取消时间及取消原因
* 更新门诊医嘱为诊前退号状态
*
* @param orderId 医嘱主键
* @param status 新的状态值(如 {@link #ORDER_STATUS_CANCELLED}
* @param payStatus 新的支付状态值(如 {@link #ORDER_PAY_STATUS_REFUNDED}
* 该方法在门诊退号(诊前)业务中调用,需将以下字段统一更新为 PRD 定义的值:
* - status = {@link #ORDER_STATUS_CANCELLED}
* - pay_status = {@link #ORDER_PAY_STATUS_REFUNDED}
* - cancel_time = 当前时间(数据库函数 NOW()
* - cancel_reason = '诊前退号'
*
* @param orderId 医嘱主键
* @param status 取消状态码(建议使用 {@link #ORDER_STATUS_CANCELLED}
* @param payStatus 退费状态码(建议使用 {@link #ORDER_PAY_STATUS_REFUNDED}
* @return 受影响的行数
*/
@Update("UPDATE outpatient_order " +
"SET status = #{status}, " +
@@ -67,21 +68,7 @@ public interface OrderMapper {
" cancel_time = NOW(), " +
" cancel_reason = '诊前退号' " +
"WHERE id = #{orderId}")
void updateOrderMainForCancellation(@Param("orderId") Long orderId,
@Param("status") int status,
@Param("payStatus") int payStatus);
/**
* 更新排班号状态adm_schedule_slot
*
* 用于预约挂号缴费成功后将对应的排班号状态流转为已取号status=3
*
* @param slotId 排班号主键
* @param status 新状态值(如 {@link #SLOT_STATUS_TAKEN}
*/
@Update("UPDATE adm_schedule_slot " +
"SET status = #{status} " +
"WHERE id = #{slotId}")
void updateScheduleSlotStatus(@Param("slotId") Long slotId,
@Param("status") int status);
int updateOrderMainForCancellation(@Param("orderId") Long orderId,
@Param("status") int status,
@Param("payStatus") int payStatus);
}