diff --git a/login-app/src/main/java/ink/wgink/login/app/service/appsign/impl/AppSignServiceImpl.java b/login-app/src/main/java/ink/wgink/login/app/service/appsign/impl/AppSignServiceImpl.java index e3dd43d6..82d397f4 100644 --- a/login-app/src/main/java/ink/wgink/login/app/service/appsign/impl/AppSignServiceImpl.java +++ b/login-app/src/main/java/ink/wgink/login/app/service/appsign/impl/AppSignServiceImpl.java @@ -11,8 +11,10 @@ import ink.wgink.login.app.pojo.vos.appsign.AppLoginVO; import ink.wgink.login.app.service.appdeviceuser.IAppDeviceUserService; import ink.wgink.login.app.service.appsign.IAppSignService; import ink.wgink.login.app.service.appversion.IAppVersionService; +import ink.wgink.login.base.exceptions.UserAuthenticationException; import ink.wgink.login.base.service.BaseAppSignService; import ink.wgink.pojo.bos.LoginAppUser; +import ink.wgink.service.user.enums.UserStateEnum; import ink.wgink.service.user.pojo.pos.UserPO; import ink.wgink.service.user.service.IUserService; import ink.wgink.util.date.DateUtil; @@ -60,6 +62,18 @@ public class AppSignServiceImpl extends BaseAppSignService implements IAppSignSe if (userPO == null) { throw new SearchException("用户不存在"); } + if (userPO.getUserState() == UserStateEnum.UN_EXAMINE.getValue()) { + throw new SearchException("用户未审核"); + } + if (userPO.getUserState() == UserStateEnum.UN_PASS.getValue()) { + throw new SearchException("用户审核未通过"); + } + if (userPO.getUserState() == UserStateEnum.LOCK.getValue()) { + throw new SearchException("用户已锁定"); + } + if(DateUtil.isDateExpired(userPO.getUserExpiredDate())) { + throw new UserAuthenticationException("账号已经过期"); + } if (!passwordEncoder.matches(userPassword, userPO.getUserPassword())) { throw new SearchException("用户名或密码错误"); } @@ -140,4 +154,5 @@ public class AppSignServiceImpl extends BaseAppSignService implements IAppSignSe UserPO userPO = userService.getPO(userId); return getToken(userPO); } + } diff --git a/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java b/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java index d32db35e..29b28434 100644 --- a/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java +++ b/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java @@ -1,13 +1,16 @@ package ink.wgink.login.base.service.user; import com.alibaba.fastjson.JSONObject; +import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.user.IUserDetailCheckService; import ink.wgink.login.base.exceptions.UserAuthenticationException; import ink.wgink.login.base.manager.ConfigManager; import ink.wgink.pojo.bos.LoginUser; +import ink.wgink.service.user.enums.UserStateEnum; import ink.wgink.service.user.pojo.pos.UserPO; import ink.wgink.service.user.service.IUserService; +import ink.wgink.util.date.DateUtil; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; @@ -50,10 +53,16 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe if (null == userPO) { throw new UserAuthenticationException("账号不存在"); } - if (userPO.getUserState() == 1) { - throw new UserAuthenticationException("账号已冻结"); + if (userPO.getUserState() == UserStateEnum.UN_EXAMINE.getValue()) { + throw new SearchException("用户未审核"); } - if (isAccountExpired(userPO)) { + if (userPO.getUserState() == UserStateEnum.UN_PASS.getValue()) { + throw new SearchException("用户审核未通过"); + } + if (userPO.getUserState() == UserStateEnum.LOCK.getValue()) { + throw new UserAuthenticationException("账号已锁定"); + } + if (DateUtil.isDateExpired(userPO.getUserExpiredDate())) { throw new UserAuthenticationException("账号已经过期"); } return createUserBO(userPO); @@ -131,22 +140,4 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe return true; } - /** - * 账号是否过期 - * - * @param userPO - * @return - */ - private boolean isAccountExpired(UserPO userPO) { - if (StringUtils.isBlank(userPO.getUserExpiredDate())) { - return false; - } - DateTime now = DateTime.now(); - DateTime expiredDateTime = DateTime.parse(userPO.getUserExpiredDate(), DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD_HH_MM_SS)); - if (expiredDateTime.isAfter(now)) { - return false; - } - return true; - } - }