添加一体机登录接口
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.ruoyi.common.utils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -681,4 +683,54 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证身份证有效期
|
||||
* @param expireDate
|
||||
* @return
|
||||
*/
|
||||
public static String checkIdCardExpire(String expireDate) {
|
||||
// 空、空白 判定无效证件
|
||||
if (expireDate == null || "".equals(expireDate.trim())) {
|
||||
return "身份证无效,请重新刷卡";
|
||||
}
|
||||
String date = expireDate.trim();
|
||||
// 长期有效 直接通过
|
||||
if ("99991231".equals(date)) {
|
||||
return "";
|
||||
}
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
String nowDate = LocalDate.now().format(formatter);
|
||||
// 已过期
|
||||
if (nowDate.compareTo(date) >= 0) {
|
||||
return "身份证已过有效期,请更换有效证件";
|
||||
}
|
||||
// 正常有效
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验身份证号码是否合法(18位,支持校验码)
|
||||
*/
|
||||
public static boolean isIdCardValid(String idCard) {
|
||||
if (idCard == null || idCard.trim().length() != 18) {
|
||||
return false;
|
||||
}
|
||||
// 前17位都是数字
|
||||
String code = idCard.trim();
|
||||
if (!code.substring(0, 17).matches("[0-9]+")) {
|
||||
return false;
|
||||
}
|
||||
// 校验码验证(标准算法)
|
||||
char[] chars = code.toCharArray();
|
||||
int[] weights = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
|
||||
char[] codes = {'1','0','X','9','8','7','6','5','4','3','2'};
|
||||
int sum = 0;
|
||||
for (int i = 0; i < 17; i++) {
|
||||
sum += (chars[i] - '0') * weights[i];
|
||||
}
|
||||
int mod = sum % 11;
|
||||
return chars[17] == codes[mod];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user