diff --git a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java index 32af85fc..ed1b9a00 100644 --- a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java +++ b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java @@ -10,7 +10,9 @@ import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.vo.AppLoginVO; import com.nflg.mobilebroken.common.util.SaTokenAppUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.AppUser; +import com.nflg.mobilebroken.repository.service.IAdminUserService; import com.nflg.mobilebroken.repository.service.IAppUserService; import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import org.springframework.web.bind.annotation.GetMapping; @@ -34,6 +36,9 @@ public class AppController extends ControllerBase { @Resource private IAppUserService appUserService; + @Resource + private IAdminUserService adminUserService; + @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; @@ -46,30 +51,50 @@ public class AppController extends ControllerBase { @GetMapping("login") public ApiResult login(String userName, String password) { AppUser user=appUserService.getUser(userName,password); - VUtils.trueThrow(Objects.isNull(user)) - .throwMessage(STATE.PassportErr,dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_INCORRECTUSERNAMEORPASSWORD,Constant.DEFAULT_LANGUAGE_CODE)); - 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", "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())); + 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", "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("app")); + }else { + AdminUser adminUser =adminUserService.getUser(userName,password); + VUtils.trueThrow(Objects.isNull(adminUser)) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_INCORRECTUSERNAMEORPASSWORD, Constant.DEFAULT_LANGUAGE_CODE)); + VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.Disabled.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, Constant.DEFAULT_LANGUAGE_CODE)); + VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.ToBeActivated.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED, Constant.DEFAULT_LANGUAGE_CODE)); + SaTokenAppUtil.login(adminUser.getId(), SaLoginConfig + .setExtra("from", "admin") + .setExtra("name", adminUser.getUserName()) + .setExtra("email", adminUser.getEmail())); + SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo(); + return ApiResult.success(new AppLoginVO() + .setUserId(adminUser.getId()) + .setToken(tokenInfo.getTokenValue()) + .setExpire(tokenInfo.getTokenTimeout()) + .setLanguageCode(Constant.DEFAULT_LANGUAGE_CODE) + .setPlatform("admin")); + } } ///** diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java index f1cb0ff5..e59d6e7a 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java @@ -96,7 +96,21 @@ public class UserController extends ControllerBase { **/ @GetMapping("getInfo") public ApiResult getInfo(){ - return ApiResult.success(appUserService.getInfo(AppUserUtil.getUserId())); + if (StrUtil.equals(AppUserUtil.getFrom(), "app")) { + return ApiResult.success(appUserService.getInfo(AppUserUtil.getUserId())); + } else if (StrUtil.equals(AppUserUtil.getFrom(), "admin")) { + AdminUserVO adminUser = adminUserService.getInfo(AppUserUtil.getUserId()); + return ApiResult.success(new AppUserVO() + .setId(adminUser.getId()) + .setName(adminUser.getUserName()) + .setLoginName(adminUser.getLoginName()) + .setEmail(adminUser.getEmail()) + .setAvatar(adminUser.getAvatar()) + .setPhone(adminUser.getPhone()) + .setPlatform("admin")); + } + VUtils.trueThrowBusinessError(true).throwMessage("不支持的平台:" + AppUserUtil.getFrom()); + return null; } /** diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java index 80abf5e2..20c28f42 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java @@ -15,4 +15,7 @@ public class AppLoginVO { //语言编码 private String languageCode; + + //平台,app或者admin + private String platform; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java index 8a8e5a75..be3f081e 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java @@ -71,15 +71,20 @@ public class AppUserVO { //公司id列表 public List companyIds; + //手机号 private String phone; + //职位 private String title; + //职位id private Integer titleId; + //公司id @JsonIgnore private String companyId; + //公司id private Integer companyId1; @@ -98,4 +103,7 @@ public class AppUserVO { * 语言编码 */ private String languageCode; + + //平台,app或者admin + private String platform="app"; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java index fda34b9f..ba226a81 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java @@ -32,6 +32,11 @@ public class AppUserUtil { return (Boolean) SaTokenAppUtil.getExtra("isPrimary"); } + public static String getFrom() { + VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); + return (String) SaTokenAppUtil.getExtra("from"); + } + public static UserDTO getUser() { UserDTO user = new UserDTO(); user.setId(getUserId());