xuhy
2026-04-15 2862d5229b2564b45face7c6ec3d3e3acccc1749
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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<OrderStatisticsDTO> getOrderStatistics(@RequestBody StatisticsQueryDTO query);
 
 
    /**
     * 查询是否有未支付订单 或 正在进行的订单
     */
    @PostMapping("/logan/inner/order/has-unpaid-order")
    R<Long> hasUnPaodOrder(@RequestParam String uid);
 
 
    /**
     * 通过订单id查询订单信息
     *
     * @param orderId 订单id
     * @return 订单详情
     */
    @PostMapping("/logan/inner/order/queryOrderById")
    R<XpOrder> queryOrderById(@RequestParam Long orderId);
 
    /**
     * 添加订单
     *
     * @param xpOrder 订单信息
     */
    @PostMapping("/logan/inner/order/addOrder")
    R<Long> 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<XpOrder> queryOrderByOrderNo(@RequestParam String orderNo);
 
 
    /**
     * 获取订单数量
     *
     * @param
     * @return 订单数量
     */
    @PostMapping("/logan/inner/order/getOrderNum")
    R<Integer> getOrderNum(@RequestBody GetOrderNumDto dto);
 
 
 
    /**
     * 当日取消订单次数
     *
     * @param
     * @return 订单数量
     */
    @PostMapping("/inner/order/todayCancellationCount")
    R<Integer> todayCancellationCount(@RequestParam Long userId);
 
    /**
     * 查询指定城市进行中的订单数量(status=1)
     *
     * @param cityId 开通城市ID
     * @return 进行中订单数量
     */
    @GetMapping("/logan/inner/order/countActiveOrders")
    R<Integer> 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<String> updateOrderStatus(@RequestParam Long orderId,
                                       @RequestParam Integer status);
    /**
     * 行驶中车辆异常,订单状态修改- 修改状态=7 再修改 金额-再将状态修改成8
     * @param orderId
     * @return
     */
    @PostMapping("/logan/inner/v1/order/carAbnormalUpdateOrderStatus")
    R<String> carAbnormalUpdateOrderStatus(@RequestParam Long orderId);
 
 
    /**
     * 保存订单轨迹数据
     * @param orderTrajectory
     * @return
     */
    @PostMapping("/logan/inner/v1/order/saveVehicleLocation")
    R<String> saveVehicleLocation(@RequestBody OrderTrajectoryVo orderTrajectory);
 
 
 
 
}