anderx před 7 roky
rodič
revize
700fc26fc4

+ 7 - 6
src/main/java/com/goafanti/common/utils/InvitationCodeUtils.java

@@ -8,14 +8,13 @@ public class InvitationCodeUtils {
 	/** 自定义进制(选择你想要的进制数,不能重复且最好不要0、1这些容易混淆的字符) */
     private static final char[] r=new char[]{'Q', 'W', 'E', '8', 'S', '2', 'D', 'Z', 'X', '9', 'C', '7', 'P', '5', 'K', '3', 'M', 'J', 'U', 'F', 'R', '4', 'V', 'Y', 'T', 'N', '6', 'B', 'G', 'H'};
  
-    /** 定义一个字符用来补全邀请码长度(该字符前面是计算出来的邀请码,后面是用来补全用的) */
-    private static final char b='a';
+ 
  
     /** 进制长度 */
     private static final int binLen=r.length;
  
     /** 邀请码长度 */
-    private static final int s=6;
+    private static final int s=12;
  
     /**
      * 根据ID生成随机码
@@ -25,21 +24,23 @@ public class InvitationCodeUtils {
     public static String toSerialCode(long id) {
         char[] buf=new char[32];
         int charPos=32;
- 
+        System.out.println(id);
         while((id / binLen) > 0) {
             int ind=(int)(id % binLen);
             buf[--charPos]=r[ind];
             id /= binLen;
+            
         }
         buf[--charPos]=r[(int)(id % binLen)];
         String str=new String(buf, charPos, (32 - charPos));
         // 不够长度的自动随机补全
         if(str.length() < s) {
             StringBuilder sb=new StringBuilder();
-            sb.append(b);
+            
             Random rnd=new Random();
-            for(int i=1; i < s - str.length(); i++) {
+            for(int i=1; i <= s - str.length(); i++) {
             sb.append(r[rnd.nextInt(binLen)]);
+            System.out.println(rnd.nextInt(binLen));
             }
             str+=sb.toString();
         }