1.添加手机号和身份证的安全性和保密性

2.添加对应的定时任务
This commit is contained in:
sh
2026-03-19 17:26:28 +08:00
parent e61cdafa9d
commit bbb106489e
40 changed files with 1321 additions and 52 deletions

View File

@@ -4,6 +4,7 @@ import com.ruoyi.cms.service.CompanyContactService;
import com.ruoyi.cms.service.IAppUserService;
import com.ruoyi.cms.service.ICompanyService;
import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.cms.util.encrypt.QuickValidUtils;
import com.ruoyi.cms.util.oauth.OauthClient;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.AppUser;
@@ -26,6 +27,7 @@ import com.ruoyi.framework.manager.AsyncManager;
import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -102,15 +104,17 @@ public class OauthLoginHlwService {
*/
private String getOrCreateLocalUser(WwTyInfo wwTyInfo) {
String idCard="";
String cacheKey;
switch (wwTyInfo.getUsertype()){
case "1"://个人
idCard=wwTyInfo.getIdno();
cacheKey=REDIS_KEY_PORTAL_USER_MAPPING+QuickValidUtils.getSm4Encrypt(idCard);
break;
default:
idCard=wwTyInfo.getEnterprisecode();
cacheKey=REDIS_KEY_PORTAL_USER_MAPPING+idCard;
}
// 先从Redis查询缓存的本地用户名
String cacheKey = REDIS_KEY_PORTAL_USER_MAPPING + idCard;
String localUsername = redisCache.getCacheObject(cacheKey);
if (StringUtils.isNotBlank(localUsername)) {
if ("hlw_".equals(localUsername)) {
@@ -121,7 +125,7 @@ public class OauthLoginHlwService {
return localUsername;
}
SysUser localUser=sysUserService.selectUserByIdCard(wwTyInfo.getIdno());
SysUser localUser=sysUserService.selectUserByIdCard(idCard);
if (localUser == null) {
// 本地无用户,自动创建
localUser = createLocalUser(wwTyInfo);
@@ -149,44 +153,51 @@ public class OauthLoginHlwService {
/**
* 自动创建本地用户
*/
private SysUser createLocalUser(WwTyInfo wwTyInfo) {
public SysUser createLocalUser(WwTyInfo wwTyInfo) {
//移动端用户
AppUser appUserParm=new AppUser();
appUserParm.setIsRecommend(1);
//pc端
SysUser newUser = new SysUser();
String localUsername=StringUtil.USER_KEY+wwTyInfo.getIdno();
String localUsername;
switch (wwTyInfo.getUsertype()) {
case "1"://个人
newUser.setNickName(wwTyInfo.getName());
newUser.setIdCard(wwTyInfo.getIdno());
newUser.setRoleIds(new Long[]{parseStringToLoing(StringUtil.SYS_QZZ)});
newUser.setPhonenumber(wwTyInfo.getPhone());
localUsername=StringUtil.USER_KEY+ QuickValidUtils.getSm4Encrypt(wwTyInfo.getIdno());
//移动端
appUserParm.setPhone(wwTyInfo.getPhone());
appUserParm.setIdCard(wwTyInfo.getIdno());
appUserParm.setName(wwTyInfo.getName());
appUserParm.setIsCompanyUser(StringUtil.IS_JOB_REQUEST_USER);
break;
default://单位
newUser.setNickName(wwTyInfo.getEnterprisename());
newUser.setIdCard(wwTyInfo.getEnterprisecode());
newUser.setRoleIds(new Long[]{parseStringToLoing(StringUtil.SYS_QY)});
String phone = StringUtils.isNotBlank(wwTyInfo.getPhone()) ? wwTyInfo.getPhone() : wwTyInfo.getContactphone();
newUser.setPhonenumber(phone);
localUsername=StringUtil.USER_KEY+wwTyInfo.getEnterprisecode();
//修改企业和企业联系人
updateCompanyContact(wwTyInfo);
//移动端
appUserParm.setPhone(wwTyInfo.getPhone());
appUserParm.setPhone(phone);
appUserParm.setIdCard(wwTyInfo.getEnterprisecode());
appUserParm.setName(wwTyInfo.getEnterprisename());
appUserParm.setIsCompanyUser(StringUtil.IS_COMPANY_USER);
}
//插入app_user
Long appUserId=null;
AppUser appUser=appUserService.selectAppuserByIdcard(wwTyInfo.getIdno());
AppUser appUser=appUserService.selectAppuserByIdcard(wwTyInfo.getIdno(),wwTyInfo.getUsertype());
if(appUser!=null){
appUserParm.setUserId(appUser.getUserId());
appUserService.updateAppUser(appUserParm);
appUserId=appUser.getUserId();
}else{
int i=appUserService.insertAppUser(appUserParm);
appUserService.insertAppUser(appUserParm);
appUserId=appUserParm.getUserId();
}
//查询系统用户
@@ -251,6 +262,7 @@ public class OauthLoginHlwService {
* @param wwTokenResult
* @return
*/
@Transactional(rollbackFor = Exception.class)
public String getWwTjmHlwToken(WwTokenResult wwTokenResult){
try {
//获取门户userInfo
@@ -274,12 +286,13 @@ public class OauthLoginHlwService {
* 修改个人信息
* @param wwTyInfo
*/
private void updateUserInfo(WwTyInfo wwTyInfo){
public void updateUserInfo(WwTyInfo wwTyInfo){
//移动端用户
AppUser appUserParm=new AppUser();
appUserParm.setIsRecommend(1);
//pc端
String code="";
String localUsername;
SysUser sysUser=new SysUser();
switch (wwTyInfo.getUsertype()){
case "1":
@@ -292,6 +305,7 @@ public class OauthLoginHlwService {
appUserParm.setName(wwTyInfo.getName());
appUserParm.setIsCompanyUser(StringUtil.IS_JOB_REQUEST_USER);
code=wwTyInfo.getIdno();
localUsername=StringUtil.USER_KEY+QuickValidUtils.getSm4Encrypt(code);
break;
default:
sysUser.setNickName(wwTyInfo.getEnterprisename());
@@ -306,13 +320,14 @@ public class OauthLoginHlwService {
appUserParm.setName(wwTyInfo.getEnterprisename());
appUserParm.setIsCompanyUser(StringUtil.IS_COMPANY_USER);
code=wwTyInfo.getEnterprisecode();
localUsername=StringUtil.USER_KEY+code;
}
String localUsername=StringUtil.USER_KEY+code;
//查询用户角色
sysUser.setUserName(localUsername);
//查询用户id
SysUser parmUser=sysUserService.selectUserByIdCard(code);
sysUser.setUserId(parmUser.getUserId());
sysUser.setPhonenumber(wwTyInfo.getPhone());
sysUserService.updateUser(sysUser);
//插入app_user
AppUser appUser=appUserService.selectAppuserByIdcard(code);
@@ -328,7 +343,7 @@ public class OauthLoginHlwService {
* 修改联系人信息
* @param wwTyInfo
*/
public void updateCompanyContact(WwTyInfo wwTyInfo) {
private void updateCompanyContact(WwTyInfo wwTyInfo) {
if (wwTyInfo == null) {
throw new IllegalArgumentException("参数WwTyInfo不能为空");
}