dcs 6 ماه پیش
والد
کامیت
00c908112e

+ 10 - 2
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectService.java

@@ -11,6 +11,7 @@ import com.bosshand.virgo.api.model.Project;
 import com.bosshand.virgo.api.model.ProjectItem;
 import com.bosshand.virgo.api.model.ProjectItemTarget;
 import com.bosshand.virgo.api.util.PositionUtil;
+import com.bosshand.virgo.core.model.MgrOrganization;
 import com.bosshand.virgo.core.model.UserContext;
 import com.bosshand.virgo.core.utils.ContextUtils;
 import com.bosshand.virgo.core.utils.StringUtil;
@@ -139,8 +140,15 @@ public class ProjectService {
 		}
 		// 项目管理员
 		Map<Long, Project> map = new HashMap();
-		if (userContext.isAdmin()) {
-			list = projectDao.getProjectByOrganizationId(userContext.getOrganizationId());
+		List<MgrOrganization> organizationList = userContext.getOrganizationList();
+		long adminOrganizationId = 0;
+		for (MgrOrganization o : organizationList) {
+			if (o.isB()) {
+				adminOrganizationId = o.getId();
+			}
+		}
+		if (adminOrganizationId != 0) {
+			list = projectDao.getProjectByOrganizationId(adminOrganizationId);
 			if (list != null && list.size() > 0) {
 				Set<JSONObject> set = new HashSet<>();
 				set.add(JSONObject.parseObject(UserContext.IDENTITY_OWNER_DATA));

+ 13 - 0
virgo.core/src/main/java/com/bosshand/virgo/core/model/MgrOrganization.java

@@ -29,6 +29,11 @@ public class MgrOrganization implements BaseModel {
 
     private int state;
 
+    /**
+     * 用户是否是组织的创建者
+     */
+    private boolean b;
+
     /**
      * 统计组织下单位工程下用户数量
      */
@@ -126,6 +131,14 @@ public class MgrOrganization implements BaseModel {
         this.state = state;
     }
 
+    public boolean isB() {
+        return b;
+    }
+
+    public void setB(boolean b) {
+        this.b = b;
+    }
+
     public int getOrganizedDataCenter() {
         return organizedDataCenter;
     }

+ 11 - 5
virgo.core/src/main/java/com/bosshand/virgo/core/service/MgrUserService.java

@@ -150,15 +150,21 @@ public class MgrUserService {
 		}
 		return mgrOrganizationDao.getById(user.getLastOrganizationId());
 	}
-	
-	public List<MgrOrganization> getOrganizationList(MgrUser user){
-		if(this.isSupperAdmin(user)) {
+
+	public List<MgrOrganization> getOrganizationList(MgrUser user) {
+		if (this.isSupperAdmin(user)) {
 			return mgrOrganizationDao.listAll();
 		}
 		List<MgrUserRole> userRoleList = getUserRoles(user);
 		List<Long> ids = new LinkedList<Long>();
-		userRoleList.forEach(r -> ids.add(r.getOrganizationId()));
-		return mgrOrganizationDao.listByIds(ids);
+		Map<Long, Boolean> map = new HashMap<>();
+		userRoleList.forEach(r -> {
+			ids.add(r.getOrganizationId());
+			map.put(r.getOrganizationId(), r.isAdmin());
+		});
+		List<MgrOrganization> mgrOrganizations = mgrOrganizationDao.listByIds(ids);
+		mgrOrganizations.forEach(l -> l.setB(map.get(l.getId())));
+		return mgrOrganizations;
 	}
 	
 	public List<MgrUserRole> getUserRoles(MgrUser user){