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 filterBindingAccount(List bindingAccountList) { List 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; } }