|
@@ -18,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
@Service
|
|
|
public class MgrUserService {
|
|
@@ -192,28 +193,18 @@ public class MgrUserService {
|
|
|
}
|
|
|
|
|
|
public List<MgrOrganization> getWorkarkOrganizationList(MgrUser user) {
|
|
|
+ if (this.isSupperAdmin(user)) {
|
|
|
+ return mgrOrganizationDao.listAll();
|
|
|
+ }
|
|
|
List<Long> organizationIds = new ArrayList<>();
|
|
|
List<MgrRole> roles = mgrRoleDao.getListByProject(-1);
|
|
|
roles.forEach(ls -> organizationIds.add(ls.getOrganizationId()));
|
|
|
- if (organizationIds.size() > 0) {
|
|
|
- List<MgrOrganization> organizationList = mgrOrganizationDao.organizationByIds(organizationIds);
|
|
|
- if (this.isSupperAdmin(user)) {
|
|
|
- return organizationList;
|
|
|
- }
|
|
|
- List<MgrUserRole> userRoleList = getUserRoles(user);
|
|
|
- List<Long> ids = new LinkedList<Long>();
|
|
|
- Map<Long, Boolean> map = new HashMap<>();
|
|
|
- userRoleList.forEach(r -> {
|
|
|
- ids.add(r.getOrganizationId());
|
|
|
- map.put(r.getOrganizationId(), r.isAdmin());
|
|
|
- });
|
|
|
- // 取交集
|
|
|
- List<Long> intersection = organizationIds.stream().filter(ids::contains).collect(Collectors.toList());
|
|
|
- List<MgrOrganization> mgrOrganizations = mgrOrganizationDao.listByIds(intersection);
|
|
|
- mgrOrganizations.forEach(l -> l.setB(map.get(l.getId())));
|
|
|
- return mgrOrganizations;
|
|
|
- }
|
|
|
- return new ArrayList<>();
|
|
|
+ List<MgrUserRole> userRoleList = getUserRoles(user);
|
|
|
+ List<Long> ids = new LinkedList<Long>();
|
|
|
+ userRoleList.forEach(r ->ids.add(r.getOrganizationId()));
|
|
|
+ // 取并集
|
|
|
+ List<Long> union = Stream.concat(organizationIds.stream(), ids.stream()).distinct().collect(Collectors.toList());
|
|
|
+ return mgrOrganizationDao.listByIds(union);
|
|
|
}
|
|
|
|
|
|
public List<MgrUserRole> getUserRoles(MgrUser user){
|
|
@@ -416,7 +407,7 @@ public class MgrUserService {
|
|
|
|
|
|
List<MgrOrganization> workarkOrganizationList = getWorkarkOrganizationList(user);
|
|
|
MgrOrganization workarkCurrentOrganization = null;
|
|
|
- if(user.getLastWorkarkOrganizationId() != -1) {
|
|
|
+ if(user.getLastWorkarkOrganizationId() == -1) {
|
|
|
if(workarkOrganizationList.size() > 0){
|
|
|
workarkCurrentOrganization = workarkOrganizationList.get(0);
|
|
|
}
|
|
@@ -428,19 +419,24 @@ public class MgrUserService {
|
|
|
if(this.isSupperAdmin(user)) {
|
|
|
workarkCurrentUserRole = getUserRole(user, -1);
|
|
|
}else {
|
|
|
- if(workarkCurrentUserRole != null) {
|
|
|
- workarkCurrentUserRole = getUserRole(user, workarkCurrentOrganization.getId());
|
|
|
- }
|
|
|
+ workarkCurrentUserRole = getUserRole(user, workarkCurrentOrganization.getId());
|
|
|
}
|
|
|
if(workarkCurrentUserRole!= null && workarkCurrentOrganization!=null && workarkCurrentUserRole.isAdmin()) {
|
|
|
MgrResource workarkDefaultResource = getWorkarkDefaultResource();
|
|
|
- if (workarkCurrentOrganization.getFacilitator() == 0) {
|
|
|
+ if(workarkCurrentUserRole.getOrganizationId() == -1) {
|
|
|
workarkCurrentUserRole.setWorkarkResources(workarkDefaultResource.getEnterpriseData());
|
|
|
workarkCurrentUserRole.setWorkarkMenus(workarkDefaultResource.getEnterpriseComment());
|
|
|
- }
|
|
|
- if (workarkCurrentOrganization.getFacilitator() == 1) {
|
|
|
workarkCurrentUserRole.setWorkarkResources(workarkDefaultResource.getProviderData());
|
|
|
workarkCurrentUserRole.setWorkarkMenus(workarkDefaultResource.getProviderComment());
|
|
|
+ }else {
|
|
|
+ if (workarkCurrentOrganization.getFacilitator() == 0) {
|
|
|
+ workarkCurrentUserRole.setWorkarkResources(workarkDefaultResource.getEnterpriseData());
|
|
|
+ workarkCurrentUserRole.setWorkarkMenus(workarkDefaultResource.getEnterpriseComment());
|
|
|
+ }
|
|
|
+ if (workarkCurrentOrganization.getFacilitator() == 1) {
|
|
|
+ workarkCurrentUserRole.setWorkarkResources(workarkDefaultResource.getProviderData());
|
|
|
+ workarkCurrentUserRole.setWorkarkMenus(workarkDefaultResource.getProviderComment());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|