/*
 * 文 件 名:  MessageIdGenerator
 * 版    权:  华设设计集团股份有限公司
 * 描    述:  <描述>
 * 修 改 人:  lvwenbin
 * 修改时间:  2025/2/27
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.ruoyi.ems.util;

import java.util.concurrent.ThreadLocalRandom;

/**
 * 消息ID生成器
 * <功能详细描述>
 *
 * @author lvwenbin
 * @version [版本号, 2025/2/27]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public abstract class IdUtils {
    // 包含数字、大小写字母的字符池
    private static final String CHAR_POOL = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    // 生成消息ID
    public static String generateMessageId() {
        ThreadLocalRandom random = ThreadLocalRandom.current();
        // 生成8-16位随机长度
        int length = random.nextInt(8, 17);
        StringBuilder sb = new StringBuilder(length);

        for (int i = 0; i < length; i++) {
            int index = random.nextInt(CHAR_POOL.length());
            sb.append(CHAR_POOL.charAt(index));
        }
        return sb.toString();
    }
}