1
zyy3
2025-11-08 993755aece09ef32798c04cfdaf4921cd5572743
src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -6,6 +6,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.nq.dao.*;
import com.nq.enums.EConfigKey;
import com.nq.enums.EUserAssets;
import com.nq.pojo.*;
import com.nq.service.*;
@@ -24,6 +25,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -129,9 +131,9 @@
                return ServerResponse.createByErrorMsg("模拟用户无法提取资金",request);
            }
            SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
            if ((new BigDecimal(amt)).compareTo(new BigDecimal(siteSetting.getWithMinAmt().intValue())) == -1) {
                return ServerResponse.createByErrorMsg("最小提现金额:" + siteSetting.getWithMinAmt(),request);
            }
//            if ((new BigDecimal(amt)).compareTo(new BigDecimal(siteSetting.getWithMinAmt().intValue())) == -1) {
//                return ServerResponse.createByErrorMsg("最小提现金额:" + siteSetting.getWithMinAmt(),request);
//            }
            boolean b = getServerResponse();
            if (!b) {
@@ -172,14 +174,42 @@
    }
    private boolean getServerResponse() {
        StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type", "US"));
        if (stockTimeSetting == null) {
            return false;
        StockConfig stockConfig = iStockConfigServices.queryByKey(EConfigKey.WITHDRAW_TIME_SETTING.getCode());
        return isInTimeRange(stockConfig.getCValue());
    }
    /**
     * 判断当前时间是否在指定的时间区间内
     * @param timeRange 时间区间字符串,格式如:"9:00-18:00"
     * @return 如果在区间内返回true,否则返回false
     */
    public static boolean isInTimeRange(String timeRange) {
        try {
            String[] times = timeRange.split("-");
            if (times.length != 2) {
                throw new IllegalArgumentException("时间格式不正确,应为:HH:mm-HH:mm");
            }
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("H:mm");
            LocalTime startTime = LocalTime.parse(times[0].trim(), formatter);
            LocalTime endTime = LocalTime.parse(times[1].trim(), formatter);
            LocalTime currentTime = LocalTime.now();
            boolean isInRange;
            if (endTime.isBefore(startTime)) {
                // 跨天情况,将结束时间视为次日
                isInRange = !currentTime.isBefore(startTime) || !currentTime.isAfter(endTime);
            } else {
                // 不跨天情况
                isInRange = !currentTime.isBefore(startTime) && !currentTime.isAfter(endTime);
            }
           return isInRange;
        } catch (Exception e) {
            throw new IllegalArgumentException("时间解析错误,请检查格式是否正确", e);
        }
        if (!stockTimeSetting.getWeekDay().contains(String.valueOf(LocalDate.now().getDayOfWeek().getValue()))) {
            return false;
        }
        return TimeUtil.isTradingHour(stockTimeSetting.getAmStartTime(), stockTimeSetting.getAmEndTime(), stockTimeSetting.getPmStartTime(), stockTimeSetting.getPmEndTime());
    }
    public ServerResponse<PageInfo> findUserWithList(String withStatus, HttpServletRequest request, int pageNum, int pageSize) {