修改耗材代码生成规则
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
package cn.ysk.cashier.utils;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* @author admin
|
||||
* @description 随机编码生成工具类
|
||||
* @date 2020-11-24 16:07
|
||||
* @menu
|
||||
*/
|
||||
public class StringCodeUtil {
|
||||
public static enum TYPE {
|
||||
/**
|
||||
* 字符型
|
||||
*/
|
||||
LETTER,
|
||||
/**
|
||||
* 大写字符型
|
||||
*/
|
||||
CAPITAL,
|
||||
/**
|
||||
* 数字型
|
||||
*/
|
||||
NUMBER,
|
||||
/**
|
||||
* 符号型
|
||||
*/
|
||||
SIGN,
|
||||
/**
|
||||
* 大+小字符 型
|
||||
*/
|
||||
LETTER_CAPITAL,
|
||||
/**
|
||||
* 小字符+数字 型
|
||||
*/
|
||||
LETTER_NUMBER,
|
||||
/**
|
||||
* 大+小字符+数字 型
|
||||
*/
|
||||
LETTER_CAPITAL_NUMBER,
|
||||
/**
|
||||
* 大+小字符+数字+符号 型
|
||||
*/
|
||||
LETTER_CAPITAL_NUMBER_SIGN
|
||||
}
|
||||
|
||||
private static String[] lowercase = {
|
||||
"a","b","c","d","e","f","g","h","i","j","k",
|
||||
"l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
|
||||
|
||||
private static String[] capital = {
|
||||
"A","B","C","D","E","F","G","H","I","J","K",
|
||||
"L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
|
||||
|
||||
private static String[] number = {
|
||||
"1","2","3","4","5","6","7","8","9","0"};
|
||||
|
||||
private static String[] sign = {
|
||||
"~","!","@","#","$","%","^","&","*","(",")","_","+","`","-","=",
|
||||
"{","}","|",":","\"","<",">","?",
|
||||
"[","]","\\",";","'",",",".","/"};
|
||||
|
||||
/**
|
||||
* 静态随机数
|
||||
*/
|
||||
private static Random random = new Random();
|
||||
|
||||
|
||||
/**
|
||||
* 获取随机组合码
|
||||
* @param num 位数
|
||||
* @param type 类型
|
||||
* @type
|
||||
* <br>字符型 LETTER,
|
||||
* <br>大写字符型 CAPITAL,
|
||||
* <br>数字型 NUMBER,
|
||||
* <br>符号型 SIGN,
|
||||
* <br>大+小字符型 LETTER_CAPITAL,
|
||||
* <br>小字符+数字 型 LETTER_NUMBER,
|
||||
* <br>大+小字符+数字 型 LETTER_CAPITAL_NUMBER,
|
||||
* <br>大+小字符+数字+符号 型 LETTER_CAPITAL_NUMBER_SIGN
|
||||
*/
|
||||
public static String getRandom(int num,TYPE type){
|
||||
ArrayList<String> temp = new ArrayList<String>();
|
||||
StringBuffer code = new StringBuffer();
|
||||
if(type == TYPE.LETTER){
|
||||
temp.addAll(Arrays.asList(lowercase));
|
||||
}else if(type == TYPE.CAPITAL){
|
||||
temp.addAll(Arrays.asList(capital));
|
||||
}else if(type == TYPE.NUMBER){
|
||||
temp.addAll(Arrays.asList(number));
|
||||
}else if(type == TYPE.SIGN){
|
||||
temp.addAll(Arrays.asList(sign));
|
||||
}else if(type == TYPE.LETTER_CAPITAL){
|
||||
temp.addAll(Arrays.asList(lowercase));
|
||||
temp.addAll(Arrays.asList(capital));
|
||||
}else if(type == TYPE.LETTER_NUMBER){
|
||||
temp.addAll(Arrays.asList(lowercase));
|
||||
temp.addAll(Arrays.asList(number));
|
||||
}else if(type == TYPE.LETTER_CAPITAL_NUMBER){
|
||||
temp.addAll(Arrays.asList(lowercase));
|
||||
temp.addAll(Arrays.asList(capital));
|
||||
temp.addAll(Arrays.asList(number));
|
||||
}else if(type == TYPE.LETTER_CAPITAL_NUMBER_SIGN){
|
||||
temp.addAll(Arrays.asList(lowercase));
|
||||
temp.addAll(Arrays.asList(capital));
|
||||
temp.addAll(Arrays.asList(number));
|
||||
temp.addAll(Arrays.asList(sign));
|
||||
}
|
||||
for (int i = 0; i < num; i++) {
|
||||
code.append(temp.get(random.nextInt(temp.size())));
|
||||
}
|
||||
return code.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 手机掩码
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
public static String maskPhone(String phone){
|
||||
return wordMask(phone,3,4,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* 身份证掩码
|
||||
* @param idCardNo
|
||||
* @return
|
||||
*/
|
||||
public static String maskIdCardNo(String idCardNo){
|
||||
return wordMask(idCardNo,3,3,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* 真实姓名掩码
|
||||
* @param realName
|
||||
* @return
|
||||
*/
|
||||
public static String maskRealName(String realName){
|
||||
return wordMask(realName,1,1,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* 邮箱掩码
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
public static String maskEmail(String email){
|
||||
return wordMask(email,3,3,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* QQ掩码
|
||||
* @param qq
|
||||
* @return
|
||||
*/
|
||||
public static String maskQQ(String qq){
|
||||
return wordMask(qq,3,3,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* 邮箱掩码
|
||||
* @param weChat
|
||||
* @return
|
||||
*/
|
||||
public static String maskWeChat(String weChat){
|
||||
return wordMask(weChat,3,3,"*");
|
||||
}
|
||||
|
||||
/**
|
||||
* 对字符串进行脱敏处理
|
||||
* @param word 被脱敏的字符
|
||||
* @param startLength 被保留的开始长度 0代表不保留
|
||||
* @param endLength 被保留的结束长度 0代表不保留
|
||||
* @param pad 填充字符
|
||||
* */
|
||||
public static String wordMask(String word,int startLength ,int endLength,String pad) {
|
||||
if(word==null) {
|
||||
return StringUtils.leftPad("", startLength+endLength,pad);
|
||||
}
|
||||
if(word.length()<=startLength+endLength) {
|
||||
return StringUtils.leftPad("", startLength+endLength,pad);
|
||||
}
|
||||
String startStr = "";
|
||||
String endStr = "";
|
||||
int padLength = 0;
|
||||
if(word.length()>startLength) {
|
||||
startStr = StringUtils.substring(word, 0,startLength);
|
||||
}
|
||||
if(word.length()>startLength+endLength) {
|
||||
endStr = StringUtils.substring(word, word.length()-endLength);
|
||||
}
|
||||
padLength = word.length()-startLength-endLength;
|
||||
return startStr + StringUtils.repeat(pad, padLength)+endStr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user