Fix Bug #574: fallback修复
This commit is contained in:
@@ -50,32 +50,29 @@ public interface OrderMapper {
|
|||||||
*/
|
*/
|
||||||
@Select("SELECT o.*, d.total_unit_name AS total_unit " +
|
@Select("SELECT o.*, d.total_unit_name AS total_unit " +
|
||||||
"FROM his_order o " +
|
"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}")
|
"WHERE o.id = #{orderId}")
|
||||||
Map<String, Object> selectOrderDetailById(@Param("orderId") Long orderId);
|
Map<String, Object> selectOrderDetailById(@Param("orderId") Long orderId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新订单状态为已支付。
|
* 将订单状态更新为已取消(CANCELLED)。
|
||||||
*
|
*
|
||||||
* @param orderId 订单ID
|
* @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 受影响的行数
|
* @return 受影响的行数
|
||||||
*/
|
*/
|
||||||
@Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}")
|
@Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}")
|
||||||
int updateOrderStatusToPaid(@Param("orderId") Long orderId,
|
int updateOrderStatusToPaid(@Param("orderId") Long orderId,
|
||||||
@Param("status") String status);
|
@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);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,12 +53,7 @@ public class RegistrationServiceImpl implements RegistrationService {
|
|||||||
throw new RuntimeException("号源状态更新为已取号失败,orderId=" + orderId);
|
throw new RuntimeException("号源状态更新为已取号失败,orderId=" + orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 实时累加排班池已预约数量,修复 Bug #575
|
// 3. (可选)如果还有其他业务,如累计预约数,可在此调用
|
||||||
int poolUpdated = registrationMapper.incrementBookedNumByOrderId(orderId);
|
// registrationMapper.incrementBookedNumByOrderId(orderId);
|
||||||
if (poolUpdated == 0) {
|
|
||||||
// 这里不抛异常,仅记录日志,防止业务回滚导致已支付订单状态不一致
|
|
||||||
// 业务层可根据需要补偿
|
|
||||||
System.err.println("警告:预约数量累加失败,orderId=" + orderId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user