package com.xiaopeng.order.service;
|
|
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.xiaopeng.api.dto.order.GetOrderNumDto;
|
import com.xiaopeng.api.dto.order.PopOrderDto;
|
import com.xiaopeng.api.dto.order.UpdateInvoiceStatusDto;
|
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
|
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
|
import com.xiaopeng.api.query.order.InvoiceOrdersQuery;
|
import com.xiaopeng.api.query.order.XpOrderInvoiceQuery;
|
import com.xiaopeng.api.vo.operation.NearestNextVo;
|
import com.xiaopeng.api.vo.order.*;
|
import com.xiaopeng.api.vo.order.FareBreakdownVo;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.order.dto.UserOrderListDto;
|
import com.xiaopeng.api.model.order.OrderTrajectory;
|
import com.xiaopeng.order.model.dto.CreditPaySuccessCallDto;
|
import com.xiaopeng.order.model.dto.XpOrderCommentDto;
|
import com.xiaopeng.order.model.dto.XpOrderPayDto;
|
import com.xiaopeng.order.model.query.XpHistoryOrderListQuery;
|
import com.xiaopeng.order.model.query.XpOrderExcelQuery;
|
import com.xiaopeng.order.model.query.XpOrderPageQuery;
|
import com.xiaopeng.order.model.vo.CreditPayCallVo;
|
import com.xiaopeng.order.model.vo.XpOrderDetailVO;
|
import com.xiaopeng.order.model.vo.XpOrderHistoryVO;
|
import com.xiaopeng.order.model.vo.XpOrderPageVO;
|
import com.xiaopeng.order.vo.*;
|
|
import javax.validation.Valid;
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 订单 服务类
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
public interface IXpOrderService extends IService<XpOrder> {
|
|
/**
|
* 获取订单统计数据
|
*
|
* @param query 查询参数
|
* @return 订单统计数据
|
*/
|
OrderStatisticsDTO getOrderStatistics(StatisticsQueryDTO query);
|
|
/**
|
* 订单分页列表
|
*
|
* @param query 分页查询参数
|
* @return 分页结果
|
*/
|
PageInfo<XpOrderPageVO> pageList(XpOrderPageQuery query);
|
|
/**
|
* 获取订单详情
|
*
|
* @param id 订单ID
|
* @return 订单详情
|
*/
|
XpOrderDetailVO getOrderDetail(Long id);
|
|
/**
|
* 删除订单(逻辑删除)
|
*
|
* @param id 订单ID
|
*/
|
void deleteOrder(Long id);
|
|
/**
|
* 导出订单列表
|
*
|
* @param query 查询参数
|
* @return 订单列表
|
*/
|
List<XpOrderPageVO> exportList(XpOrderExcelQuery query);
|
|
/**
|
* 取消或关闭订单
|
*
|
* @param orderId 订单ID
|
* @param type 操作类型:1=取消订单,2=关闭订单
|
*/
|
void cancelOrCloseOrder(Long orderId, Integer type,Boolean isFree);
|
|
/**
|
* 改派订单
|
*
|
* @param orderId 订单ID
|
* @param newVehicleId 新车辆ID
|
* @param reassignReason 改派原因(可选)
|
*/
|
void reassignOrder(Long orderId, Long newVehicleId, String reassignReason);
|
|
/**
|
* 获取用户快捷胶囊
|
* @param uid
|
* @return
|
*/
|
XpPointInfoVo getUserQuickCapsule(String uid, Long startPointId);
|
|
NearestNextVo quickCapsule(String uid, Long startPointId);
|
|
/**
|
* 获取历史下单成功起点10条数据列表
|
* @param uid
|
* @return
|
*/
|
List<XpHistoryStartPointsVo> getHistoryStartPoints(String uid,double lon,double lat,Long electronicAreaId);
|
|
|
/**
|
* 获取正在进行中的订单
|
* @param uid
|
* @return
|
*/
|
XpOrderDetailVO getActiveOrder(String uid);
|
|
/**
|
* 获取历史下单成功终点10条数据列表
|
* @param uid
|
* @return
|
*/
|
List<XpHistoryEndPointsVo> getHistoryEndPoints(String uid, double lon, double lat,Long electronicAreaId);
|
|
/**
|
* 获取历史订单列表
|
* @param query
|
* @param uid
|
* @return
|
*/
|
XpOrderHistoryVO getHistoryOrderList(XpHistoryOrderListQuery query, String uid);
|
|
/**
|
* 取消订单
|
* @param orderId
|
* @param uid
|
*/
|
void cancelOrder(Long orderId,String uid);
|
|
/**
|
* 取消订单
|
* @param orderId
|
*/
|
XpOrder cancelOrder(String orderId);
|
|
/**
|
* 评价订单
|
* @param dto
|
* @param uid
|
*/
|
void comment(XpOrderCommentDto dto, String uid);
|
|
/**
|
* 修改订单状态
|
* @param orderId 订单id
|
* @param status 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成
|
* @return 修改结果
|
*/
|
R<String> updateOrderStatus(Long orderId, Integer status);
|
|
/**
|
* 行驶中车辆异常,订单状态修改- 修改状态=7 再修改 金额-再将状态修改成8
|
*/
|
R<String> carAbnormalUpdateOrderStatus(Long orderId);
|
|
Boolean endTrip(Long orderId, String uid);
|
|
|
/**
|
* 添加巡游任务 下发命令
|
* @param order
|
*/
|
void addCruiseMission(Long vehicleId, XpOrder order);
|
|
/**
|
* 取消订单后的继续巡游任务
|
*/
|
void addCruiseMission(XpOrder order, Integer status);
|
|
R<FareBreakdownVo> fareBreakdown(com.xiaopeng.order.vo.FareBreakdownVo vo, String uid);
|
|
R payment(XpOrderPayDto dto, String uid);
|
|
/**
|
* 添加订单
|
* @param xpOrder
|
* @return
|
*/
|
boolean addOrder(XpOrder xpOrder);
|
|
/**
|
* 根据订单ID查询车辆信息
|
* @param orderId 订单ID
|
* @param uid
|
* @return
|
*/
|
XpVehicle queryVehicleByOrderId(Long orderId, String uid);
|
/**
|
* 获取订单数量
|
* @return
|
*/
|
Integer getOrderNum(GetOrderNumDto dto);
|
|
/**
|
* 查询指定城市进行中的订单数量(status=1)
|
*
|
* @param cityId 开通城市ID
|
* @return 进行中订单数量
|
*/
|
Integer countActiveOrdersByCityId(Long cityId);
|
|
/**
|
* 保存车辆位置信息
|
* @param orderTrajectory
|
*/
|
void saveVehicleLocation(OrderTrajectory orderTrajectory);
|
|
/**
|
* 成功操作下发命令后调用 用于弹出redis队列的获取成功的数据
|
* @param dto
|
*/
|
void popOrder(PopOrderDto dto);
|
|
OrderDetailVo orderDetail(Long orderId, String uid);
|
|
R<String> feeDescription(Long orderId, String uid);
|
|
XpOrderDetailVO getActiveOrder_itineraryManage(String uid);
|
|
/**
|
* 订单改价
|
* @param id
|
* @param amount
|
*/
|
void changeAmount(Long id, BigDecimal amount);
|
|
/**
|
* 获取待付款订单数量
|
* @param uid
|
* @return
|
*/
|
Integer getWaitPayOrderNum(String uid);
|
|
|
/**
|
* 根据 UID 查询用户是否有 RT 订单 & 订单列表
|
* @param dto
|
* @return
|
*/
|
List<UserOrderListVo> getUserOrderList(UserOrderListDto dto);
|
|
|
/**
|
* 获取订单信息
|
* @param orderId
|
* @return
|
*/
|
OrderInfoVo getOrderInfo(Long orderId);
|
|
|
/**
|
* 合作商更新订单状态
|
* @param vo
|
*/
|
R<?> officialPartnerUpdateOrderStatus(UpdateOrderStatusVo vo, Integer officialPartnerId);
|
|
|
/**
|
* 开票列表数据查询
|
* @param query
|
* @return
|
*/
|
List<XpInvoiceVo> invoiceList(XpOrderInvoiceQuery query);
|
|
|
/**
|
* 查询开票数据(批量)
|
* @param query
|
* @return
|
*/
|
List<XpInvoiceVo> queryInvoiceOrders(InvoiceOrdersQuery query);
|
|
|
/**
|
* 订单状态推送
|
* @param dto
|
*/
|
void updateInvoiceStatus(@Valid UpdateInvoiceStatusDto dto);
|
|
|
|
/**
|
* 获取订单历史信息
|
* @param orderId
|
* @return
|
*/
|
UserOrderInfoVo getOrderHistoryInfo(Long orderId);
|
|
|
/**
|
* 获取订单状态
|
* @param orderId
|
* @return
|
*/
|
OrderStatusFromOrderIdVo queryOrderStatusFromOrderId(Long orderId);
|
|
|
/**
|
* 订单支付成功后的回调
|
* @param order
|
*/
|
void creditPayCall(XpOrder order);
|
|
/**
|
* 订单支付成功后 对接财务
|
* @param order
|
*/
|
void xpFrdXfipEventPush(XpOrder order,Long payFee,String orderId);
|
|
|
/**
|
* 订单扣款成功后的回调
|
* @param dto
|
* @return
|
*/
|
CreditPayCallVo creditPaySuccessCall(CreditPaySuccessCallDto dto);
|
|
|
|
}
|