8.9
luodangjia
2024-08-11 90ab70ee2e1adc5f6f2cf3cac38df14b61568ba1
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
package com.ruoyi.order.api.feignClient;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.api.entity.*;
import com.ruoyi.order.api.factory.OrderFallbackFactory;
import com.ruoyi.order.api.request.OrderCountDataRequest;
import io.swagger.annotations.ApiOperation;
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;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * @author HJL
 * @since 2024.05.29
 */
@FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class)
public interface OrderClient {
 
    /**
     * 新增订单
     * 后台订单为指定订单,默认为待上门状态
     *
     * @param orderRequest 站点信息
     * @return 返回结果
     */
    @PostMapping(value = "/order/save")
    R<Boolean> save(@RequestBody OrderRequest orderRequest);
 
 
    @PostMapping(value = "/order/edit")
    R<Boolean> edit(@RequestBody OrderRequest orderRequest);
 
    /**
     * 根据改派申请id获取订单详情
     *
     * @param id 改派申请id
     * @return 订单详情
     */
    @ApiOperation(value = "订单列表-订单详情", tags = {"后台-订单管理"})
    @GetMapping(value = "/order/detailByExchangeId")
    R<Order> detailByExchangeId(@RequestParam("id") String id);
 
    /**
     * 订单详情
     *
     * @param id 订单id
     * @return 订单信息
     */
    @GetMapping(value = "/order/detail")
    R<Order> detail(@RequestParam("id") String id);
 
    /**
     * 更改订单信息
     *
     * @param type     1:订单派单;2:订单改派
     * @param orderId  订单id
     * @param workerId 师傅id
     * @param name     师傅名称
     * @param phone    师傅电话
     * @return 更改结果
     */
    @GetMapping(value = "/order/exchangeOrder")
    R<Order> exchangeOrder(@RequestParam("type") Integer type, @RequestParam("orderId") String orderId,
                           @RequestParam("workerId") Integer workerId, @RequestParam("name") String name,
                           @RequestParam("phone") String phone);
 
    /**
     * 根据id批量删除站点
     *
     * @param ids 站点多条id拼接
     * @return 删除结果
     */
    @GetMapping(value = "/order/batchDelete")
    R<Boolean> batchDelete(@RequestParam("ids") String ids);
 
    /**
     * 订单统计
     *
     * @param request 查询参数
     * @return 分页
     */
    @PostMapping(value = "/order/orderCount")
    R<Page<OrderCountVO>> orderCount(@RequestBody OrderCountDataRequest request);
 
    /**
     * 订单列表-excel导出
     *
     * @param orderQueryRequest 筛选参数
     * @return 查询参数
     */
    @PostMapping(value = "/order/excelExport")
    R<List<Order>> excelExport(@RequestBody OrderQueryRequest orderQueryRequest);
 
    /**
     * 根据前台用户id查询所有订单信息
     *
     * @param phone 手机号
     * @return 订单列表
     */
    @GetMapping(value = "/order/queryList")
    R<List<Order>> queryList(@RequestParam("phone") String phone);
 
    /**
     * 订单列表
     *
     * @param orderQueryRequest 订单列表查询参数
     * @return 分页列表
     */
    @PostMapping(value = "/order/queryPage")
    R<Page<Order>> queryPage(@RequestBody OrderQueryRequest orderQueryRequest);
 
    /**
     * 订单列表
     *
     * @param orderQueryRequest 查询参数
     * @return 统计
     */
    @PostMapping(value = "/order/orderPageCount")
    R<OrderPageCountVO> orderPageCount(@RequestBody OrderQueryRequest orderQueryRequest);
 
    /**
     * 更改订单状态
     *
     * @param orderId 订单id
     * @param state   订单状态
     * @return 更改结果
     */
    @PostMapping(value = "/order/updateState")
    R<Boolean> updateState(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state);
 
    @PostMapping(value = "/order/count")
    R<Boolean> count(@RequestParam("orderId") String orderId);
 
    @PostMapping(value = "/order/papercount")
    R<List<PaperInVo>> papercount(@RequestParam("workId") String workId,@RequestParam("date") String date);
 
    @PostMapping(value = "/order/queryIdsBycode")
    R<List<Integer>> queryIdsBycode(@RequestBody List<String> cityList);
 
