Skip to content

一些通用代码

Response的封装

代码

java
@AllArgsConstructor
@NoArgsConstructor
@Data
public class BaseResponse<T> {
    private int code;
    private String msg;
    private T data;

    public BaseResponse<T> code(ResponseStatusEnum statusEnum) {
        this.code = statusEnum.getStatusCode();
        return this;
    }

    public BaseResponse<T> msg(String msg) {
        this.msg = msg;
        return this;
    }

    public BaseResponse<T> data(T data) {
        this.data = data;
        return this;
    }

    public BaseResponse<T> build() {
        return this;
    }

    public BaseResponse<T> success() {
        return new BaseResponse<T>()
                .code(ResponseStatusEnum.OK)
                .msg(ResponseStatusEnum.OK.getDescription())
                .data(null)
                .build();

    }

    public BaseResponse<T> success(ResponseStatusEnum statusEnum) {
        return new BaseResponse<T>()
                .code(statusEnum)
                .msg(statusEnum.getDescription())
                .data(null)
                .build();

    }

    public BaseResponse<T> success(String msg) {
        return new BaseResponse<T>()
                .code(ResponseStatusEnum.OK)
                .msg(msg)
                .data(null)
                .build();
    }

    public BaseResponse<T> success(T data) {
        return new BaseResponse<T>()
                .code(ResponseStatusEnum.OK)
                .msg(msg)
                .data(data)
                .build();
    }

    public BaseResponse<T> error() {
        return new BaseResponse<T>()
                .code(ResponseStatusEnum.ERROR)
                .msg(ResponseStatusEnum.ERROR.getDescription())
                .data(null)
                .build();
    }

    public BaseResponse<T> error(ResponseStatusEnum statusEnum) {
        return new BaseResponse<T>()
                .code(statusEnum)
                .msg(statusEnum.getDescription())
                .data(null)
                .build();
    }

    public BaseResponse<T> error(String msg) {
        return new BaseResponse<T>()
                .code(ResponseStatusEnum.ERROR)
                .msg(msg)
                .data(null)
                .build();
    }

    public BaseResponse<T> callBack(ResponseStatusEnum statusEnum,String msg,T data){
        return new BaseResponse<T>()
                .code(statusEnum)
                .msg(msg)
                .data(data)
                .build();
    }

}

随机数生成工具

java


public class RandomStringUtils {
    private static final String NUMBERS = "0123456789";
    private static final String LOWERCASE_LETTERS = "abcdefghijklmnopqrstuvwxyz";
    private static final String UPPERCASE_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    private static final String ALL_CHARACTERS = NUMBERS + LOWERCASE_LETTERS + UPPERCASE_LETTERS;
    private static final SecureRandom SECURE_RANDOM = new SecureRandom();

    // 私有构造器,防止实例化
    private RandomStringUtils() {
    }

    /**
     * 生成指定长度的随机字符串(包含大小写字母和数字)
     *
     * @param length 长度(必须≥1)
     * @return 随机字符串
     */
    public static String generateMixed(int length) {
        return generate(length, true, true, true);
    }

    /**
     * 生成指定长度的纯数字字符串
     *
     * @param length 长度(必须≥1)
     * @return 数字字符串
     */
    public static String generateNumbers(int length) {
        return generate(length, false, false, true);
    }

    /**
     * 生成指定长度的纯小写字母字符串
     *
     * @param length 长度(必须≥1)
     * @return 小写字母字符串
     */
    public static String generateLowercase(int length) {
        return generate(length, true, false, false);
    }

    /**
     * 生成指定长度的纯大写字母字符串
     *
     * @param length 长度(必须≥1)
     * @return 大写字母字符串
     */
    public static String generateUppercase(int length) {
        return generate(length, false, true, false);
    }

    /**
     * 生成自定义组合的随机字符串
     *
     * @param length         长度(必须≥1)
     * @param includeLower   是否包含小写字母
     * @param includeUpper   是否包含大写字母
     * @param includeNumbers 是否包含数字
     * @return 自定义组合的随机字符串
     */
    public static String generate(int length, boolean includeLower, boolean includeUpper, boolean includeNumbers) {
        if (length < 1) {
            throw new ServiceException("生成自定义组合的随机字符串 长度必须≥1");
        }

        // 构建可用字符集
        StringBuilder charSet = new StringBuilder();
        if (includeLower) {
            charSet.append(LOWERCASE_LETTERS);
        }
        if (includeUpper) {
            charSet.append(UPPERCASE_LETTERS);
        }
        if (includeNumbers) {
            charSet.append(NUMBERS);
        }

        if (charSet.length() == 0) {
            throw new ServiceException("生成自定义组合的随机字符串 必须选择至少一种字符类型");
        }

        // 使用SecureRandom生成安全随机数(适合敏感场景)
        char[] buffer = new char[length];
        for (int i = 0; i < length; i++) {
            int index = SECURE_RANDOM.nextInt(charSet.length());
            buffer[i] = charSet.charAt(index);
        }
        return new String(buffer);
    }

}
最近更新