获取角色

This commit is contained in:
sxu 2025-03-05 15:54:07 +08:00
parent 26e913bcc6
commit b62326f45c
1 changed files with 17 additions and 15 deletions

View File

@ -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<String> firstElement = user.getRoles().stream().findFirst();
if (firstElement.isPresent()) {
roleCode = firstElement.get();
}
if (ObjectUtil.isEmpty(roleCode)) {
Set<String> 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;
}