From 1442f149019ee0590389abd7a88a79c4d9b59034 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 27 五月 2025 18:23:34 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java |   87 +++++++++++++++++--------------------------
 1 files changed, 35 insertions(+), 52 deletions(-)

diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
index 93a6cb6..5e28ae5 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
@@ -1,17 +1,13 @@
 package com.ruoyi.user.service.impl;
 
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.admin.api.entity.WithdrawalSetting;
-import com.ruoyi.admin.api.feignClient.AdminClient;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.exception.GlobalException;
-import com.ruoyi.user.entity.Order;
+import com.ruoyi.order.api.entity.Order;
+import com.ruoyi.order.api.feignClient.WithdrawClient;
 import com.ruoyi.user.entity.RecoveryServe;
 import com.ruoyi.user.entity.User;
-import com.ruoyi.user.entity.Withdraw;
-import com.ruoyi.user.mapper.WithdrawMapper;
-import com.ruoyi.user.service.OrderService;
 import com.ruoyi.user.service.RecoveryServeService;
 import com.ruoyi.user.service.UserService;
 import com.ruoyi.user.service.WithdrawService;
@@ -24,55 +20,49 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * <p>
  * 用户提现申请记录表 服务实现类
- * </p>
  *
  * @author hjl
  * @since 2024-06-07
  */
 @Service
