Merge remote-tracking branch 'remotes/origin/feature/v4-closeEncryptSettingWithChange-0406' into release/2.7.3.2304.01

This commit is contained in:
sy 2023-04-11 10:10:59 +08:00
commit 6bb5f8ddb4
2 changed files with 57 additions and 7 deletions

View File

@ -4,10 +4,14 @@ import com.engine.salary.sys.constant.SalarySysConstant;
import com.engine.salary.sys.entity.po.SalarySysConfPO;
import com.engine.salary.sys.enums.OpenEnum;
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.wbi.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.general.AES;
import weaver.general.BaseBean;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 此AES加密工具类仅用于关联应用设置中是否开启加密的应用使用
* 如另有需要请重写工具类
@ -77,12 +81,58 @@ public class AESEncryptUtil {
*/
public static String closeEncryptSetting(String encryptStr) {
SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT);
if (StringUtils.isNotBlank(encryptStr) && encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) {
encryptStr = encryptStr.substring(4, encryptStr.length());
return AES.decrypt(encryptStr, aesEncryptScrect);
} else if (sysConfPo == null && StringUtils.isNotBlank(encryptStr)) {
return AES.decrypt(encryptStr, aesEncryptScrect);
// if (StringUtils.isNotBlank(encryptStr) && encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) {
// encryptStr = encryptStr.substring(4, encryptStr.length());
// return AES.decrypt(encryptStr, aesEncryptScrect);
// } else if (sysConfPo == null && StringUtils.isNotBlank(encryptStr)) {
// return AES.decrypt(encryptStr, aesEncryptScrect);
// }
// return encryptStr;
if (encryptStr == null) {
return null;
} else {
//AES_前缀的密文
if (encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) {
encryptStr = encryptStr.substring(4, encryptStr.length());
return AES.decrypt(encryptStr, aesEncryptScrect);
} else if (isNumeric(encryptStr) || checkHaveChinese(encryptStr) || encryptStr.startsWith("{") || encryptStr.contains("-") || encryptStr.contains(".")) {
return encryptStr;
} else if ("null".equals(encryptStr) || StringUtils.isBlank(encryptStr)) {
return encryptStr;
} else if (sysConfPo == null || sysConfPo.getConfValue().equals(OpenEnum.OFF.getValue())) {
return AES.decrypt(encryptStr, aesEncryptScrect);
} else {
return encryptStr;
}
}
return encryptStr;
}
/**
* 判断字符串是否为整数或者小数或者负数
*/
public static boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
/**
* 判断字符串是否包含中文字符
*/
public static boolean checkHaveChinese(String countname) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(countname);
if (m.find()) {
return true;
}
return false;
}
}

View File

@ -770,7 +770,7 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe
po.setTotal(AESEncryptUtil.encrypt(po.getTotal()));
}
});
List<List<InsuranceAccountDetailPO>> partition = Lists.partition(insuranceAccountDetailPos, 50);
List<List<InsuranceAccountDetailPO>> partition = Lists.partition(insuranceAccountDetailPos, 20);
InsuranceAccountDetailMapper mapper = sqlSession.getMapper(InsuranceAccountDetailMapper.class);
partition.forEach(mapper::batchUpdate);
sqlSession.commit();