package com.yeshi.fanli.util.account;
|
|
import java.lang.reflect.InvocationTargetException;
|
import java.math.BigDecimal;
|
|
import org.apache.commons.beanutils.PropertyUtils;
|
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
|
public class UserUtil {
|
|
/**
|
* 处理输出给客户端的用户信息
|
*
|
* @param user
|
* @return
|
*/
|
public static UserInfo filterForClientUser(UserInfo user) {
|
if (user == null)
|
return user;
|
|
UserInfo newUser = new UserInfo();
|
try {
|
PropertyUtils.copyProperties(newUser, user);
|
} catch (IllegalAccessException e1) {
|
e1.printStackTrace();
|
} catch (InvocationTargetException e1) {
|
e1.printStackTrace();
|
} catch (NoSuchMethodException e1) {
|
e1.printStackTrace();
|
}
|
|
if (!StringUtil.isNullOrEmpty(user.getPhone())) {
|
if (user.getPhone().length() > 5) {
|
String phone = user.getPhone().substring(0, 3);
|
phone += "******";
|
phone += user.getPhone().substring(user.getPhone().length() - 2, user.getPhone().length());
|
newUser.setPhone(phone);
|
}
|
}
|
|
if (user != null) {
|
newUser.setRankIcon(UserUtil.getRankIcon(user.getRank()));
|
newUser.setRankNamePicture(UserUtil.getRankNamePicture(user.getRank()));
|
}
|
|
return newUser;
|
}
|
|
public static String getRankIcon(Integer rank) {
|
if (rank == null)
|
return "";
|
if (rank == 0)
|
return "";
|
else
|
return String.format(Constant.systemCommonConfig.getBaseUserRankIconUrl() + "/rank_icon_%s.png", rank + "");
|
}
|
|
public static String getRankNamePicture(Integer rank) {
|
if (rank == null)
|
rank = 0;
|
|
return String.format(Constant.systemCommonConfig.getBaseUserRankIconUrl() + "/rank_picture_%s.png", rank + "");
|
}
|
|
public static String getInviteCode(Long uid) {
|
|
long num = 1000000000L + uid;
|
|
return convert10To36(num);
|
}
|
|
private static String convert10To36(Long num) {
|
String numbers = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
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;
|
}
|
|
}
|