feat: bug-558 登录售后服务系统PC客户端,或APP端。优先取代理商账号,以代理商账号为准。没有代理商账号,再取管理端内部账号

This commit is contained in:
曹鹏飞 2025-08-08 15:05:15 +08:00
parent 6d011e2731
commit da854f9c38
1 changed files with 28 additions and 28 deletions

View File

@ -57,8 +57,33 @@ public class AppController extends ControllerBase {
*/
@GetMapping("login")
public ApiResult<AppLoginVO> login(String userName, String password) {
AppUser user = appUserService.getUser(userName, password);
if (Objects.nonNull(user)) {
VUtils.trueThrow(Objects.equals(user.getState(), UserState.Disabled.getState()))
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, user.getLanguageCode()));
VUtils.trueThrow(Objects.equals(user.getState(), UserState.ToBeActivated.getState()))
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_NOT_ACTIVATED, user.getLanguageCode()));
VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && user.getIsPrimary())
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED_PRIMARY, user.getLanguageCode()));
VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && !user.getIsPrimary())
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED, user.getLanguageCode()));
SaTokenAppUtil.login(user.getId(), SaLoginConfig
.setExtra("from", Constant.FROM_APP)
.setExtra("name", user.getName())
.setExtra("email", user.getEmail())
.setExtra("companyIds", StrUtil.split(user.getCompanyId(), ",").stream().map(Integer::valueOf).collect(Collectors.toList()))
.setExtra("isPrimary", user.getIsPrimary()));
user.setLastLoginTime(LocalDateTime.now());
appUserService.updateById(user);
SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo();
return ApiResult.success(new AppLoginVO()
.setUserId(user.getId())
.setToken(tokenInfo.getTokenValue())
.setExpire(tokenInfo.getTokenTimeout())
.setLanguageCode(user.getLanguageCode())
.setPlatform(Constant.FROM_APP));
} else {
AdminUser adminUser = adminUserService.getUser(userName, password);
if (Objects.nonNull(adminUser)){
VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.Disabled.getState()))
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, MultilingualUtil.getLanguage()));
VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.ToBeActivated.getState()))
@ -83,31 +108,6 @@ public class AppController extends ControllerBase {
.setExpire(tokenInfo.getTokenTimeout())
.setLanguageCode(Constant.DEFAULT_LANGUAGE_CODE)
.setPlatform(Constant.FROM_ADMIN));
}else {
AppUser user=appUserService.getUser(userName,password);
VUtils.trueThrow(Objects.equals(user.getState(), UserState.Disabled.getState()))
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, user.getLanguageCode()));
VUtils.trueThrow(Objects.equals(user.getState(), UserState.ToBeActivated.getState()))
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_NOT_ACTIVATED, user.getLanguageCode()));
VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && user.getIsPrimary())
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED_PRIMARY, user.getLanguageCode()));
VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && !user.getIsPrimary())
.throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED, user.getLanguageCode()));
SaTokenAppUtil.login(user.getId(), SaLoginConfig
.setExtra("from", Constant.FROM_APP)
.setExtra("name", user.getName())
.setExtra("email", user.getEmail())
.setExtra("companyIds", StrUtil.split(user.getCompanyId(), ",").stream().map(Integer::valueOf).collect(Collectors.toList()))
.setExtra("isPrimary", user.getIsPrimary()));
user.setLastLoginTime(LocalDateTime.now());
appUserService.updateById(user);
SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo();
return ApiResult.success(new AppLoginVO()
.setUserId(user.getId())
.setToken(tokenInfo.getTokenValue())
.setExpire(tokenInfo.getTokenTimeout())
.setLanguageCode(user.getLanguageCode())
.setPlatform(Constant.FROM_APP));
}
}