1
zj
2026-01-14 afb9b1cefb1c2d2f57fe8f0f3c19efa354669c66
src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -1,11 +1,10 @@
package com.nq.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.nq.dao.*;
import com.nq.enums.EConfigKey;
import com.nq.enums.EStockType;
import com.nq.enums.EUserAssets;
import com.nq.pojo.*;
@@ -16,16 +15,9 @@
import com.nq.common.ServerResponse;
import com.nq.utils.*;
import com.nq.utils.http.HttpClientUtil;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import javax.annotation.Resource;
@@ -33,7 +25,6 @@
import javax.servlet.http.HttpServletResponse;
import com.nq.utils.timeutil.TimeUtil;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -73,34 +64,19 @@
    AgentUserMapper agentUserMapper;
    @Autowired
    IUserPositionService iUserPositionService;
    @Autowired
    IUserBankService iUserBankService;
    @Autowired
    ISiteSettingService iSiteSettingService;
    @Autowired
    ISiteProductService iSiteProductService;
    @Autowired
                      @Autowired
    UserBankMapper userBankMapper;
    @Autowired
    SiteSettingServiceImpl siteSettingService;
    @Autowired
    IStockConfigServices iStockConfigServices;
    @Autowired
    UserAssetsMapper userAssetsMapper;
    @Resource
    StockTimeSettingMapper stockTimeSettingMapper;
    @Autowired
    TransferResponseService transferResponseService;
    @Transactional(rollbackFor = Exception.class)
    public ServerResponse outMoney(String amt, String with_Pwd,String accsetType,String bankId,HttpServletRequest request) throws Exception {
@@ -122,10 +98,10 @@
            if (user.getIsActive() != 2) {
                return ServerResponse.createByErrorMsg("未实名认证",request);
            }
            UserBank userBank = this.userBankMapper.selectById(bankId);
            if (userBank == null) {
                return ServerResponse.createByErrorMsg("银行卡不存在",request);
            }
//            UserBank userBank = this.userBankMapper.selectById(bankId);
//            if (userBank == null) {
//                return ServerResponse.createByErrorMsg("银行卡不存在",request);
//            }
            if (user.getAccountType().intValue() == 1) {
                return ServerResponse.createByErrorMsg("模拟用户无法提取资金",request);
            }
@@ -134,7 +110,7 @@
                return ServerResponse.createByErrorMsg("最小提现金额:" + siteSetting.getWithMinAmt(),request);
            }
            boolean b = getServerResponse();
            boolean b = getServerResponse(accsetType);
            if (!b) {
                return ServerResponse.createByErrorMsg("提现失败,当前时间已停止提现", request);
            }
@@ -152,12 +128,14 @@
            userWithdraw.setWithAmt(new BigDecimal(amt));
            userWithdraw.setApplyTime(new Date());
            userWithdraw.setWithName(user.getRealName());
            userWithdraw.setBankNo(userBank.getBankNo());
            userWithdraw.setBankName(userBank.getBankName());
            userWithdraw.setBankAddress(userBank.getBankAddress());
            userWithdraw.setBankNo(bankId);
//            userWithdraw.setBankNo(userBank.getBankNo());
//            userWithdraw.setBankName(userBank.getBankName());
//            userWithdraw.setBankAddress(userBank.getBankAddress());
            userWithdraw.setWithStatus(Integer.valueOf(0));
            BigDecimal withfee = siteSetting.getWithFeePercent().multiply(new BigDecimal(amt)).add(new BigDecimal(siteSetting.getWithFeeSingle().intValue()));
            userWithdraw.setWithFee(withfee);
            userWithdraw.setAccsetType(accsetType);
            int insertCount = this.userWithdrawMapper.insert(userWithdraw);
            if (insertCount > 0) {
                return ServerResponse.createBySuccessMsg("提现成功",request);
@@ -172,8 +150,8 @@
    }
    private boolean getServerResponse() {
        StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type", EStockType.MX.getCode()));
    private boolean getServerResponse(String accsetType) {
        StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type", EUserAssets.WITHDRAW.getCode()));
        if (stockTimeSetting == null) {
            return false;
        }
@@ -241,7 +219,7 @@
            User user = this.userMapper.selectById(userWithdraw.getUserId());
            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.MX.getCode(), user.getId());
            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.getDefault().getCode(), user.getId());
            if (userAssets == null) {
                return ServerResponse.createByErrorMsg("用户资金账户不存在");
            }
@@ -355,7 +333,7 @@
            if (user == null) {
                return ServerResponse.createByErrorMsg("用户不存在");
            }
            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.MX.getCode(), user.getId());
            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(userWithdraw.getAccsetType(), user.getId());
            if (userAssets == null) {
                return ServerResponse.createByErrorMsg("用户资金账户不存在");
            }
@@ -435,5 +413,12 @@
    }
    @Override
    public int countPendingWithdraw() {
        com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<UserWithdraw> queryWrapper = new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<>();
        queryWrapper.eq("with_status", 0);
        return this.userWithdrawMapper.selectCount(queryWrapper).intValue();
    }
}