package com.ks.app.utils.user;
|
|
import java.math.BigDecimal;
|
|
/**
|
* @author hxh
|
* @title: InviteCodeUtil
|
* @description: 邀请码工具类
|
* @date 2022/4/18 15:25
|
*/
|
public class InviteCodeUtil {
|
|
public static String createInviteCode(Long uid) {
|
return createInviteCode((int) (Math.random() * 10 + 1), uid);
|
}
|
|
|
public static String createInviteCode(int base, Long uid) {
|
|
long num = base * 100000000L + uid;
|
|
return convert10To36(num);
|
}
|
|
|
private static String convert10To36(Long num) {
|
String numbers = "YE9VFA3N6KG7JZH4LD5IO2RBS0QTMPU1WC8X";
|
BigDecimal numBig = new BigDecimal(num);
|
|
int ge = numBig.divideAndRemainder(new BigDecimal(36))[1].intValue();
|
int n = 1;
|
String result = "";
|
result += numbers.charAt(ge);
|
|
while (numBig.divideAndRemainder(new BigDecimal(36).pow(n))[0].compareTo(new BigDecimal(0)) > 0) {
|
int w = numBig.divideAndRemainder(new BigDecimal(36).pow(n))[0].divideAndRemainder(new BigDecimal(36))[1]
|
.intValue();
|
result = numbers.charAt(w) + result;
|
n++;
|
}
|
return result;
|
}
|
|
}
|