package com.younike.common.utils.id;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;

/**
 * 服务编号生成器
 *
 * @author dailiang
 */
public class GoodsIndexGenerate {
    /**
     * 生成服务编号（18位）
     * 前缀(FW) + 年月日时间字符串 + 8位随机数
     * @return 服务编号
     */
    public static String getGoodsIndex() {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        // 若传入的商家不是定义好的类型，则返回临时商家编号
        return "FW" + LocalDateTime.now().format(dateTimeFormatter) + getRandomNumStr(8);
    }

    /**
     * 生成strLength位随机数字符串
     *
     * @return
     */
    private static String getRandomNumStr(int strLength) {
        String randomStr = String.valueOf(new Random().nextInt(100000000));
        while (randomStr.length() < strLength) {
            String pow = String.valueOf(Math.pow(10, strLength - randomStr.length()));
            if (pow.contains(".")) {
                pow = pow.substring(0, pow.indexOf("."));
            }
            randomStr = randomStr + new Random().nextInt(Integer.parseInt(pow));
        }
        return randomStr;
    }

}
