puzhibing
2025-01-13 acccff9860b271d55c55dc87486f7c20b9896e6c
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
@@ -16,6 +16,7 @@
import com.ruoyi.account.util.payment.model.SinglePay;
import com.ruoyi.account.util.payment.model.SinglePayCallbackResult;
import com.ruoyi.account.util.payment.model.SinglePayResult;
import com.ruoyi.account.vo.WithdrawalAuth;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import io.swagger.annotations.Api;
@@ -78,27 +79,29 @@
    
    @PostMapping("/auth")
    @ApiOperation(value = "提现申请审批", tags = {"后台"})
    public R auth(@RequestParam Long id,@ApiParam("2'审核通过',3'审核拒绝'") Integer auditStatus){
        WithdrawalRequests withdrawal = withdrawalRequestsService.getById(id);
    public R auth(@RequestBody WithdrawalAuth withdrawalAuth){
        WithdrawalRequests withdrawal = withdrawalRequestsService.getById(withdrawalAuth.getId());
        BigDecimal withdrawalAmount = withdrawal.getWithdrawalAmount();
        if(withdrawal.getAuditStatus() != 1){
            return R.fail("不能重复审核");
        }
        Integer auditStatus = withdrawalAuth.getAuditStatus();
        if (auditStatus==2){
            //先检查账户余额是否充足
            AccountBalanceQueryResult accountBalanceQueryResult = TransferUtil.accountBalanceQuery();
            if(null == accountBalanceQueryResult){
                return R.fail("查询账户余额出错");
            }
            Double useAbleSettAmount = accountBalanceQueryResult.getUseAbleSettAmount();
            if(useAbleSettAmount < withdrawal.getArrivalAmount().doubleValue()){
                return R.fail("账户可用余额不足,请先补充账户余额");
            }
            //执行转账操作
            if(withdrawal.getWithdrawalMethod() == 2){
                //先检查账户余额是否充足
                AccountBalanceQueryResult accountBalanceQueryResult = TransferUtil.accountBalanceQuery();
                if(null == accountBalanceQueryResult){
                    return R.fail("查询账户余额出错");
                }
                Double useAbleSettAmount = accountBalanceQueryResult.getUseAbleSettAmount();
                //计算代付手续费
                if(useAbleSettAmount < (withdrawal.getArrivalAmount().doubleValue() + 1)){
                    return R.fail("账户可用余额不足,请先补充账户余额");
                }
                //银行卡转账
                SinglePay singlePay = new SinglePay();
                singlePay.setTradeMerchantNo("");
                singlePay.setTradeMerchantNo(TransferUtil.sysTradeMerchantNo);
                singlePay.setMerchantOrderNo(withdrawal.getId().toString());
                singlePay.setReceiverAccountNoEnc(withdrawal.getBankCardNumber());
                singlePay.setReceiverNameEnc(withdrawal.getAccountHolder());
@@ -114,6 +117,7 @@
                withdrawal.setStatus(1);
            }else{
                //微信转账
                return R.fail("微信转账开发中");
            }
        }
        if(3 == auditStatus){
@@ -153,7 +157,7 @@
    @PostMapping("/withdrawalCallback")
    public Object withdrawalCallback(@RequestBody SinglePayCallbackResult singlePayCallbackResult){
        Integer status = singlePayCallbackResult.getStatus();
        if(203 == status){
        if(203 == status || 205 == status){
            String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
            WithdrawalRequests withdrawalRequests = withdrawalRequestsService.getById(merchantOrderNo);
            if(1 == withdrawalRequests.getStatus()){