package com.xiaopeng.api.feignClient.order; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.PopOrderDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.factory.order.XpOrderClientFallbackFactory; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.vo.order.OrderTrajectoryVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; /** * 订单Feign客户端 * * @author mitao */ @FeignClient(contextId = "XpOrderClient", value = ServiceNameConstantsEnum.XP_ORDER_SERVICE, fallbackFactory = XpOrderClientFallbackFactory.class) public interface XpOrderClient { /** * 获取订单统计数据 * * @param query 查询参数 * @return 订单统计数据 */ @PostMapping("/logan/inner/order/statistics") R getOrderStatistics(@RequestBody StatisticsQueryDTO query); /** * 查询是否有未支付订单 或 正在进行的订单 */ @PostMapping("/logan/inner/order/has-unpaid-order") R hasUnPaodOrder(@RequestParam String uid); /** * 通过订单id查询订单信息 * * @param orderId 订单id * @return 订单详情 */ @PostMapping("/logan/inner/order/queryOrderById") R queryOrderById(@RequestParam Long orderId); /** * 添加订单 * * @param xpOrder 订单信息 */ @PostMapping("/logan/inner/order/addOrder") R addOrder(@RequestBody XpOrder xpOrder); /** * 取消订单 * * @param orderId 订单id */ @PostMapping("/logan/inner/order/cancelOrder") R cancelOrder(@RequestParam("orderId") String orderId); /** * 通过订单编号查询订单信息 * * @param orderNo 订单编号 * @return 订单详情 */ @PostMapping("/logan/inner/order/queryOrderByOrderNo") R queryOrderByOrderNo(@RequestParam String orderNo); /** * 获取订单数量 * * @param * @return 订单数量 */ @PostMapping("/logan/inner/order/getOrderNum") R getOrderNum(@RequestBody GetOrderNumDto dto); /** * 当日取消订单次数 * * @param * @return 订单数量 */ @PostMapping("/inner/order/todayCancellationCount") R todayCancellationCount(@RequestParam Long userId); /** * 查询指定城市进行中的订单数量(status=1) * * @param cityId 开通城市ID * @return 进行中订单数量 */ @GetMapping("/logan/inner/order/countActiveOrders") R countActiveOrdersByCityId(@RequestParam("cityId") Long cityId); /** * 成功操作下发命令后调用 用于弹出redis队列的获取成功的数据 */ @PostMapping("/logan/inner/order/popOrder") R popOrder(@RequestBody PopOrderDto dto); /** * 修改订单信息 * * @param xpOrder 订单信息 */ @PostMapping("/logan/inner/order/updateOrder") R updateOrder(@RequestBody XpOrder xpOrder); /** * 修改订单状态 * @param orderId * @param status * @return */ @PostMapping("/logan/inner/v1/order/updateOrderStatus") R updateOrderStatus(@RequestParam Long orderId, @RequestParam Integer status, @RequestParam Boolean orderException); /** * 行驶中车辆异常,订单状态修改- 修改状态=7 再修改 金额-再将状态修改成8 * @param orderId * @return */ @PostMapping("/logan/inner/v1/order/carAbnormalUpdateOrderStatus") R carAbnormalUpdateOrderStatus(@RequestParam Long orderId); /** * 保存订单轨迹数据 * @param orderTrajectory * @return */ @PostMapping("/logan/inner/v1/order/saveVehicleLocation") R saveVehicleLocation(@RequestBody OrderTrajectoryVo orderTrajectory); }