package com.czg.utils;

import cn.hutool.core.text.PasswdStrength;
import cn.hutool.core.util.StrUtil;
import com.czg.exception.CzgException;

import java.time.LocalDate;

/**
 * @author ww
 * @description
 */
public class CzgStrUtils {

    /**
     * 如果str为空，返回null，否则返回str
     * flex sql查询时 自动忽略null 不忽略''
     */
    public static String getStrOrNull(String str) {
        return StrUtil.isNotBlank(str) ? str : null;
    }


    /**
     * 获取当天是周几
     *
     * @return 周几
     */
    public static String getStrWeek() {
        int dayOfWeek = LocalDate.now().getDayOfWeek().getValue();

        // 定义汉字星期数组（索引0不用，从1开始对应周一到周日）
        String[] chineseWeeks = {"无", "一", "二", "三", "四", "五", "六", "日"};

        return "周" + chineseWeeks[dayOfWeek];
    }

    public static void checkPwd(String pwd) {
        if (StrUtil.isBlank(pwd)) {
            throw new CzgException("密码不能为空");
        }
        if (pwd.length() < 6) {
            throw new CzgException("密码长度不能小于6");
        }
        PasswdStrength.PASSWD_LEVEL level = PasswdStrength.getLevel(pwd);
        if (level == PasswdStrength.PASSWD_LEVEL.EASY) {
            throw new CzgException("密码强度弱，需包含字母、数字、特殊符号中至少两种");
        }
    }
}
