Commit f7694f9f authored by 董建华's avatar 董建华

邮箱格式校验

parent 78882590
...@@ -12,6 +12,7 @@ import cn.quantgroup.xyqb.repository.IUserRepository; ...@@ -12,6 +12,7 @@ import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.auth.IIdCardService; import cn.quantgroup.xyqb.service.auth.IIdCardService;
import cn.quantgroup.xyqb.service.user.IUserDetailService; import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.vo.UserDetailVO; import cn.quantgroup.xyqb.service.user.vo.UserDetailVO;
import cn.quantgroup.xyqb.util.AddressFilter;
import cn.quantgroup.xyqb.util.ValidationUtil; import cn.quantgroup.xyqb.util.ValidationUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -51,7 +52,9 @@ public class UserDetailServiceImpl implements IUserDetailService { ...@@ -51,7 +52,9 @@ public class UserDetailServiceImpl implements IUserDetailService {
@Override @Override
public UserDetail findByUserId(Long userId) { public UserDetail findByUserId(Long userId) {
return userDetailRepository.findByUserId(userId); UserDetail userDetail = userDetailRepository.findByUserId(userId);
userDetail.setEmail(AddressFilter.getEmail(userDetail.getPhoneNo(),userDetail.getEmail()));
return userDetail;
} }
@Override @Override
......
package cn.quantgroup.xyqb.util; package cn.quantgroup.xyqb.util;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* @author :dongjianhua * @author :dongjianhua
...@@ -16,23 +21,49 @@ import java.util.List; ...@@ -16,23 +21,49 @@ import java.util.List;
* @version: 1.0 * @version: 1.0
*/ */
public class AddressFilter { public class AddressFilter {
//移动运营商开头
private static final List<String> MOBILE = Lists.newArrayList("134", "135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "178", "182", "183", "184", "187", "188", "198");
//电信
private static final List<String> TELECOM = Lists.newArrayList("133", "153", "180", "181", "189", "177");
//联通
private static final List<String> UNICOM = Lists.newArrayList("130", "131", "132", "145", "155", "156", "176", "185", "186");
//运营商
private static final Map<List<String>, String> OPERATO_MAP = Maps.newConcurrentMap();
//联通后缀
private static final String UNICOM_SUFFIX = "@wo.cn";
private static final List<Pattern> PATTERN_LIST = Lists.newArrayList(); private static final List<PatternEntry> PATTERN_LIST = Lists.newArrayList();
//邮箱正则
private static Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9]+([._\\-]*[A-Za-z0-9])*@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$");
static { static {
PATTERN_LIST.add(new Pattern("|", "")); synchronized (AddressFilter.class) {
if (PATTERN_LIST.size() == 0) {
PATTERN_LIST.add(new PatternEntry("|", ""));
OPERATO_MAP.put(MOBILE, "@139.com");
OPERATO_MAP.put(TELECOM, "@189.cn");
// OPERATO_MAP.put(UNICOM,"@wo.cn");
}
}
} }
/** /**
* 是否包含特殊字符 * 是否包含特殊字符
*
* @param address * @param address
* @return * @return
*/ */
public static boolean isIncSpeChar(String address) { public static boolean isIncSpeChar(String address) {
if(!StringUtils.isNotEmpty(address)){ if (!StringUtils.isNotEmpty(address)) {
return false; return false;
} }
for (Pattern pattern : PATTERN_LIST) { for (PatternEntry pattern : PATTERN_LIST) {
if (address.contains(pattern.getTarget())) { if (address.contains(pattern.getTarget())) {
return true; return true;
} }
...@@ -42,6 +73,7 @@ public class AddressFilter { ...@@ -42,6 +73,7 @@ public class AddressFilter {
/** /**
* 过滤特殊字符 * 过滤特殊字符
*
* @param address * @param address
* @return * @return
*/ */
...@@ -51,17 +83,48 @@ public class AddressFilter { ...@@ -51,17 +83,48 @@ public class AddressFilter {
return address; return address;
} }
for (Pattern pattern : PATTERN_LIST) { for (PatternEntry pattern : PATTERN_LIST) {
address = StringUtils.replace(address, pattern.getTarget(), pattern.getReplaceMent()); address = StringUtils.replace(address, pattern.getTarget(), pattern.getReplaceMent());
} }
return address; return address;
} }
//替换email
public static String getEmail(String phone,String email) {
//去掉所有的空白
if(null != email){
email = email.replaceAll("\\s","");
}
if(isEmail(email)){
return email;
}
if( null == phone){
return null;
}
Set<Map.Entry<List<String>, String>> entries = OPERATO_MAP.entrySet();
for (Map.Entry<List<String>, String> entry : entries) {
boolean contains = entry.getKey().contains(phone.substring(0, 3));
if(contains){
return phone.concat(entry.getValue());
}
}
return phone.concat(UNICOM_SUFFIX);
}
//校验是否是邮箱
public static boolean isEmail(String email){
if(null == email){
return false;
}
Matcher matcher = EMAIL_PATTERN.matcher(email);
return matcher.matches();
}
@Getter @Getter
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
public static class Pattern { public static class PatternEntry {
private String target; private String target;
private String replaceMent; private String replaceMent;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment