package com.yeshi.fanli.util.account;
|
|
import java.lang.reflect.InvocationTargetException;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.apache.commons.beanutils.PropertyUtils;
|
import org.yeshi.utils.HttpUtil;
|
|
import com.yeshi.fanli.entity.bus.user.BindingAccount;
|
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 getInviteShortLink (Long uid) {
|
return HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
|
+ Constant.systemCommonConfig.getProjectName() + "/"
|
+ java.lang.System.currentTimeMillis()+
|
"/client/threeShareNew?uid=" + uid);
|
}
|
|
|
|
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;
|
}
|
|
/**
|
* 过滤支付宝账号,中间用*代替
|
*
|
* @param bindingAccountList
|
* @return
|
*/
|
public static List<BindingAccount> filterBindingAccount(List<BindingAccount> bindingAccountList) {
|
List<BindingAccount> accountList = new ArrayList<>();
|
|
if (bindingAccountList != null)
|
for (BindingAccount bindingAccount : bindingAccountList) {
|
accountList.add(filterBindingAccount(bindingAccount));
|
}
|
return accountList;
|
}
|
|
public static BindingAccount filterBindingAccount(BindingAccount bindingAccount) {
|
|
BindingAccount dest = new BindingAccount();
|
try {
|
PropertyUtils.copyProperties(dest, bindingAccount);
|
if (!StringUtil.isNullOrEmpty(dest.getAccount()) && !StringUtil.isNullOrEmpty(dest.getName())) {
|
String name = "";
|
if ((dest.getName() + "").length() > 2)
|
for (int i = 0; i < (dest.getName() + "").length(); i++) {
|
if (i == 0)
|
name += dest.getName().charAt(i);
|
else
|
name += "*";
|
}
|
else
|
name = dest.getName().charAt(0) + "*";
|
dest.setName(name);
|
|
String account = "";
|
if (dest.getAccount().indexOf("@") > -1) {// 邮箱
|
int index = dest.getAccount().indexOf("@");
|
|
for (int i = 0; i < dest.getAccount().length(); i++) {
|
if (i < 3 || i >= index)
|
account += dest.getAccount().charAt(i);
|
else
|
account += "*";
|
}
|
} else if (StringUtil.isMobile(dest.getAccount())) {// 电话
|
account = dest.getAccount().substring(0, 3) + "*****"
|
+ dest.getAccount().substring(dest.getAccount().length() - 2, dest.getAccount().length());
|
|
} else {// 其他
|
if (dest.getAccount().length() >= 6) {
|
for (int i = 0; i < dest.getAccount().length(); i++) {
|
if (i < 3 || i >= dest.getAccount().length() - 2)
|
account += dest.getAccount().charAt(i);
|
else
|
account += "*";
|
}
|
} else {
|
for (int i = 0; i < dest.getAccount().length(); i++) {
|
if (i < 1 || i >= dest.getAccount().length() - 1)
|
account += dest.getAccount().charAt(i);
|
else
|
account += "*";
|
}
|
}
|
}
|
|
dest.setAccount(account);
|
}
|
} catch (Exception e) {
|
}
|
|
return dest;
|
}
|
|
}
|