fangyuan
2022-11-17 059eebfe1c54750e74e290ed7503e2cbf3f2f740
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.ycl.utils.common;
 
/**
 * @author Lyq
 * @version 1.0
 * @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));
    }
}