| | |
| | | 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()
|
| | | + "/client/threeShareNew?uid=" + uid + "&_=" + java.lang.System.currentTimeMillis());
|
| | | }
|
| | |
|
| | | public static String getInviteCode(Long uid) {
|
| | |
|
| | | long num = 1000000000L + uid;
|
| | |
|
| | | return convert10To36(num);
|
| | | }
|
| | |
|
| | | private static String convert10To36(Long num) {
|
| | | String numbers = "YE9VFA3N6KG7JZH4LD5IO2RBS0QTMPU1WC8X";
|
| | | 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 = filterAlipayAccount(dest.getAccount());
|
| | |
|
| | | dest.setAccount(account);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | }
|
| | |
|
| | | return dest;
|
| | | }
|
| | |
|
| | | public static String filterAlipayAccount(String alipayAccount) {
|
| | | String account = "";
|
| | | if (alipayAccount.indexOf("@") > -1) {// 邮箱
|
| | | int index = alipayAccount.indexOf("@");
|
| | |
|
| | | for (int i = 0; i < alipayAccount.length(); i++) {
|
| | | if (i < 3 || i >= index)
|
| | | account += alipayAccount.charAt(i);
|
| | | else
|
| | | account += "*";
|
| | | }
|
| | | } else if (StringUtil.isMobile(alipayAccount)) {// 电话
|
| | | account = alipayAccount.substring(0, 3) + "*****"
|
| | | + alipayAccount.substring(alipayAccount.length() - 2, alipayAccount.length());
|
| | |
|
| | | } else {// 其他
|
| | | if (alipayAccount.length() >= 6) {
|
| | | for (int i = 0; i < alipayAccount.length(); i++) {
|
| | | if (i < 3 || i >= alipayAccount.length() - 2)
|
| | | account += alipayAccount.charAt(i);
|
| | | else
|
| | | account += "*";
|
| | | }
|
| | | } else {
|
| | | for (int i = 0; i < alipayAccount.length(); i++) {
|
| | | if (i < 1 || i >= alipayAccount.length() - 1)
|
| | | account += alipayAccount.charAt(i);
|
| | | else
|
| | | account += "*";
|
| | | }
|
| | | }
|
| | | }
|
| | | return account;
|
| | | }
|
| | |
|
| | | public static String filterOrderId(String orderId) {
|
| | | if (orderId == null || orderId.length() <= 6)
|
| | | return orderId;
|
| | | if (orderId.length() <= 16) {// 隐藏2位
|
| | | return orderId.substring(0, orderId.length() - 2) + "**";
|
| | | } else {// 隐藏6位
|
| | | return orderId.substring(0, orderId.length() - 6) + "******";
|
| | | }
|
| | | }
|
| | | }
|
| | | package com.yeshi.fanli.util.account; |
| | | |
| | | import java.lang.reflect.InvocationTargetException; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.fanli.vo.user.QQUserInfoVO; |
| | | 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() |
| | | + "/client/threeShareNew?uid=" + uid + "&_=" + java.lang.System.currentTimeMillis()); |
| | | } |
| | | |
| | | public static String getInviteCode(int base, Long uid) { |
| | | |
| | | long num = base * 100000000L + uid; |
| | | |
| | | return convert10To36(num); |
| | | } |
| | | |
| | | private static String convert10To36(Long num) { |
| | | String numbers = "YE9VFA3N6KG7JZH4LD5IO2RBS0QTMPU1WC8X"; |
| | | 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 = filterAlipayAccount(dest.getAccount()); |
| | | |
| | | dest.setAccount(account); |
| | | } |
| | | } catch (Exception e) { |
| | | } |
| | | |
| | | return dest; |
| | | } |
| | | |
| | | public static String filterAlipayAccount(String alipayAccount) { |
| | | String account = ""; |
| | | if (alipayAccount.indexOf("@") > -1) {// 邮箱 |
| | | int index = alipayAccount.indexOf("@"); |
| | | |
| | | for (int i = 0; i < alipayAccount.length(); i++) { |
| | | if (i < 3 || i >= index) |
| | | account += alipayAccount.charAt(i); |
| | | else |
| | | account += "*"; |
| | | } |
| | | } else if (StringUtil.isMobile(alipayAccount)) {// 电话 |
| | | account = alipayAccount.substring(0, 3) + "*****" |
| | | + alipayAccount.substring(alipayAccount.length() - 2, alipayAccount.length()); |
| | | |
| | | } else {// 其他 |
| | | if (alipayAccount.length() >= 6) { |
| | | for (int i = 0; i < alipayAccount.length(); i++) { |
| | | if (i < 3 || i >= alipayAccount.length() - 2) |
| | | account += alipayAccount.charAt(i); |
| | | else |
| | | account += "*"; |
| | | } |
| | | } else { |
| | | for (int i = 0; i < alipayAccount.length(); i++) { |
| | | if (i < 1 || i >= alipayAccount.length() - 1) |
| | | account += alipayAccount.charAt(i); |
| | | else |
| | | account += "*"; |
| | | } |
| | | } |
| | | } |
| | | return account; |
| | | } |
| | | |
| | | public static String filterAlipayName(String name) { |
| | | String st = ""; |
| | | for (int i = 0; i < name.length(); i++) { |
| | | if (i == 0) |
| | | st += name.charAt(i); |
| | | else |
| | | st += "*"; |
| | | } |
| | | return st; |
| | | } |
| | | |
| | | public static String filterOrderId(String orderId) { |
| | | if (orderId == null || orderId.length() <= 6) |
| | | return orderId; |
| | | if (orderId.length() <= 16) {// 隐藏2位 |
| | | return orderId.substring(0, orderId.length() - 2) + "**"; |
| | | } else {// 隐藏6位 |
| | | return orderId.substring(0, orderId.length() - 6) + "******"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 解析QQ用户信息 |
| | | * |
| | | * @param qqUserBase64 |
| | | * @return |
| | | */ |
| | | public static QQUserInfoVO parseQQUser(String qqUserBase64) { |
| | | if (StringUtil.isNullOrEmpty(qqUserBase64)) |
| | | return null; |
| | | String qqUserStr = StringUtil.getFromBase64(qqUserBase64); |
| | | if (StringUtil.isNullOrEmpty(qqUserStr)) |
| | | return null; |
| | | QQUserInfoVO qqUserInfo = new Gson().fromJson(qqUserStr, QQUserInfoVO.class); |
| | | return qqUserInfo; |
| | | } |
| | | } |