zhanghua
2023-09-08 7ef4892f9f24f941aca37e6b3991b808a0aca619
ycl-common/src/main/java/com/ycl/utils/common/RandomUtils.java
@@ -6,4 +6,82 @@
 * @date 2022/9/7
 */
public class RandomUtils {
    /**
     * 用户名
     */
    private static final String NICK_NAME = "NK";
    /**
     * 标记长度
     */
    public static final int SIGN_LENGTH = 6;
    /**
     * 标记格式化格式化字符串
     */
    private static final String FORMT_STRING = "888888";
    private static final String FORMT_STRING_0 = "000000";
    /**
     * 获取用户名
     *
     * @param userId
     * @return
     */
    public static String getUserId(long userId) {
        return NICK_NAME + formatSign(userId)
                + generateRandomInt(SIGN_LENGTH);
    }
    /**
     * 格式化标记
     *
     * @return4
     */
    public static String formatSign(Integer param, Integer lenght) {
        String str = Long.toString(param);
        int length = str.length() - lenght;
        if (length == 0) {
            return str;
        } else if (length < 0) {
            str = "0" + str;
            return FORMT_STRING_0.substring(0, Math.abs(length) - 1) + str;
        } else {
            return str.substring(length);
        }
    }
    /**
     * 格式化标记
     *
     * @return4
     */
    private static String formatSign(long param) {
        String str = Long.toString(param);
        int length = str.length() - SIGN_LENGTH;
        if (length == 0) {
            return str;
        } else if (length < 0) {
            str = "0" + str;
            return FORMT_STRING.substring(0, Math.abs(length) - 1) + str;
        } else {
            return str.substring(length);
        }
    }
    /**
     * 获取指定长度(1位到9位)的随机数字字符串
     *
     * @param length 大于1  小于9
     * @return
     */
    public static String generateRandomInt(int length) {
        length = length < 1 ? 1 : length;
        length = length > 9 ? 9 : length;
        int max = ((int) Math.pow(10, length)) - 1;
        int min = (int) Math.pow(10, length - 1);
        return String.valueOf((int) (Math.random() * (max - min) + min));
    }
}