Merge branch 'test' into patch-dependency

yun-zuoyi
nies 3 years ago
commit 2b2321b279

@ -37,7 +37,7 @@ public interface ISysUserPasswordService extends ICrudService<SysUserPassword> {
void updatePasswordWizoutSession(String loginName, String password, String newPwd);
@ApiOperation(value = "根据密码反查")
public List<SysUserPassword> findPasswordByPassword(String password);
public List<SysUserPassword> findPasswordByPassword(String password,Long userId);
/**
* id,

@ -3,6 +3,8 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.shirotoken.BaseToken;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation;
@ -406,4 +408,29 @@ public interface ISysUserService {
*/
@ApiOperation(value = "获取用户菜单信息")
void packUser(SysUser user);
/**
* andonmodel
* @param andonQueryUserModel
* @param pager
* @return
*/
@ApiOperation(value = "根据andon查询model查询用户信息")
ListPager<AndonQueryUserResultModel> findUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager);
/**
* sysUser to AndonQueryUserResultModel
* @param sysUserList
* @return
*/
List<AndonQueryUserResultModel> packAndonQueryUserResultModel(List<SysUser> sysUserList);
/**
*
* @param userLoginNamegenList
* @return
*/
@ApiOperation(value = "获取批量账号信息", notes = "查询用户信息-批量根据登录名称查询")
List<SysUser> findSysUserByLoginName(List<String> userLoginNamegenList);
}

