wangwei 7 年之前
父节点
当前提交
ae0e420a07

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

@@ -1,14 +1,30 @@
 package cn.com.qmth.examcloud.core.basic.api.provider;
 
+import java.util.List;
+import java.util.Set;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 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.web.security.bean.Role;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.RolePrivilegeCloudService;
+import cn.com.qmth.examcloud.core.basic.api.bean.PrivilegeInfo;
 import cn.com.qmth.examcloud.core.basic.api.request.GetPrivilegesReq;
 import cn.com.qmth.examcloud.core.basic.api.response.GetPrivilegesResp;
+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.RoleRepo;
+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;
 
 /**
@@ -26,14 +42,66 @@ public class RolePrivilegeCloudServiceProvider extends ControllerSupport
 
 	private static final long serialVersionUID = -4360164791713797878L;
 
+	@Autowired
+	RoleRepo roleRepo;
+
+	@Autowired
+	RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
+
+	@Autowired
+	PrivilegeRepo privilegeRepo;
+
+	@Autowired
+	PrivilegeGroupRepo privilegeGroupRepo;
+
 	@ApiOperation(value = "查询用户权限", notes = "")
 	@PostMapping("getPrivileges")
 	@Override
 	public GetPrivilegesResp getPrivileges(GetPrivilegesReq req) {
 
 		User accessUser = getAccessUser();
+		String groupCode = req.getGroupCode();
+		PrivilegeGroup privilegeGroup = privilegeGroupRepo.findByCode(groupCode);
+
+		List<Role> roleList = accessUser.getRoleList();
+		List<Long> roleIdList = Lists.newArrayList();
+		for (Role cur : roleList) {
+			String roleCode = cur.getRoleCode();
+			cn.com.qmth.examcloud.core.basic.dao.entity.Role role = roleRepo.findBycode(roleCode);
+			roleIdList.add(role.getId());
+		}
+
+		List<RolePrivilegeRelation> rolePrivRelation = rolePrivilegeRelationRepo
+				.findAllByRoleIdIn(roleIdList);
+
+		Set<String> pIdSet = Sets.newHashSet();
+		for (RolePrivilegeRelation cur : rolePrivRelation) {
+			pIdSet.add(String.valueOf(cur.getPrivilegeId()));
+		}
+
+		List<Privilege> privilegeList = privilegeRepo.findAllByGroupId(privilegeGroup.getId());
+
+		List<PrivilegeInfo> privilegeInfoList = Lists.newArrayList();
+
+		for (Privilege cur : privilegeList) {
+			PrivilegeInfo privilegeInfo = new PrivilegeInfo();
+			privilegeInfo.setCode(cur.getCode());
+			privilegeInfo.setCreationTime(cur.getCreationTime());
+			privilegeInfo.setGroupId(cur.getGroupId());
+			privilegeInfo.setId(cur.getId());
+			privilegeInfo.setName(cur.getName());
+			privilegeInfo.setParentId(cur.getParentId());
+			privilegeInfo.setUpdateTime(cur.getUpdateTime());
+
+			privilegeInfo.setHasPrivilege(pIdSet.contains(String.valueOf(cur.getId())));
+
+			privilegeInfoList.add(privilegeInfo);
+
+		}
 
-		return null;
+		GetPrivilegesResp resp = new GetPrivilegesResp();
+		resp.setPrivilegeInfoList(privilegeInfoList);
+		return resp;
 	}
 
 }

+ 126 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/PrivilegeInfo.java

@@ -0,0 +1,126 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+import cn.com.qmth.examcloud.commons.web.helpers.tree.TreeNode;
+import cn.com.qmth.examcloud.commons.web.jpa.JpaEntity;
+
+/**
+ * 权限信息
+ *
+ * @author WANGWEI
+ * @date 2018年5月23日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class PrivilegeInfo extends JpaEntity implements JsonSerializable, TreeNode {
+
+	private static final long serialVersionUID = -8828760710678965127L;
+
+	/**
+	 * 权限ID
+	 */
+	private Long id;
+
+	/**
+	 * 权限码
+	 */
+	private String code;
+
+	/**
+	 * 权限名称
+	 */
+	private String name;
+
+	/**
+	 * 父权限ID
+	 */
+	private Long parentId;
+
+	/**
+	 * 组(权限分组,同一组的权限构成权限树)
+	 */
+	private Long groupId;
+
+	/**
+	 * 是否有权限
+	 */
+	private boolean hasPrivilege;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getParentId() {
+		return parentId;
+	}
+
+	public void setParentId(Long parentId) {
+		this.parentId = parentId;
+	}
+
+	public Long getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(Long groupId) {
+		this.groupId = groupId;
+	}
+
+	public boolean isHasPrivilege() {
+		return hasPrivilege;
+	}
+
+	public void setHasPrivilege(boolean hasPrivilege) {
+		this.hasPrivilege = hasPrivilege;
+	}
+
+	@Override
+	public String getTreeId() {
+		return null;
+	}
+
+	@Override
+	public void setTreeId(String treeId) {
+
+	}
+
+	@Override
+	public String getTreeName() {
+		return null;
+	}
+
+	@Override
+	public void setTreeName(String treeName) {
+
+	}
+
+	@Override
+	public String getParentTreeId() {
+		return null;
+	}
+
+	@Override
+	public void setParentTreeId(String parentTreeId) {
+
+	}
+
+}

