package com.winsun.utils;

import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;

public class DesensitizationUtil {

    /**
     * 身份证脱敏，显示后3位
     *
     * @param idNumber
     * @return
     */
    public static String desensitizedIdNumber(String idNumber){
        if (!Strings.isNullOrEmpty(idNumber)) {
            if (idNumber.length() == 15){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2");
            }
            if (idNumber.length() == 18){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2");
            }
        }
        return idNumber;
    }

    /**
     * 身份证脱敏，显示后6位
     *
     * @param idNumber
     * @return
     */
    public static String desensitizedIdNumber2(String idNumber){
        if (!Strings.isNullOrEmpty(idNumber)) {
            if (idNumber.length() == 15){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{6})", "$1******$2");
            }
            if (idNumber.length() == 18){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{6})", "$1*********$2");
            }
        }
        return idNumber;
    }

    /**
     * 手机号脱敏
     *
     * @param phoneNumber
     * @return
     */
    public static String desensitizedPhoneNumber(String phoneNumber){
        if(StringUtils.isNotEmpty(phoneNumber)){
            phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
        }
        return phoneNumber;
    }

    /**
     * 账号
     *
     * @param account
     * @return
     */
    public static String desensitizedAccount(String account){
        if(StringUtils.isNotEmpty(account)){
            account = account.replaceAll("(\\w{3})\\w*(\\w{4})", "$3****");
        }
        return account;
    }
}