@ -62,6 +62,7 @@ import com.google.common.cache.CacheBuilder;
import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.*;
import org.slf4j.Logger;
@ -1110,6 +1111,42 @@ public class WhiteController extends CoreBaseController {
* @param dingSendBatchRequestModel
* @return
*/
@PostMapping(value = "/dingRobot/sendBatchRequestByUserLoginName")
@ApiOperation(value = "根据登录用户名 钉钉单聊机器人批量发送消息", notes = "根据登录用户名 钉钉单聊机器人批量发送消息")
public ResultBean singleRobotsendBatchRequestByUserLoginName(@RequestBody DingSendBatchRequestModel dingSendBatchRequestModel ) {
if(ObjectUtils.isEmpty(dingSendBatchRequestModel)){
return ResultBean.fail("消息内容不能为空");
}
if(ObjectUtils.isEmpty(dingSendBatchRequestModel.getUserLoginNameList())){
return ResultBean.fail("登录用户名不能为空");
}
List<String> userLoginNameList = dingSendBatchRequestModel.getUserLoginNameList();
userLoginNameList = userLoginNameList.stream().filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if(ObjectUtils.isEmpty(userLoginNameList)){
return ResultBean.fail("登录用户名不能为空");
}
List<SysUser> userList = userService.findSysUserByLoginName(userLoginNameList);
if(ObjectUtils.isEmpty(userList)){
return ResultBean.fail("登录用户名没有对应的账号");
}
List<String> phoneNumberList =userList.stream().map(SysUser::getUserPhone).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if(ObjectUtils.isEmpty(userList)){
return ResultBean.fail("登录用户名没有对应的手机号");
}
dingSendBatchRequestModel.setPhoneNumberList(phoneNumberList);
return singleRobotsendBatchRequest(dingSendBatchRequestModel);
}
/**
*
*/
private final int MAX_DINGROBOT_SEND_NUM = 1000;
/**
*
* @param dingSendBatchRequestModel
* @return
*/
@PostMapping(value = "/dingRobot/sendBatchRequest")
@ApiOperation(value = "根据手机号 钉钉单聊机器人批量发送消息", notes = "根据手机号 钉钉单聊机器人批量发送消息")
public ResultBean singleRobotsendBatchRequest(@RequestBody DingSendBatchRequestModel dingSendBatchRequestModel ) {
@ -1125,7 +1162,7 @@ public class WhiteController extends CoreBaseController {
if (ObjectUtils.isEmpty(phoneNumberList)) {
return ResultBean.fail("手机号不能为空");
}
phoneNumberList = phoneNumberList.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
phoneNumberList = phoneNumberList.stream().filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if (ObjectUtils.isEmpty(phoneNumberList)) {
return ResultBean.fail("手机号不能为空");
}

@ -158,6 +158,11 @@ public class PersonnelController extends CoreBaseController {
user.setOrganizeCode(userOrganize.getOrganizeCode());
user.setUserLoginLastDateTime(TimeTool.getNowTime(true));
user.setUserInfoId(info.getId());
if (CommonEnumUtil.USER_ACCOUNT_TYPE.valueOfEnum(user.getUserAccountType()) != null){
user.setUserAccountType(CommonEnumUtil.USER_ACCOUNT_TYPE.valueOfEnum(user.getUserAccountType()).getValue());
}else{
user.setUserAccountType(CommonEnumUtil.USER_ACCOUNT_TYPE.SYSTEM.getValue());
}
//松下需要创建的新用户 第一次登陆系统就要重置密码
// user.setUserPasswordLastModifyTime(TimeTool.getNowTime(true));
refreshSysUserPassword(user);
@ -264,11 +269,13 @@ public class PersonnelController extends CoreBaseController {
sysUser.setUserEmpNo(userInfo.getUserEmpNo());
sysUser.setAuthPlatform(user.getAuthPlatform());
if (StringUtils.isBlank(user.getUserAccountType()) || CommonEnumUtil.USER_ACCOUNT_TYPE.valueOfEnum(user.getUserAccountType()) == null) {
sysUser.setUserAccountType(String.valueOf(CommonEnumUtil.USER_ACCOUNT_TYPE.SYSTEM.getValue()));
} else {
sysUser.setUserAccountType(user.getUserAccountType());
}
// if (StringUtils.isBlank(user.getUserAccountType()) || CommonEnumUtil.USER_ACCOUNT_TYPE.valueOfEnum(user.getUserAccountType()) == null) {
// sysUser.setUserAccountType(String.valueOf(CommonEnumUtil.USER_ACCOUNT_TYPE.SYSTEM.getValue()));
// } else {
// sysUser.setUserAccountType(user.getUserAccountType());
// }
sysUser.setUserAccountType(user.getUserAccountType());
// 关系 刷新
refreshRef(sysUser, userInfo, model);
@ -307,6 +314,7 @@ public class PersonnelController extends CoreBaseController {
user.setDepartmentNameRdd(userDepartment.getName());
user.setOrganizeId(userOrganize.getId());
user.setOrganizeNameRdd(userOrganize.getName());
user.setUserAccountType(user.getUserAccountType());
// 关系 刷新
refreshRef(user, null, model);
@ -770,6 +778,7 @@ public class PersonnelController extends CoreBaseController {
user.setUserEmail(model.getUserEmail());
user.setUserPhone(model.getUserPhone());
user.setLanguageCode(model.getUserLanguageCode());
user.setUserAccountType(model.getUserAccountType());
if (!StringUtils.isAnyBlank(model.getUserLoginPassword())) { // 使用新密码
user.setUserLoginPassword(EncryptTool.hexMD5(model.getUserLoginPassword()));

@ -115,6 +115,18 @@ public class SysEnumController extends CoreBaseController {
}
/**
*
*
* @return
*/
@GetMapping("/user-account-type")
@ApiOperation(value = "用户账号类型", notes = "用户账号类型")
public ResultBean getUserAccountType() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.USER_ACCOUNT_TYPE.values()));
}
/**
*
*
* @return

@ -23,6 +23,8 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.AccountExportModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -35,6 +37,7 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.text.StrBuilder;
import org.apache.commons.lang3.RandomStringUtils;
import org.slf4j.Logger;
@ -872,4 +875,38 @@ public class SysUserController extends CoreBaseController {
}
}
@GetMapping(value = "/query-user-andonQueryUserModel")
@ApiOperation(value = "根据andonQueryUserModel查询系统用户")
public ResultBean queryUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager) {
try {
ValidatorBean.checkNotNull(andonQueryUserModel);
if (StringUtils.isBlank(andonQueryUserModel.getOrganizeCode())) {
andonQueryUserModel.setOrganizeCode(AuthUtil.getOrganizeCode());
}
if (ObjectUtils.isEmpty(pager)) {
pager = Pager.defaultPager();
}
ListPager<AndonQueryUserResultModel> resultList = sysUserService.findUserByAndonQueryUserModel(andonQueryUserModel, pager);
return ResultBean.success("操作成功").setListPager(resultList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/query-user-by-org")
@ApiOperation(value = "根据orgCode查询Sysuser用户")
public ResultBean queryUserByOrg(String organizeCode) {
try {
List<SysUser> sysUsers = sysUserService.querySysUserByOrganizeCode(organizeCode);
return ResultBean.success("操作成功").setResultList(sysUserService.packAndonQueryUserResultModel(sysUsers)).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -57,7 +57,7 @@ public class SysUserSavePasswordService extends CrudService<SysUserPassword> imp
SysUserPassword userPassword = userPasswordRDao.getById(user.getUserLoginPasswordId());
ValidatorBean.checkNotNull(userPassword, "不存在的用户密码信息");
if (StringUtils.equals(userPassword.getUserPassword(), password)) {
if (!StringUtils.equals(userPassword.getUserPassword(), SysUserPasswordUtil.encoder(password))) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
@ -147,6 +147,7 @@ public class SysUserSavePasswordService extends CrudService<SysUserPassword> imp
user.setUserLoginPassword(newPwd);
userPasswordUtil.checkPasswordSave(user);
//当前方法是不需要session,是在登陆前弹窗修改密码
//如果是首次登录修改密码则设置登录次数为1
if(null == user.getUserLoginNum() || user.getUserLoginNum() == 0){
userService.updateUserLoginNum(user.getId(),1);
@ -172,13 +173,14 @@ public class SysUserSavePasswordService extends CrudService<SysUserPassword> imp
}
@Override
public List<SysUserPassword> findPasswordByPassword(String password) {
public List<SysUserPassword> findPasswordByPassword(String password,Long userId) {
List<SysUserPassword> passwordList = new ArrayList<>();
if(StringUtils.isBlank(password)){
return passwordList;
}
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(password,"userPassword",ddlPackBean);
DdlPreparedPack.getNumEqualPack(userId,"userId",ddlPackBean);
return userPasswordRDao.findByHqlWhere(ddlPackBean);
}

@ -19,6 +19,8 @@ import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.repository.SysLogUserLoginRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserDepartmentRepository;
@ -157,11 +159,10 @@ public class SysUserService implements ISysUserService {
AuthUtil.setSessionUser(sessionUser);
AuthUtil.online(sessionUser);
resultBean = ResultBean.success().setResultObject(sessionUser);
}catch (ImppBusiException e) {
} catch (ImppBusiException e) {
e.printStackTrace();
resultBean = ResultBean.fail(e);
}
catch (CredentialsException e) {
} catch (CredentialsException e) {
// 用户名或密码错误
e.printStackTrace();
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME);
@ -173,7 +174,7 @@ public class SysUserService implements ISysUserService {
// 用户信息不存在
e.printStackTrace();
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL);
}catch (AuthenticationException e) {
} catch (AuthenticationException e) {
// 系统异常
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getDescription()).setCode(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getCode());
if (e.getCause() != null) {
@ -187,8 +188,7 @@ public class SysUserService implements ISysUserService {
resultBean.setErrorMsg(e.getMessage());
}
LOGGER.warn("Impp业务异常AuthenticationException 登录失败 ", e);
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
resultBean = ResultBean.fail(e);
if (e.getCause() != null) {
@ -198,7 +198,7 @@ public class SysUserService implements ISysUserService {
}
} finally {
//如果登录成功,刷新登录成功次数和上次登录时间
try{
try {
if (resultBean.isSuccess()) {
this.refreshUserLoginInformation(user.getId());
} else {
@ -207,8 +207,7 @@ public class SysUserService implements ISysUserService {
this.refreshUserLoginDateTime(user.getId(), user.getUserInfoId());
}
}
}
catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
@ -265,9 +264,9 @@ public class SysUserService implements ISysUserService {
//判断条件如果有authPlatform限制则进行校验没有按照原有登录
//authPlatform限制如果不包含平台权限则不能登录这里可以扩展多个登录权限限制。
String authPlatform = user.getAuthPlatform();
if (Strings.isNotBlank(authPlatform)){
if (Strings.isNotBlank(authPlatform)) {
List<Integer> authPlatforms = Arrays.stream(authPlatform.split(",")).map(Integer::parseInt).collect(Collectors.toList());
if (!authPlatforms.contains(loginPlatform)){
if (!authPlatforms.contains(loginPlatform)) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("此账号没有权限登录此平台,请联系管理员!").build();
}
}
@ -386,19 +385,19 @@ public class SysUserService implements ISysUserService {
@Override
public void updateSysUserPwdByLoginName(String loginName, String password) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(loginName,"userLoginName",ddlPackBean);
DdlPreparedPack.getStringEqualPack(loginName, "userLoginName", ddlPackBean);
List<SysUser> sysUsers = userRDao.findByHqlWhere(ddlPackBean);
if (Objects.isNull(sysUsers)){
if (Objects.isNull(sysUsers)) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("修改密码失败,账号在系统中不存在!").build();
}
if (sysUsers.size() > 1){
if (sysUsers.size() > 1) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("登录名不唯一,修改失败!").build();
}
SysUser sysUser = sysUsers.get(0);
Long pwdId = sysUser.getUserLoginPasswordId();
userPasswordService.updatePasswordByPwdIdAndNewPwd(pwdId,password);
userPasswordService.updatePasswordByPwdIdAndNewPwd(pwdId, password);
}
@ -693,7 +692,7 @@ public class SysUserService implements ISysUserService {
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(distinctUserIds)) {
return null;
return new ArrayList();
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(distinctUserIds, "id", packBean);
@ -740,15 +739,15 @@ public class SysUserService implements ISysUserService {
@Override
public SysUser getSysUserByLoginNameAndEmail(String loginName, String email) {
LOGGER.debug("平台用户 SYS_USER find By Login Name :{}and email:{}", loginName,email);
LOGGER.debug("平台用户 SYS_USER find By Login Name :{}and email:{}", loginName, email);
SysUser sysUser = userRDao.getByProperty(new String[]{"userLoginName", "isValid", "isDeleted"},
new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
if (!Objects.isNull(sysUser)){
if (!Objects.isNull(sysUser)) {
String emails = sysUser.getUserEmail();
if (Strings.isNotBlank(emails)){
if (Strings.isNotBlank(emails)) {
List<String> emailList = Arrays.asList(emails.split(","));
if (emailList.contains(email)){
if (emailList.contains(email)) {
return sysUser;
}
}
@ -1027,6 +1026,42 @@ public class SysUserService implements ISysUserService {
}
@Override
public ListPager<AndonQueryUserResultModel> findUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(andonQueryUserModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(andonQueryUserModel.getOrganizeCode(), "organizeCode", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getDepartment(), "departmentNameRdd", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getUserLoginName(), "userLoginName", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getUserName(), "userName", ddlPackBean);
pager = PagerHelper.getPager(pager, userRDao.findByHqlWhereCount(ddlPackBean));
return new ListPager(packAndonQueryUserResultModel(userRDao.findByHqlWherePage(ddlPackBean, pager)), pager);
}
@Override
public List<AndonQueryUserResultModel> packAndonQueryUserResultModel(List<SysUser> sysUserList) {
if (ObjectUtils.isEmpty(sysUserList)) {
return new ArrayList<>();
}
return sysUserList.stream().map(el -> {
AndonQueryUserResultModel andonQueryUserModel = new AndonQueryUserResultModel();
andonQueryUserModel.setDepartment(el.getDepartmentNameRdd());
andonQueryUserModel.setLoginName(el.getUserLoginName());
andonQueryUserModel.setUserId(el.getId());
andonQueryUserModel.setUserInfoId(el.getUserInfoId());
andonQueryUserModel.setUserName(el.getUserName());
return andonQueryUserModel;
}).collect(Collectors.toList());
}
@Override
public List<SysUser> findSysUserByLoginName(List<String> userLoginNamegenList) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(userLoginNamegenList,"userLoginName",ddlPackBean);
return userRDao.findByHqlWhere(ddlPackBean);
}
/**
*
*

@ -113,6 +113,25 @@ public class SysUserPasswordUtil {
.build();
}
/**
*
* @param user
*/
public void checkPasswordLogin(SysUser user) {
/* 密码 长度校验 */
checkPasswordLength(user.getUserLoginPassword());
/* 密码 大写字母校验 */
checkPasswordUppercaseEnglish(user.getUserLoginPassword());
/* 密码 小写字母校验 */
checkPasswordlowerEnglish(user.getUserLoginPassword());
/* 密码 数字校验 */
checkPasswordNumber(user.getUserLoginPassword());
/* 密码 特殊字符校验 */
checkPasswordSpecial(user.getUserLoginPassword());
/* 密码 密码正则校验 */
checkPasswordRepeat(user.getUserLoginPassword());
}
/******************************************** 用户保存密码检查 ********************************************/
public void checkPasswordSave(SysUser user) {
@ -144,7 +163,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("长度不够" + length + "位")
.setErrorDetail("密码长度不够" + length + "位")
.setErrorSolution("请重新输入")
.build();
}
@ -173,7 +192,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("必须包含大写英文")
.setErrorDetail("密码必须包含大写英文")
.setErrorSolution("请重新输入")
.build();
}
@ -203,7 +222,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("必须包含小写英文")
.setErrorDetail("密码必须包含小写英文")
.setErrorSolution("请重新输入")
.build();
}
@ -233,7 +252,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("必须包含数字")
.setErrorDetail("密码必须包含数字")
.setErrorSolution("请重新输入")
.build();
}
@ -264,7 +283,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("必须包含特殊字")
.setErrorDetail("密码必须包含特殊字")
.setErrorSolution("请重新输入")
.build();
}
@ -284,7 +303,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("必须包含中文字符")
.setErrorDetail("密码必须包含中文字符")
.setErrorSolution("请重新输入")
.build();
}
@ -306,8 +325,8 @@ public class SysUserPasswordUtil {
// List<SysUserPassword> passwords = userPasswordService.findAllByBean(userPassword);
//todo: 如果密码数据太多可以考虑建立以Creat eDatetime 相关的索引,ORDER BY create_date_time DESC ,查出最近的一条就行
List<SysUserPassword> passwords = userPasswordService.findPasswordByPassword(EncryptTool.hexMD5(user.getUserLoginPassword()));
//修改为查询这个账号最近的密码是否重复
List<SysUserPassword> passwords = userPasswordService.findPasswordByPassword(EncryptTool.hexMD5(user.getUserLoginPassword()),user.getId());
int lastDay = Integer.MAX_VALUE;
if (CollectionUtils.isNotEmpty(passwords)) {
@ -324,7 +343,7 @@ public class SysUserPasswordUtil {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("请勿使用重复密码")
.setErrorDetail(String.format("最近%s天内,请勿使用重复密码",num))
.setErrorSolution("请重新输入")
.build();
}
@ -409,6 +428,23 @@ public class SysUserPasswordUtil {
if (!result.isSuccess()) {
return result;
}
//登录时是否检查用户密码是否符合安全规则
try {
int isLoginCheckPassword = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_LOGIN_CHECK_PASSWORD,CommonConstWords.CONFIG_LOGIN_CHECK_PASSWORD_DEFAULT);
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == isLoginCheckPassword){
checkPasswordLogin(user);
}
result = ResultBean.success();
} catch (Exception e) {
LOGGER.error("检查用户密码是否符合安全规则发生异常:",e);
result = ResultBean.fail()
.setCode(ImppExceptionEnum.LOGIN_EXCEPTION_PWD_RULE_CHANGE.getCode())
.setErrorMsg(ImppExceptionEnum.LOGIN_EXCEPTION_PWD_RULE_CHANGE.getDescription());;
}
if (!result.isSuccess()) {
return result;
}
}
return ResultBean.success();
}

Loading…
Cancel
Save