wangwei 7 жил өмнө
parent
commit
c683cdf3cf

+ 24 - 3
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/PrivilegeController.java → examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/RolePrivilegeController.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
 import java.util.List;
+import java.util.Set;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.web.helpers.tree.EleTreeNode;
@@ -25,21 +27,23 @@ import cn.com.qmth.examcloud.core.basic.dao.AppRepo;
 import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
 import cn.com.qmth.examcloud.core.basic.dao.PrivilegeGroupRepo;
 import cn.com.qmth.examcloud.core.basic.dao.PrivilegeRepo;
+import cn.com.qmth.examcloud.core.basic.dao.RolePrivilegeRelationRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.App;
 import cn.com.qmth.examcloud.core.basic.dao.entity.Privilege;
 import cn.com.qmth.examcloud.core.basic.dao.entity.PrivilegeGroup;
+import cn.com.qmth.examcloud.core.basic.dao.entity.RolePrivilegeRelation;
 import io.swagger.annotations.ApiOperation;
 
 /**
- * 权限
+ * 角色权限
  *
  * @author WANGWEI
  * @date 2018年6月12日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
 @RestController
-@RequestMapping("${app.api.root}/privilege")
-public class PrivilegeController extends ControllerSupport {
+@RequestMapping("${app.api.root}/rolePrivilege")
+public class RolePrivilegeController extends ControllerSupport {
 
 	@Autowired
 	AppRepo appRepo;
@@ -53,6 +57,9 @@ public class PrivilegeController extends ControllerSupport {
 	@Autowired
 	OrgRepo orgRepo;
 
+	@Autowired
+	RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
+
 	@ApiOperation(value = "查询权限组")
 	@GetMapping("getPrivilegeGroupList")
 	public List<PrivilegeGroupBean> getPrivilegeGroupList() {
@@ -89,6 +96,20 @@ public class PrivilegeController extends ControllerSupport {
 		return rootNode;
 	}
 
+	@ApiOperation(value = "查询权限ID集合")
+	@GetMapping("getPrivilegeIdList/{rootOrgId}/{roleId}")
+	public Set<Long> getPrivilegeTree(@PathVariable Long rootOrgId, @PathVariable Long roleId) {
+		List<RolePrivilegeRelation> rolePrivRelationList = rolePrivilegeRelationRepo
+				.findAllByRoleIdAndRootOrgId(roleId, rootOrgId);
+
+		Set<Long> pIdSet = Sets.newHashSet();
+		for (RolePrivilegeRelation cur : rolePrivRelationList) {
+			pIdSet.add(cur.getPrivilegeId());
+		}
+
+		return pIdSet;
+	}
+
 	@ApiOperation(value = "增加权限")
 	@PostMapping("addPrivilege")
 	public Privilege addPrivilege(@RequestBody Privilege privilege) {

+ 3 - 1
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/RolePrivilegeCloudServiceProvider.java

@@ -64,6 +64,8 @@ public class RolePrivilegeCloudServiceProvider extends ControllerSupport
 
 		User accessUser = getAccessUser();
 		String groupCode = req.getGroupCode();
+		Long rootOrgId = Long.parseLong(req.getRootOrgId());
+
 		PrivilegeGroup privilegeGroup = privilegeGroupRepo.findByCode(groupCode);
 
 		if (null == privilegeGroup) {
@@ -82,7 +84,7 @@ public class RolePrivilegeCloudServiceProvider extends ControllerSupport
 		}
 
 		List<RolePrivilegeRelation> rolePrivRelationList = rolePrivilegeRelationRepo
-				.findAllByRoleIdIn(roleIdList);
+				.findAllByRoleIdInAndRootOrgId(roleIdList, rootOrgId);
 
 		Set<String> pIdSet = Sets.newHashSet();
 		for (RolePrivilegeRelation cur : rolePrivRelationList) {

+ 4 - 1
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/RolePrivilegeRelationRepo.java

@@ -17,6 +17,9 @@ public interface RolePrivilegeRelationRepo
 
 	List<RolePrivilegeRelation> findAllByRoleId(Long roleId);
 
-	List<RolePrivilegeRelation> findAllByRoleIdIn(List<Long> roleIdList);
+	List<RolePrivilegeRelation> findAllByRoleIdAndRootOrgId(Long roleId, Long rootOrgId);
+
+	List<RolePrivilegeRelation> findAllByRoleIdInAndRootOrgId(List<Long> roleIdList,
+			Long rootOrgId);
 
 }