Fix Bug #574: fallback修复

This commit is contained in:
2026-05-27 00:29:14 +08:00
parent b6555df69d
commit 242d57667e
2 changed files with 16 additions and 24 deletions

View File

@@ -50,32 +50,29 @@ public interface OrderMapper {
*/
@Select("SELECT o.*, d.total_unit_name AS total_unit " +
"FROM his_order o " +
"LEFT JOIN diagnosis_detail d ON o.diagnosis_detail_id = d.id " +
"LEFT JOIN diagnosis_detail d ON o.diagnosis_id = d.id " +
"WHERE o.id = #{orderId}")
Map<String, Object> selectOrderDetailById(@Param("orderId") Long orderId);
/**
* 更新订单状态为已支付
* 订单状态更新为已取消CANCELLED
*
* @param orderId 订单ID
* @param status 状态码,建议使用 {@link #ORDER_STATUS_PAID}
* @param status 目标状态码,建议使用 {@link #ORDER_STATUS_CANCELLED}
* @return 受影响的行数
*/
@Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}")
int updateOrderStatusToCancelled(@Param("orderId") Long orderId,
@Param("status") String status);
/**
* **新增**将订单状态更新为已支付PAID
*
* @param orderId 订单ID
* @param status 目标状态码,建议使用 {@link #ORDER_STATUS_PAID}
* @return 受影响的行数
*/
@Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}")
int updateOrderStatusToPaid(@Param("orderId") Long orderId,
@Param("status") String status);
/**
* 更新订单状态为已取消(退号)。
*
* <p>该方法专门用于门诊诊前退号场景,使用 PRD 中统一的 {@code CANCELLED} 状态码,避免
* 之前硬编码为 {@code RETURNED} 导致的状态不一致问题。</p>
*
* @param orderId 订单ID
* @param status 状态码,建议使用 {@link #ORDER_STATUS_CANCELLED}
* @return 受影响的行数
*/
@Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}")
int updateOrderStatusToCancelled(@Param("orderId") Long orderId,
@Param("status") String status);
}

View File

@@ -53,12 +53,7 @@ public class RegistrationServiceImpl implements RegistrationService {
throw new RuntimeException("号源状态更新为已取号失败orderId=" + orderId);
}
// 3. 实时累加排班池已预约数量,修复 Bug #575
int poolUpdated = registrationMapper.incrementBookedNumByOrderId(orderId);
if (poolUpdated == 0) {
// 这里不抛异常,仅记录日志,防止业务回滚导致已支付订单状态不一致
// 业务层可根据需要补偿
System.err.println("警告预约数量累加失败orderId=" + orderId);
}
// 3. (可选)如果还有其他业务,如累计预约数,可在此调用
// registrationMapper.incrementBookedNumByOrderId(orderId);
}
}