package com.sckw.payment.utils;

import com.sckw.core.exception.BusinessException;
import com.sckw.system.api.RemoteSystemService;
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.config.annotation.DubboReference;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Aick Spt
 * @date 2023-07-20 17:18
 */
public class CommonValidator {

    // 时间格式的正则表达式
    private static final String TIME_PATTERN = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}";

    /**
     * 判断时间段的开始时间和结束时间是否同时存在或同时不存在，且格式为 yyyy-MM-dd HH:mm:ss
     *
     * @param startTime 时间段的开始时间
     * @param endTime   时间段的结束时间
     * @return 如果格式正确且同时存在返回 true，否则返回 false
     * @author Aick Spt
     * @date 2023-07-20 17:19
     */
    public static boolean isValidTimeRange(String startTime, String endTime) {
        // 使用正则表达式匹配时间格式
        if (StringUtils.isBlank(startTime) && StringUtils.isBlank(endTime)) {
            return true;
        }
        Pattern pattern = Pattern.compile(TIME_PATTERN);
        Matcher startMatcher = pattern.matcher(startTime);
        Matcher endMatcher = pattern.matcher(endTime);

        // 检查开始时间和结束时间是否同时存在，并且格式符合要求
        return startMatcher.matches() && endMatcher.matches();
    }

    public static void isValidCoexisting(String startCreateTime, String endCreateTime, String msg) {
        if (!((startCreateTime == null && endCreateTime == null) || (startCreateTime != null && endCreateTime != null))) {
            throw new BusinessException("请正确填写" + (StringUtils.isNotBlank(msg) ? msg : "开始和结束时间"));
        }
    }


}
