package com.xiaopeng.order.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.model.order.XpTestOrder; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.model.query.XpTestOrderPageQuery; import com.xiaopeng.order.model.vo.*; import java.math.BigDecimal; /** *

* 订单 服务类 *

* * @author mitao * @since 2026-02-03 */ public interface IXpTestOrderService extends IService { /** * 添加测试单 * @param query */ void addTestOrder(AddTestOrderVo query); /** * 订单分页列表 * * @param query 分页查询参数 * @return 分页结果 */ PageInfo pageList(XpTestOrderPageQuery query); /** * 获取订单详情 * * @param id 订单ID * @return 订单详情 */ XpTestOrderDetailVO getOrderDetail(Long id); /** * 删除订单(逻辑删除) * * @param id 订单ID */ void deleteOrder(Long id); /** * 取消或关闭订单 * * @param orderId 订单ID * @param type 操作类型:1=取消订单,2=关闭订单 */ void cancelOrCloseOrder(Long orderId, Integer type); /** * 行程中订单异常后的处理 * @param order */ void carAbnormalUpdateOrderStatus(Long orderId); /** * 改派订单 * * @param orderId 订单ID * @param newVehicleId 新车辆ID * @param reassignReason 改派原因(可选) */ void reassignOrder(Long orderId, Long newVehicleId, String reassignReason); /** * 修改订单状态 * @param orderId 订单id * @param status 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成 * @return 修改结果 */ R updateOrderStatus(Long orderId, Integer status); Boolean endTrip(Long orderId); /** * 获取订单数量 * @return */ Integer getOrderNum(GetOrderNumDto dto); /** * 保存车辆位置信息 * @param orderTrajectory */ void saveVehicleLocation(OrderTrajectory orderTrajectory); /** * 订单改价 * @param id * @param amount */ void changeAmount(Long id, BigDecimal amount); /** * 取消订单 * @param orderId * @return */ R cancelTestOrderById(Long orderId); }