+ 10 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetPrivilegesReq.java

@@ -19,6 +19,8 @@ public class GetPrivilegesReq extends BaseRequest {
 
 	private String groupCode;
 
+	private String rootOrgId;
+
 	public String getUserType() {
 		return userType;
 	}
@@ -43,4 +45,12 @@ public class GetPrivilegesReq extends BaseRequest {
 		this.groupCode = groupCode;
 	}
 
+	public String getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(String rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
 }

+ 7 - 6
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetPrivilegesResp.java

@@ -1,8 +1,9 @@
 package cn.com.qmth.examcloud.core.basic.api.response;
 
-import java.util.Map;
+import java.util.List;
 
 import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.PrivilegeInfo;
 
 /**
  * 类注释
@@ -15,14 +16,14 @@ public class GetPrivilegesResp extends BaseResponse {
 
 	private static final long serialVersionUID = 1212352081797526012L;
 
-	private Map<String, Boolean> privileges;
+	private List<PrivilegeInfo> privilegeInfoList;
 
-	public Map<String, Boolean> getPrivileges() {
-		return privileges;
+	public List<PrivilegeInfo> getPrivilegeInfoList() {
+		return privilegeInfoList;
 	}
 
-	public void setPrivileges(Map<String, Boolean> privileges) {
-		this.privileges = privileges;
+	public void setPrivilegeInfoList(List<PrivilegeInfo> privilegeInfoList) {
+		this.privilegeInfoList = privilegeInfoList;
 	}
 
 }

+ 2 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/PrivilegeRepo.java

@@ -16,4 +16,6 @@ public interface PrivilegeRepo
 
 	List<Privilege> findAllByGroupId(Long groupId);
 
+	List<Privilege> findAllByIdIn(List<Long> idList);
+
 }

+ 2 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/RolePrivilegeRelationRepo.java

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

+ 14 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/entity/PrivilegeGroup.java

@@ -46,6 +46,12 @@ public class PrivilegeGroup extends JpaEntity {
 	@Column(unique = false, nullable = false)
 	private String appId;
 
+	/**
+	 * 顶级机构ID
+	 */
+	@Column(unique = false, nullable = true)
+	private Long rootOrgId;
+
 	public Long getId() {
 		return id;
 	}
@@ -78,4 +84,12 @@ public class PrivilegeGroup extends JpaEntity {
 		this.appId = appId;
 	}
 
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
 }