From 05310607f12eb6584c31f8cb91d01f8f15afa6c4 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 22 四月 2025 16:42:36 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/JiaDianHuiShou into dev --- ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java | 73 ++++++++++++++++++++++++++++-------- 1 files changed, 56 insertions(+), 17 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 fe44f94..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.system.api.model.LoginUser; -import com.ruoyi.user.entity.Withdraw; +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.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> @@ -29,46 +34,80 @@ */ @RestController @RequestMapping("/withdraw") -@Api(tags = {"用户端-提现"}) +@Api(tags = {"用户端-个人中心-提现"}) public class WithdrawController { @Resource private WithdrawService withdrawService; @Resource private TokenService tokenService; + @Resource + private WithdrawClient withdrawClient; + @Resource + private RedisService redisService; @GetMapping("/withdrawList") - @ApiOperation(value = "提现列表", tags = {"用户端-个人中心"}) - public R<WithdrawListVO> withdrawList() { - LoginUser loginUser = tokenService.getLoginUserByUser(); + @ApiOperation(value = "提现列表", tags = {"用户端-个人中心-提现"}) + 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<WithdrawDetailVO> withdrawDetail(@RequestParam String orderId) { + LoginUserInfo loginUser = tokenService.getLoginUserByUser(); + if (null == loginUser) { + return R.loginExpire("登录失效!"); + } + return withdrawClient.withdrawDetailByUser(orderId); } @GetMapping("/confirmWithdraw") - @ApiOperation(value = "确认提现", tags = {"用户端-个人中心"}) + @ApiOperation(value = "确认提现", tags = {"用户端-个人中心-提现"}) @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true) }) - public R<Boolean> confirmWithdraw(@RequestParam Integer orderId) { - LoginUser loginUser = tokenService.getLoginUserByUser(); + + 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() { - LoginUser loginUser = tokenService.getLoginUserByUser(); + @ApiOperation(value = "提现记录", tags = {"用户端-个人中心-提现"}) + 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