From 3ec572e2cb7adf7d33d2018b24c003d9ef18906a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 12 十一月 2024 13:32:51 +0800
Subject: [PATCH] 代码提交

---
 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java
index b8f3b23..74a927a 100644
--- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java
+++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java
@@ -6,14 +6,17 @@
 import com.alibaba.nacos.common.utils.UuidUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xinquan.common.core.constant.CacheConstants;
 import com.xinquan.common.core.domain.R;
 import com.xinquan.common.core.utils.WebUtils;
 import com.xinquan.common.core.utils.page.CollUtils;
 import com.xinquan.common.core.utils.page.PageDTO;
 import com.xinquan.common.log.enums.BusinessType;
+import com.xinquan.common.redis.service.RedisService;
 import com.xinquan.common.security.service.TokenService;
 import com.xinquan.course.api.domain.Course;
 import com.xinquan.order.api.domain.Order;
+import com.xinquan.system.api.domain.AppUserWalletRecord;
 import com.xinquan.user.api.domain.dto.OrderListDTO;
 import com.xinquan.system.api.domain.AppUser;
 import com.xinquan.system.api.domain.AppUserBank;
@@ -22,6 +25,7 @@
 import com.xinquan.user.domain.export.WithdrawExport;
 import com.xinquan.user.service.AppUserBankService;
 import com.xinquan.user.service.AppUserService;
+import com.xinquan.user.service.AppUserWalletRecordService;
 import com.xinquan.user.service.AppUserWithdrawService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -63,9 +67,13 @@
     private AppUserBankService appUserBankService;
     @Autowired
     private TokenService tokenService;
+    @Resource
+    private AppUserWalletRecordService appUserWalletRecordService;
+    @Autowired
+    private RedisService redisService;
 
     @PostMapping("/withdrawList")
-    @ApiOperation(value = "提现列表-分页", tags = {"管理后台=提现管理"})
+    @ApiOperation(value = "提现列表-分页", tags = {"管理后台-提现管理"})
     public R<PageDTO<AppUserWithdraw>> withdrawList(@RequestBody OrderListDTO courseDTO) {
         LambdaQueryWrapper<AppUserWithdraw> wrapper = new LambdaQueryWrapper<>();
         if (StringUtils.hasLength(courseDTO.getBuyContent())){
@@ -75,11 +83,15 @@
             List<Long> collect = appUserService.lambdaQuery().like(AppUser::getCellPhone, courseDTO.getUserNameOrPhone())
                     .list().stream().map(AppUser::getId)
                     .collect(Collectors.toList());
+            List<Long> collect1 = appUserService.lambdaQuery().like(AppUser::getNickname, courseDTO.getUserNameOrPhone())
+                    .list().stream().map(AppUser::getId)
+                    .collect(Collectors.toList());
+            collect.addAll(collect1);
             if (collect.isEmpty())collect.add(-1L);
             wrapper.in(AppUserWithdraw::getAppUserId,collect);
         }
         if (courseDTO.getPaymentStatus()!=null && courseDTO.getPaymentStatus()==1){
-            wrapper.eq(AppUserWithdraw::getId,0);
+            wrapper.eq(AppUserWithdraw::getWithdrawStatus,0);
         }else if (courseDTO.getPaymentStatus()!=null &&(courseDTO.getPaymentStatus()==2 || courseDTO.getPaymentStatus()==3)){
             List<Integer> integers = new ArrayList<>();
             integers.add(1);
@@ -90,8 +102,8 @@
             String startTime =null;
             String endTime =null;
             String[] split = courseDTO.getTime().split(" - ");
-            startTime = split[0]+"00:00:00";
-            endTime = split[1]+"23:59:59";
+            startTime = split[0]+" 00:00:00";
+            endTime = split[1]+" 23:59:59";
             wrapper.between(AppUserWithdraw::getWithdrawTime,startTime,endTime);
         }
         Page<AppUserWithdraw> list = withdrawService.page(new Page<>(courseDTO.getPageCurr(), courseDTO.getPageSize()), wrapper);
@@ -249,6 +261,12 @@
             return R.tokenError("登录失效");
         }
         Long userId = loginUser.getUserid();
+        AppUser byId = appUserService.getById(userId);
+        if (byId.getBalance().compareTo(new BigDecimal(money))<0){
+            return R.fail("提现金额不能超过钱包余额");
+        }
+        byId.setBalance(byId.getBalance().subtract(new BigDecimal(money)));
+        appUserService.updateById(byId);
         BigDecimal bigDecimal = new BigDecimal(money);
         AppUserWithdraw appUserWithdraw = new AppUserWithdraw();
         appUserWithdraw.setAppUserId(userId);
@@ -262,6 +280,15 @@
         appUserWithdraw.setWithdrawTime(LocalDateTime.now());
         appUserWithdraw.setCreateTime(LocalDateTime.now());
         withdrawService.save(appUserWithdraw);
+        // 先扣去余额
+        AppUserWalletRecord appUserWalletRecord = new AppUserWalletRecord();
+        appUserWalletRecord.setAppUserId(userId);
+        appUserWalletRecord.setChangeType(2);
+        appUserWalletRecord.setReason("提现");
+        appUserWalletRecord.setOrderId(appUserWithdraw.getId());
+        appUserWalletRecord.setAmount(new BigDecimal(money));
+        appUserWalletRecordService.save(appUserWalletRecord);
+
         return R.ok();
     }
     @PostMapping("/addBank")
@@ -274,6 +301,14 @@
         Long userId = loginUser.getUserid();
 
         appUserWithdraw.setAppUserId(userId);
+//        Boolean flag = redisService.hasKey(CacheConstants.ADD_CARD_PHONE_CODE_PREFIX + appUserWithdraw.getCellPhone());
+//        if(!flag){
+//            return R.fail("验证码已失效,请重新获取");
+//        }
+//        String code = redisService.getCacheObject(CacheConstants.ADD_CARD_PHONE_CODE_PREFIX + appUserWithdraw.getCellPhone());
+//        if (!appUserWithdraw.getCode().equals(code)) {
+//            return R.fail("验证码不正确");
+//        }
         appUserBankService.save(appUserWithdraw);
         return R.ok();
     }

--
Gitblit v1.7.1