无关风月
2024-11-12 3ec572e2cb7adf7d33d2018b24c003d9ef18906a
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();
    }