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 save(@RequestBody OrderRequest orderRequest); @PostMapping(value = "/order/edit") R edit(@RequestBody OrderRequest orderRequest); /** * 根据改派申请id获取订单详情 * * @param id 改派申请id * @return 订单详情 */ @ApiOperation(value = "订单列表-订单详情", tags = {"后台-订单管理"}) @GetMapping(value = "/order/detailByExchangeId") R detailByExchangeId(@RequestParam("id") String id); /** * 订单详情 * * @param id 订单id * @return 订单信息 */ @GetMapping(value = "/order/detail") R 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 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 batchDelete(@RequestParam("ids") String ids); /** * 订单统计 * * @param request 查询参数 * @return 分页 */ @PostMapping(value = "/order/orderCount") R> orderCount(@RequestBody OrderCountDataRequest request); /** * 订单列表-excel导出 * * @param orderQueryRequest 筛选参数 * @return 查询参数 */ @PostMapping(value = "/order/excelExport") R> excelExport(@RequestBody OrderQueryRequest orderQueryRequest); /** * 根据前台用户id查询所有订单信息 * * @param phone 手机号 * @return 订单列表 */ @GetMapping(value = "/order/queryList") R> queryList(@RequestParam("phone") String phone); /** * 订单列表 * * @param orderQueryRequest 订单列表查询参数 * @return 分页列表 */ @PostMapping(value = "/order/queryPage") R> queryPage(@RequestBody OrderQueryRequest orderQueryRequest); /** * 订单列表 * * @param orderQueryRequest 查询参数 * @return 统计 */ @PostMapping(value = "/order/orderPageCount") R orderPageCount(@RequestBody OrderQueryRequest orderQueryRequest); /** * 更改订单状态 * * @param orderId 订单id * @param state 订单状态 * @return 更改结果 */ @PostMapping(value = "/order/updateState") R updateState(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state); @PostMapping(value = "/order/count") R count(@RequestParam("orderId") String orderId); @PostMapping(value = "/order/papercount") R> papercount(@RequestParam("workId") String workId,@RequestParam("date") String date); @PostMapping(value = "/order/queryIdsBycode") R> queryIdsBycode(@RequestBody List cityList); /** * 更改订单状态且清空到达时间 * * @param orderId 订单id * @param state 订单状态 * @return 修改结果 */ @ApiOperation(value = "订单列表-更改订单状态且清空到达时间", tags = {"后台-订单管理"}) @PostMapping(value = "/order/updateStateAndArrivalTime") R updateStateAndArrivalTime(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state); /** * 申请改派审核通过后生成新订单 * * @param order 订单信息 * @return 生成订单结果 */ @GetMapping(value = "/order/generateNewOrder") R generateNewOrder(@RequestBody Order order); /** * 回收订单统计 * * @param orderCount 查询所需参数 * @return 统计结果 */ @PostMapping(value = "/order/orderCountHome") R orderCountHome(@RequestBody OrderCountRequest orderCount); @PostMapping(value = "/order/workday") R> workday(@RequestBody Integer workId); /** * 用户所关联订单记录分页列表 * * @param userId 手机号 * @param pageNum 页码 * @param pageSize 每页显示条数 * @return 分页列表 */ @GetMapping(value = "/order/orderList") R> orderList(@RequestParam("userId") Integer userId, @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); @GetMapping(value = "/order/orderList1") R> orderList1(@RequestParam("userId") Integer userId, @RequestParam("cityList") List cityList, @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); @GetMapping(value = "/order/workOrderList") R> 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 updateWithdrawalState(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state); /** * 根据类型获取交易额 * * @param cityList 城市列表 * @param type 查询类型 * @return 交易额 */ @GetMapping(value = "/order/tradeMoney") R tradeMoney(@RequestBody MoneyQueryRequest moneyQueryRequest); /** * 师傅端-订单列表 * * @param userId 用户端 * @param state 订单状态 * @param pageNum 页码 * @param pageSize 条数 * @return 交易额 */ @GetMapping(value = "/order/orderListWorker") R> 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> workerOrderRank(@RequestBody List workerIds); /** * 师傅端-订单路线导航 * * @param orderId 订单id * @param workerId 师傅id * @param longitude 经度 * @param latitude 纬度 * @return 订单导航 */ @GetMapping(value = "/order/orderNavigation") R 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 reachPosition(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId); /** * 师傅端-订单详情 * * @param orderId 订单id * @return 订单详情 */ @GetMapping(value = "/order/orderDetail") R orderDetail(@RequestParam("orderId") String orderId); /** * 师傅端-提交订单 * * @param orderSubmitRequest 提交订单信息 * @return 提交结果 */ @PostMapping(value = "/order/orderSubmit") R orderSubmit(@RequestBody OrderSubmitRequest orderSubmitRequest); /** * 师傅端-定时调度记录师傅所走路线经纬度 * * @param orderId 订单id * @param workerId 师傅id * @param longitude 经度 * @param latitude 纬度 * @return 保存记录结果 */ @ApiOperation(value = "订单进行-记录路线经纬度", tags = {"师傅端"}) @GetMapping(value = "/order/coordinate") R 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> orderNotHandle(@RequestParam("workerId") Integer workerId); /** * 师傅端-根据师傅id查询订单并按照置顶顺序排序 * * @param workerId 师傅id * @return 订单列表 */ @ApiOperation(value = "根据师傅id查询订单并按照置顶顺序排序", tags = {"师傅端"}) @GetMapping(value = "/order/orderTopListByWorkerId") R> orderTopListByWorkerId(@RequestParam("workerId") Integer workerId); /** * 师傅端-订单代办列表 * * @param orderId 订单id * @param workerId 师傅id * @return 置顶结果 */ @ApiOperation(value = "订单置顶", tags = {"师傅端-首页"}) @GetMapping(value = "/order/orderTop") R orderTop(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId); /** * 师傅端-订单状态统计数量 * * @param workerId 师傅id * @return 统计数量 */ @ApiOperation(value = "订单状态统计数量", tags = {"师傅端-首页"}) @GetMapping(value = "/order/orderStateCount") R orderStateCount(@RequestParam("workerId") Integer workerId); /** * 更改订单状态 * * @param orderId 订单id * @param state 状态 * @return 更改结果 */ @ApiOperation(value = "更改订单状态", tags = {"后台-订单管理"}) @GetMapping(value = "/order/changeOrderState") R 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> 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 orderEstimate(@RequestBody UserOrderRequest userOrderRequest); /** * 用户端-用户下单 * * @param userOrderRequest 下单参数 * @return 下单结果 */ @ApiOperation(value = "下单", tags = {"用户端"}) @PostMapping(value = "/order/placeOrder") R placeOrder(@RequestBody UserOrderRequest userOrderRequest); /** * 判断用户是否下单 * * @param userId 用户id */ @GetMapping(value = "/order/orderByUserId") R orderByUserId(@RequestParam("userId") Integer userId); /** * 站点详情 * * @param orderId 订单id * @param prizeName 奖品名称 * @return 操作结果 */ @ApiOperation(value = "补充订单津贴金额", tags = {"后台-订单管理"}) @GetMapping(value = "/order/supplementAllowance") R supplementAllowance(@RequestParam("orderId") String orderId, @RequestParam("prizeName") String prizeName); @GetMapping("/oldData/order") R oldData(@RequestParam("index") Integer index, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize); }