    /**
     * 更改订单状态且清空到达时间
     *
     * @param orderId 订单id
     * @param state   订单状态
     * @return 修改结果
     */
    @ApiOperation(value = "订单列表-更改订单状态且清空到达时间", tags = {"后台-订单管理"})
    @PostMapping(value = "/order/updateStateAndArrivalTime")
    R<Boolean> updateStateAndArrivalTime(@RequestParam("orderId") String orderId,
                                         @RequestParam("state") Integer state);
 
    /**
     * 申请改派审核通过后生成新订单
     *
     * @param order 订单信息
     * @return 生成订单结果
     */
    @GetMapping(value = "/order/generateNewOrder")
    R<Boolean> generateNewOrder(@RequestBody Order order);
 
    /**
     * 回收订单统计
     *
     * @param orderCount 查询所需参数
     * @return 统计结果
     */
    @PostMapping(value = "/order/orderCountHome")
    R<OrderResultVO> orderCountHome(@RequestBody OrderCountRequest orderCount);
 
    @PostMapping(value = "/order/workday")
    R<List<Order>> workday(@RequestBody Integer workId);
 
    /**
     * 用户所关联订单记录分页列表
     *
     * @param userId   手机号
     * @param pageNum  页码
     * @param pageSize 每页显示条数
     * @return 分页列表
     */
    @GetMapping(value = "/order/orderList")
    R<Page<Order>> orderList(@RequestParam("userId") Integer userId,
                              @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
 
    @GetMapping(value = "/order/orderList1")
    R<Page<Order>> orderList1(@RequestParam("userId") Integer userId, @RequestParam("cityList") List<String> cityList,
                             @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                             @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
    @GetMapping(value = "/order/workOrderList")
    R<Page<Order>> workOrderList(@RequestParam("workId") Integer workId,
                             @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                             @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
 
    /**
     * 更改订单提现状态
     *
     * @param orderId 订单id
     * @param state   提现状态
     * @return 修改结果
     */
    @PostMapping(value = "/order/updateWithdrawalState")
    R<Boolean> updateWithdrawalState(@RequestParam("orderId") String orderId,
                                     @RequestParam("state") Integer state);
 
    /**
     * 根据类型获取交易额
     *
     * @param cityList 城市列表
     * @param type     查询类型
     * @return 交易额
     */
    @GetMapping(value = "/order/tradeMoney")
    R<BigDecimal> tradeMoney(@RequestBody MoneyQueryRequest moneyQueryRequest);
 
    /**
     * 师傅端-订单列表
     *
     * @param userId   用户端
     * @param state    订单状态
     * @param pageNum  页码
     * @param pageSize 条数
     * @return 交易额
     */
    @GetMapping(value = "/order/orderListWorker")
    R<Page<Order>> orderListWorker(@RequestParam("userId") Integer userId, @RequestParam("state") Integer state,
                                   @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
 
    /**
     * 师傅端-根据师傅id获取订单数量
     *
     * @param workerIds 师傅id集合
     * @return 接单列表
     */
    @PostMapping(value = "/order/workerOrderRank")
    R<List<WorkerOrderRankVO>> workerOrderRank(@RequestBody List<Integer> workerIds);
 
    /**
     * 师傅端-订单路线导航
     *
     * @param orderId   订单id
     * @param workerId  师傅id
     * @param longitude 经度
     * @param latitude  纬度
     * @return 订单导航
     */
    @GetMapping(value = "/order/orderNavigation")
    R<Path> orderNavigation(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId,
                            @RequestParam("longitude") String longitude, @RequestParam("latitude") String latitude);
 
    /**
     * 师傅端-已到达预约地点
     *
     * @param orderId  订单id
     * @param workerId 师傅id
     * @return 修改订单状态
     */
    @GetMapping(value = "/order/reachPosition")
    R<Boolean> reachPosition(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId);
 
    /**
     * 师傅端-订单详情
     *
     * @param orderId 订单id
     * @return 订单详情
     */
    @GetMapping(value = "/order/orderDetail")
    R<OrderDetailVO> orderDetail(@RequestParam("orderId") String orderId);
 
    /**
     * 师傅端-提交订单
     *
     * @param orderSubmitRequest 提交订单信息
     * @return 提交结果
     */
    @PostMapping(value = "/order/orderSubmit")
    R<Boolean> orderSubmit(@RequestBody OrderSubmitRequest orderSubmitRequest);
 
    /**
     * 师傅端-定时调度记录师傅所走路线经纬度
     *
     * @param orderId   订单id
     * @param workerId  师傅id
     * @param longitude 经度
     * @param latitude  纬度
     * @return 保存记录结果
     */
    @ApiOperation(value = "订单进行-记录路线经纬度", tags = {"师傅端"})
    @GetMapping(value = "/order/coordinate")
    R<Boolean> coordinate(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId,
                          @RequestParam("longitude") Double longitude, @RequestParam("latitude") Double latitude);
 
    /**
     * 师傅端-代办列表
     *
     * @param workerId 师傅id
     * @return 订单列表
     */
    @ApiOperation(value = "根据师傅id查询订单", tags = {"师傅端"})
    @GetMapping(value = "/order/orderNotHandle")
    R<List<Order>> orderNotHandle(@RequestParam("workerId") Integer workerId);
 
    /**
     * 师傅端-根据师傅id查询订单并按照置顶顺序排序
     *
     * @param workerId 师傅id
     * @return 订单列表
     */
    @ApiOperation(value = "根据师傅id查询订单并按照置顶顺序排序", tags = {"师傅端"})
    @GetMapping(value = "/order/orderTopListByWorkerId")
    R<List<Order>> orderTopListByWorkerId(@RequestParam("workerId") Integer workerId);
 
    /**
     * 师傅端-订单代办列表
     *
     * @param orderId  订单id
     * @param workerId 师傅id
     * @return 置顶结果
     */
    @ApiOperation(value = "订单置顶", tags = {"师傅端-首页"})
    @GetMapping(value = "/order/orderTop")
    R<Boolean> orderTop(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId);
 
    /**
     * 师傅端-订单状态统计数量
     *
     * @param workerId 师傅id
     * @return 统计数量
     */
    @ApiOperation(value = "订单状态统计数量", tags = {"师傅端-首页"})
    @GetMapping(value = "/order/orderStateCount")
    R<WorkerOrderCountVO> orderStateCount(@RequestParam("workerId") Integer workerId);
 
    /**
     * 更改订单状态
     *
     * @param orderId 订单id
     * @param state   状态
     * @return 更改结果
     */
    @ApiOperation(value = "更改订单状态", tags = {"后台-订单管理"})
    @GetMapping(value = "/order/changeOrderState")
    R<Boolean> changeOrderState(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state);
 
    /*********************************   用户端   ******************************************/
 
    /**
     * 师傅端-订单状态统计数量
     *
     * @param userId   用户id
     * @param state    订单状态
     * @param pageNum  页码
     * @param pageSize 条数
     * @return 订单列表
     */
    @ApiOperation(value = "订单状态统计数量", tags = {"用户端"})
    @GetMapping(value = "/order/orderListByUser")
    R<Page<Order>> orderListByUser(@RequestParam("userId") Integer userId,
                                   @RequestParam("state") Integer state,
                                   @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
 
    /**
     * 用户端-生成预订单信息
     *
     * @param userOrderRequest 下单参数
     * @return 下单结果
     */
    @ApiOperation(value = "生成预订单信息", tags = {"用户端"})
    @PostMapping(value = "/order/orderEstimate")
    R<String> orderEstimate(@RequestBody UserOrderRequest userOrderRequest);
 
    /**
     * 用户端-用户下单
     *
     * @param userOrderRequest 下单参数
     * @return 下单结果
     */
    @ApiOperation(value = "下单", tags = {"用户端"})
    @PostMapping(value = "/order/placeOrder")
    R<Boolean> placeOrder(@RequestBody UserOrderRequest userOrderRequest);
 
    /**
     * 判断用户是否下单
     *
     * @param userId 用户id
     */
    @GetMapping(value = "/order/orderByUserId")
    R<Boolean> orderByUserId(@RequestParam("userId") Integer userId);
 
    /**
     * 站点详情
     *
     * @param orderId   订单id
     * @param prizeName 奖品名称
     * @return 操作结果
     */
    @ApiOperation(value = "补充订单津贴金额", tags = {"后台-订单管理"})
    @GetMapping(value = "/order/supplementAllowance")
    R<Boolean> supplementAllowance(@RequestParam("orderId") String orderId,
                                   @RequestParam("prizeName") String prizeName);
 
    @GetMapping("/oldData/order")
    R<String> oldData(@RequestParam("index") Integer index,
                      @RequestParam("pageNum") Integer pageNum,
                      @RequestParam("pageSize") Integer pageSize);
 
}