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/controller/WithdrawController.java |   51 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 40 insertions(+), 11 deletions(-)

diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
index 69e6061..1e2bd89 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
@@ -1,10 +1,14 @@
 package com.ruoyi.user.controller;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.api.entity.Withdraw;
+import com.ruoyi.order.api.entity.WithdrawDetailVO;
+import com.ruoyi.order.api.feignClient.WithdrawClient;
 import com.ruoyi.system.api.model.LoginUserInfo;
-import com.ruoyi.user.entity.Withdraw;
 import com.ruoyi.user.service.WithdrawService;
 import com.ruoyi.user.vo.WithdrawListVO;
 import io.swagger.annotations.Api;
@@ -17,7 +21,8 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
@@ -36,25 +41,30 @@
     private WithdrawService withdrawService;
     @Resource
     private TokenService tokenService;
+    @Resource
+    private WithdrawClient withdrawClient;
+    @Resource
+    private RedisService redisService;
 
     @GetMapping("/withdrawList")
     @ApiOperation(value = "提现列表", tags = {"用户端-个人中心-提现"})
-    public R<WithdrawListVO> withdrawList() {
+    public R<WithdrawListVO> withdrawList(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
-        return R.ok(withdrawService.withdrawList(loginUser.getUserid()));
+        return R.ok(withdrawService.withdrawList(loginUser.getUserid(), pageNum, pageSize));
     }
 
     @GetMapping("/withdrawDetail")
     @ApiOperation(value = "提现详情", tags = {"用户端-个人中心-提现"})
-    public R<WithdrawListVO> withdrawDetail() {
+    public R<WithdrawDetailVO> withdrawDetail(@RequestParam String orderId) {
         LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
-        return R.ok(withdrawService.withdrawList(loginUser.getUserid()));
+        return withdrawClient.withdrawDetailByUser(orderId);
     }
 
     @GetMapping("/confirmWithdraw")
@@ -62,23 +72,42 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true)
     })
-    public R<Boolean> confirmWithdraw(@RequestParam Integer orderId) {
+
+    public synchronized R<Boolean> confirmWithdraw(@RequestParam String orderId) {
         LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
-        return R.ok(withdrawService.confirmWithdraw(orderId, loginUser.getUserid()));
+        if (redisService.hasKey(orderId)) {
+            return R.fail("该笔订单已申请提现");
+//            return R.repeatedSubmission("请勿重复提交!");
+        }
+        redisService.setCacheObject(orderId, "1", 10L, TimeUnit.SECONDS);
+        Boolean b = withdrawService.confirmWithdraw(orderId, loginUser.getUserid());
+
+        if (b){
+            return R.ok();
+        }else {
+            return R.fail("该笔订单已申请提现");
+        }
     }
 
     @GetMapping("/withdrawRecord")
     @ApiOperation(value = "提现记录", tags = {"用户端-个人中心-提现"})
-    public R<List<Withdraw>> withdrawRecord() {
+    public R<Page<Withdraw>> withdrawRecord(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
-        return R.ok(withdrawService.lambdaQuery().eq(Withdraw::getUserId, loginUser.getUserid())
-                .eq(Withdraw::getIsDelete, 0).orderByDesc(Withdraw::getCreateTime).list());
+        Page<Withdraw> data = withdrawClient.withdrawRecordList(loginUser.getUserid(), pageNum, pageSize).getData();
+        BigDecimal b = BigDecimal.ZERO;
+        if (null != data) {
+            for (Withdraw record : data.getRecords()) {
+                b = b.add(record.getApplyForMoney());
+            }
+        }
+        return R.ok(data);
     }
 
 }

--
Gitblit v1.7.1