| package com.ruoyi.order.api.feignClient; | 
|   | 
| 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.order.api.entity.*; | 
| import com.ruoyi.order.api.factory.WithdrawFallbackFactory; | 
| 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 = WithdrawFallbackFactory.class) | 
| public interface WithdrawClient { | 
|   | 
|     /** | 
|      * 用户所关联提现记录分页列表 | 
|      * | 
|      * @param nickname     用户昵称 | 
|      * @param userPhone    用户手机号 | 
|      * @param applyForTime 申请时间 | 
|      * @param state        状态 | 
|      * @param pageNum      页码 | 
|      * @param pageSize     每页显示条数 | 
|      * @return 分页列表 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawPage") | 
|     R<Page<UserWithdrawRecordVO>> withdrawPage(@RequestParam(value = "nickname", required = false) String nickname, | 
|                                                @RequestParam(value = "userPhone", required = false) String userPhone, | 
|                                                @RequestParam(value = "applyForTime", required = false) String applyForTime, | 
|                                                @RequestParam(value = "state", required = false) Integer state, | 
|                                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, | 
|                                             @RequestParam(name = "userIds") List<Integer> userIds); | 
|   | 
|     @GetMapping(value = "/withdraw/withdrawPage1") | 
|     R<Page<UserWithdrawRecordVO>> withdrawPage1(@RequestParam(value = "cityList", required = false)List<String> cityList,@RequestParam(value = "nickname", required = false) String nickname, | 
|                                                @RequestParam(value = "userPhone", required = false) String userPhone, | 
|                                                @RequestParam(value = "applyForTime", required = false) String applyForTime, | 
|                                                @RequestParam(value = "state", required = false) Integer state, | 
|                                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, | 
|                                                @RequestParam(name = "userIds") List<Integer> userIds, | 
|                                                 @RequestParam("siteIds") List<String> siteIds); | 
|   | 
|     /** | 
|      * 查看提现记录详情 | 
|      * | 
|      * @param id 提现记录id | 
|      * @return 提现详情 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawRecordDetail") | 
|     R<Withdraw> withdrawRecordDetail(@RequestParam("id") Long id); | 
|   | 
|     /** | 
|      * 用户提现记录导出 | 
|      * | 
|      * @param exportRequest 提现记录 | 
|      * @return 筛选数据列表 | 
|      */ | 
|     @ApiOperation(value = "用户提现管理-excel导出用户提现记录", tags = {"后台-用户管理-提现列表"}) | 
|     @PostMapping(value = "/withdraw/excelExport") | 
|     R<List<UserWithdrawRecordVO>> excelExport(@RequestBody WithdrawExportRequest exportRequest); | 
|   | 
|     /** | 
|      * 批量删除提现记录 | 
|      * | 
|      * @param ids 提现记录多条id拼接 | 
|      * @return 封装分页数据 | 
|      */ | 
|     @GetMapping(value = "/withdraw/batchDelete") | 
|     R<String> batchDelete(@RequestParam("ids") String ids); | 
|   | 
|     /** | 
|      * 提现管理-提现审批 | 
|      * | 
|      * @param id      提现记录id | 
|      * @param state   审批结果 | 
|      * @param opinion 审批意见 | 
|      * @param openId  微信用户openId | 
|      * @param userId  用户id | 
|      * @return 提现结果 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawExamine") | 
|     R<Boolean> withdrawExamine(@RequestParam("id") Long id, @RequestParam("state") Integer state, | 
|                                @RequestParam(value = "opinion", required = false) String opinion, | 
|                                @RequestParam(value = "openId") String openId, | 
|                                @RequestParam(value = "userId") Integer userId); | 
|   | 
|     /** | 
|      * 根据类型统计提现金额 | 
|      * | 
|      * @param request 根据类型统计提现金额 | 
|      * @return 封装分页数据 | 
|      */ | 
|     @PostMapping(value = "/withdraw/withdrawalTotalMoney") | 
|     R<BigDecimal> withdrawalTotalMoney(@RequestBody MoneyQueryRequest request); | 
|   | 
|     /** | 
|      * 修改系统设置-关闭/开启审核 | 
|      * | 
|      * @param enableProcess 审核状态 | 
|      * @return 操作结果 | 
|      */ | 
|     @ApiOperation(value = "关闭/开启审核", tags = {"后台-用户管理-用户列表"}) | 
|     @GetMapping(value = "/withdraw/enableProcess") | 
|     R<Boolean> enableProcess(@RequestParam("enableProcess") Integer enableProcess); | 
|   | 
|     /** | 
|      * 获取系统设置-审核设置 | 
|      * --远程调用 | 
|      * | 
|      * @return 操作结果 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawProcess") | 
|     R<WithdrawalSetting> withdrawProcess(); | 
|   | 
|     /** | 
|      * 全局审核状态 | 
|      * | 
|      * @return 全局审核状态 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawState") | 
|     R<WithdrawalSetting> withdrawState(); | 
|   | 
|     /** | 
|      * 用户所关联提现记录分页列表 | 
|      * | 
|      * @param userId   用户id | 
|      * @param pageNum  页码 | 
|      * @param pageSize 每页显示条数 | 
|      * @return 分页列表 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawList") | 
|     R<Page<UserWithdrawRecordVO>> withdrawList(@RequestParam("userId") Integer userId, | 
|                                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); | 
|   | 
|     @GetMapping(value = "/withdraw/withdrawList1") | 
|     R<Page<UserWithdrawRecordVO>> withdrawList1(@RequestParam("cityList") List<String> cityList, | 
|                                                 @RequestParam("userId") Integer userId, | 
|                                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, | 
|                                                 @RequestParam("siteIds") List<String> siteIds); | 
|   | 
|   | 
|     /** | 
|      * 根据订单获取用户提现申请记录 | 
|      * | 
|      * @param orderId 订单id | 
|      * @param userId  用户id | 
|      * @return 提现记录 | 
|      */ | 
|     @GetMapping(value = "/withdraw/withdrawRecordByUser") | 
|     R<List<Withdraw>> withdrawRecordByUser(@RequestParam("orderId") String orderId, | 
|                                            @RequestParam("userId") Integer userId); | 
|   | 
|     /** | 
|      * 用户端-用户提交提现申请 | 
|      * | 
|      * @param orderId   订单id | 
|      * @param userId    用户id | 
|      * @param openId    微信用户openId | 
|      * @param userPhone 用户手机号 | 
|      * @return 提现结果 | 
|      */ | 
|     @GetMapping(value = "/withdraw/confirmWithdrawByUser") | 
|     R<Boolean> confirmWithdrawByUser(@RequestParam("orderId") String orderId, | 
|                                      @RequestParam("userId") Integer userId, | 
|                                      @RequestParam("openId") String openId, | 
|                                      @RequestParam("userPhone") String userPhone); | 
|   | 
|     /** | 
|      * 用户订单列表 | 
|      * | 
|      * @param userId   用户id | 
|      * @param pageNum  页码 | 
|      * @param pageSize 条数 | 
|      * @return 订单列表 | 
|      */ | 
|     @GetMapping("/withdraw/withdrawListByUser") | 
|     R<Page<Order>> withdrawListByUser(@RequestParam("userId") Integer userId, | 
|                                       @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                       @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); | 
|   | 
|     @GetMapping("/withdraw/withdrawRecordList") | 
|     @ApiOperation(value = "用户提现申请记录", tags = {"用户端"}) | 
|     R<Page<Withdraw>> withdrawRecordList(@RequestParam("userId") Integer userId, | 
|                                          @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, | 
|                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); | 
|   | 
|     /** | 
|      * 提现订单详情 | 
|      * | 
|      * @param orderId 订单id | 
|      * @return 订单详情 | 
|      */ | 
|     @GetMapping("/withdraw/withdrawDetailByUser") | 
|     R<WithdrawDetailVO> withdrawDetailByUser(@RequestParam("orderId") String orderId); | 
|   | 
|     @GetMapping("/withdraw/confirmMoney") | 
|   | 
|     R<String> confirmMoney(@RequestParam("id")String id); | 
| } |