-public class WithdrawServiceImpl extends ServiceImpl<WithdrawMapper, Withdraw> implements WithdrawService {
+public class WithdrawServiceImpl implements WithdrawService {
 
-    @Resource
-    private OrderService orderService;
     @Resource
     private RecoveryServeService recoveryServeService;
     @Resource
     private UserService userService;
     @Resource
-    private AdminClient adminClient;
+    private WithdrawClient withdrawClient;
 
     @Override
-    public WithdrawListVO withdrawList(Integer userid) {
+    public WithdrawListVO withdrawList(Integer userid, Integer pageNum, Integer pageSize) {
         WithdrawListVO withdrawList = new WithdrawListVO();
-        List<Order> orderList = orderService.lambdaQuery().eq(Order::getUserId, userid)
-                .eq(Order::getState, 3).eq(Order::getIsDelete, 0).list();
+        Page<Order> orderList = withdrawClient.withdrawListByUser(userid, pageNum, pageSize).getData();
         // 总金额
         BigDecimal totalMoney = BigDecimal.ZERO;
         // 未提现金额
         BigDecimal undelivered = BigDecimal.ZERO;
         // 已提现金额
         BigDecimal withdrawn = BigDecimal.ZERO;
-        if (!orderList.isEmpty()) {
+        if (!orderList.getRecords().isEmpty()) {
             // 总金额
-            totalMoney = orderList.stream().map(Order::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 未提现金额
-            undelivered = orderList.stream().filter(data -> Constants.ZERO.equals(data.getIsWithdrawal()))
+            totalMoney = orderList.getRecords().stream().map(Order::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+            // 未提现金额withdrawn
+            withdrawn = orderList.getRecords().stream().filter(data -> Constants.ZERO.equals(data.getIsWithdrawal()))
                     .map(Order::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
             // 已提现金额
-            withdrawn = orderList.stream().filter(data -> Constants.ONE.equals(data.getIsWithdrawal()))
+            undelivered = orderList.getRecords().stream().filter(data -> Constants.ONE.equals(data.getIsWithdrawal()))
                     .map(Order::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
         }
         withdrawList.setMoneyCount(new WithdrawMoneyVO(totalMoney, undelivered, withdrawn));
         // 回收服务列表
-        List<Integer> serveIds = orderList.stream().map(Order::getServeId).collect(Collectors.toList());
+        List<Integer> serveIds = orderList.getRecords().stream().map(Order::getServeId).collect(Collectors.toList());
         LambdaQueryChainWrapper<RecoveryServe> wrapper = recoveryServeService.lambdaQuery()
                 .eq(RecoveryServe::getIsDelete, 0);
         wrapper = serveIds.isEmpty() ? wrapper : wrapper.in(RecoveryServe::getId, serveIds);
@@ -80,51 +70,44 @@
         Map<Integer, RecoveryServe> serveMap = serveList.stream().collect(Collectors.toMap(RecoveryServe::getId, serve -> serve));
         // 订单列表
         List<WithdrawOrderVO> list = new ArrayList<>();
-        for (Order order : orderList) {
+        for (Order order : orderList.getRecords()) {
             RecoveryServe recoveryServe = serveMap.get(order.getServeId());
             WithdrawOrderVO withdrawOrder = new WithdrawOrderVO();
+            withdrawOrder.setOrderId(order.getId());
             withdrawOrder.setOrderNumber(order.getOrderNumber());
             withdrawOrder.setServeId(order.getServeId());
             withdrawOrder.setServeName(recoveryServe.getServeName());
             withdrawOrder.setServeDescribe(recoveryServe.getServeDescribe());
             withdrawOrder.setCover(recoveryServe.getCover());
-            withdrawOrder.setCompleteTime(order.getCompleteTime());
+            withdrawOrder.setCompleteTime(order.getCreateTime());
             withdrawOrder.setIsWithdrawal(order.getIsWithdrawal());
+            withdrawOrder.setMoney(order.getOrderMoney());
+            withdrawOrder.setPackageInfo(order.getPackageInfo());
+            if (order.getAddress()!=null) {
+                withdrawOrder.setAddress(order.getReservationAddress() + order.getAddress());
+            }else {
+                withdrawOrder.setAddress(order.getReservationAddress());
+            }
             list.add(withdrawOrder);
         }
-        withdrawList.setWithdrawOrder(list);
+        Page<WithdrawOrderVO> page = new Page<>();
+        page.setSize(orderList.getSize());
+        page.setCurrent(orderList.getCurrent());
+        page.setPages(orderList.getPages());
+        page.setTotal(orderList.getTotal());
+        page.setRecords(list);
+        withdrawList.setWithdrawOrder(page);
         return withdrawList;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean confirmWithdraw(Integer orderId, Integer userid) {
-        Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
-        if (null == order) {
-            throw new GlobalException("订单信息异常!");
-        }
-        // 校验提现
-        List<Withdraw> list = this.lambdaQuery().eq(Withdraw::getUserId, userid)
-                .eq(Withdraw::getOrderId, order).list();
-        List<Integer> stateList = list.stream().map(Withdraw::getState).collect(Collectors.toList());
-        if (stateList.contains(Constants.ZERO)) {
-            throw new GlobalException("当前订单已提交提现申请,请等待审核!");
-        } else if (stateList.contains(Constants.ONE)) {
-            throw new GlobalException("当前订单已提现通过!");
-        }
+    public Boolean confirmWithdraw(String orderId, Integer userid) {
         User user = userService.lambdaQuery().eq(User::getId, userid).eq(User::getIsDelete, 0).one();
-        // 系统审核设置
-        WithdrawalSetting setting = adminClient.withdrawProcess().getData();
-        Withdraw withdraw = new Withdraw();
-        if (Constants.ZERO.equals(setting.getEnableProcess())) {
-            withdraw.setState(Constants.ZERO);
-            // todo 商家微信打款至微信零钱
+        if (null == user) {
+            throw new GlobalException("提现失败,登录用户信息异常!");
         }
-        withdraw.setUserId(user.getId());
-        withdraw.setUserPhone(user.getPhone());
-        withdraw.setApplyForTime(new Date());
-        withdraw.setApplyForMoney(order.getOrderMoney());
-        withdraw.setOrderId(orderId);
-        return this.save(withdraw);
+        return withdrawClient.confirmWithdrawByUser(orderId, userid, user.getOpenId(), user.getPhone()).getData();
     }
+
 }

--
Gitblit v1.7.1