diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/auth/api/MgrAuthApi.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/auth/api/MgrAuthApi.java index baa88877..862f7f7e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/auth/api/MgrAuthApi.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/auth/api/MgrAuthApi.java @@ -29,10 +29,12 @@ import com.bonus.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.List; import java.util.Optional; +import java.util.Set; @Service public class MgrAuthApi { @@ -71,37 +73,37 @@ public class MgrAuthApi { LoginUser user = SecurityUtils.getLoginUser(); user.setUserid(SecurityUtils.getUserId()); user.setUsername(SecurityUtils.getUsername()); - String roleCode = (String) SecureManager.getSubjectData().get("roleCode"); - Optional firstElement = user.getRoles().stream().findFirst(); - if (firstElement.isPresent()) { - roleCode = firstElement.get(); - } - if (ObjectUtil.isEmpty(roleCode)) { + Set roleSet = user.getRoles(); + if (CollectionUtils.isEmpty(roleSet)) { throw new ServiceException(I18n.getMessage("auth_user_no_role_code", new Object[0])); - } else { - Integer roleType; + } + Integer roleType = null; + String roleCodeResult = null; + for (String roleCode : roleSet) { + roleCodeResult = roleCode; if (roleCode.startsWith(RoleCodeV2Enum.ROLE_ADMIN.key())) { if (CharSequenceUtil.split(roleCode, "&&").size() > 1) { roleType = MgrRoleTypeV2Enum.ROLE_ADMIN.getKey(); } else { roleType = LeConstants.DATA_DEFAULT_INTEGER; } + break; } else if (roleCode.startsWith(RoleCodeV2Enum.ROLE_ORG.key())) { roleType = MgrRoleTypeV2Enum.ROLE_ORG.getKey(); + break; } else { if (!roleCode.startsWith(RoleCodeV2Enum.ROLE_MERCHANT.key())) { throw new ServiceException(I18n.getMessage("auth_role_type_error", new Object[0])); } - roleType = MgrRoleTypeV2Enum.ROLE_MERCHANT.getKey(); + break; } - - userAuthPO.setUserId(user.getUserid()); - userAuthPO.setRoleType(roleType); - userAuthPO.setRoleCode(roleCode); - userAuthPO.setUserName(user.getUsername()); - return userAuthPO; } + userAuthPO.setUserId(user.getUserid()); + userAuthPO.setRoleType(roleType); + userAuthPO.setRoleCode(roleCodeResult); + userAuthPO.setUserName(user.getUsername()); + return userAuthPO; }