@@ -0,0 +1,56 @@
+package com.goafanti.common.utils;
+
+import java.util.Date;
+import java.util.Random;
+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;
+ /**
+ * 根据ID生成随机码
+ * @param id ID
+ * @return 随机码
+ */
+ public static String toSerialCode(long id) {
+ char[] buf=new char[32];
+ int charPos=32;
+ 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++) {
+ sb.append(r[rnd.nextInt(binLen)]);
+ str+=sb.toString();
+ return str;
+ public static void main(String[] args) {
+ for (int i = 0; i < 100; i++) {
+ System.out.println(toSerialCode(new Date().getTime()));
+}
@@ -125,6 +125,7 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
.setPlatform(Platform.android_ios())
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
+ .setAlert("")
.addPlatformNotification(AndroidNotification.newBuilder()
.addExtra(MESSAGE_ID, mp.getId())
.addExtra(MESSAGE_TITLE, mp.getTitle())