wangwei 7 years ago
parent
commit
0bb2dc2069

+ 14 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/RolePrivilegeController.java

@@ -23,6 +23,7 @@ import cn.com.qmth.examcloud.commons.web.helpers.tree.EleTreeNode;
 import cn.com.qmth.examcloud.commons.web.helpers.tree.TreeUtil;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.controller.bean.PrivilegeGroupBean;
+import cn.com.qmth.examcloud.core.basic.api.controller.bean.UpdateRolePrivilegeRelationsReq;
 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;
@@ -32,6 +33,7 @@ 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 cn.com.qmth.examcloud.core.basic.service.RolePrivilegeService;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -60,6 +62,9 @@ public class RolePrivilegeController extends ControllerSupport {
 	@Autowired
 	RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
 
+	@Autowired
+	RolePrivilegeService rolePrivilegeService;
+
 	@ApiOperation(value = "查询权限组")
 	@GetMapping("getPrivilegeGroupList")
 	public List<PrivilegeGroupBean> getPrivilegeGroupList() {
@@ -110,6 +115,15 @@ public class RolePrivilegeController extends ControllerSupport {
 		return pIdSet;
 	}
 
+	@ApiOperation(value = "更新角色权限关联")
+	@PostMapping("updateRolePrivilegeRelations")
+	public void updateRolePrivilegeRelations(@RequestBody UpdateRolePrivilegeRelationsReq req) {
+		Long rootOrgId = Long.parseLong(req.getRootOrgId());
+		Long roleId = Long.parseLong(req.getRoleId());
+		Set<Long> privilegeIdSet = req.getPrivilegeIdSet();
+		rolePrivilegeService.updateRolePrivilegeRelations(rootOrgId, roleId, privilegeIdSet);
+	}
+
 	@ApiOperation(value = "增加权限")
 	@PostMapping("addPrivilege")
 	public Privilege addPrivilege(@RequestBody Privilege privilege) {

+ 48 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/bean/UpdateRolePrivilegeRelationsReq.java

@@ -0,0 +1,48 @@
+package cn.com.qmth.examcloud.core.basic.api.controller.bean;
+
+import java.util.Set;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 更新角色权限关联 请求
+ *
+ * @author WANGWEI
+ * @date 2018年6月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class UpdateRolePrivilegeRelationsReq implements JsonSerializable {
+
+	private static final long serialVersionUID = -9173265174568713167L;
+
+	private String rootOrgId;
+
+	private String roleId;
+
+	private Set<Long> privilegeIdSet;
+
+	public String getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(String rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getRoleId() {
+		return roleId;
+	}
+
+	public void setRoleId(String roleId) {
+		this.roleId = roleId;
+	}
+
+	public Set<Long> getPrivilegeIdSet() {
+		return privilegeIdSet;
+	}
+
+	public void setPrivilegeIdSet(Set<Long> privilegeIdSet) {
+		this.privilegeIdSet = privilegeIdSet;
+	}
+
+}

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

@@ -21,5 +21,9 @@ public interface RolePrivilegeRelationRepo
 
 	List<RolePrivilegeRelation> findAllByRoleIdInAndRootOrgId(List<Long> roleIdList,
 			Long rootOrgId);
+	
+	void deleteByRoleIdAndRootOrgId(Long roleId,Long rootOrgId);
+	
+	
 
 }

+ 24 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/RolePrivilegeService.java

@@ -0,0 +1,24 @@
+package cn.com.qmth.examcloud.core.basic.service;
+
+import java.util.Set;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年6月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface RolePrivilegeService {
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param rootOrgId
+	 * @param roleId
+	 * @param privilegeIdSet
+	 */
+	void updateRolePrivilegeRelations(Long rootOrgId, Long roleId, Set<Long> privilegeIdSet);
+
+}

+ 66 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/RolePrivilegeServiceImpl.java

@@ -0,0 +1,66 @@
+package cn.com.qmth.examcloud.core.basic.service.impl;
+
+import java.util.List;
+import java.util.Set;
+
+import javax.transaction.Transactional;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.google.common.collect.Lists;
+
+import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
+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.RolePrivilegeRelation;
+import cn.com.qmth.examcloud.core.basic.service.RolePrivilegeService;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年6月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Service
+@Transactional
+public class RolePrivilegeServiceImpl implements RolePrivilegeService {
+
+	@Autowired
+	PrivilegeRepo privilegeRepo;
+
+	@Autowired
+	OrgRepo orgRepo;
+
+	@Autowired
+	RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
+
+	@Autowired
+	RolePrivilegeService rolePrivilegeService;
+
+	@Override
+	public void updateRolePrivilegeRelations(Long rootOrgId, Long roleId,
+			Set<Long> privilegeIdSet) {
+
+		rolePrivilegeRelationRepo.deleteByRoleIdAndRootOrgId(roleId, rootOrgId);
+
+		if (CollectionUtils.isEmpty(privilegeIdSet)) {
+			return;
+		}
+
+		List<RolePrivilegeRelation> list = Lists.newArrayList();
+		for (Long cur : privilegeIdSet) {
+			RolePrivilegeRelation bean = new RolePrivilegeRelation();
+			bean.setRoleId(roleId);
+			bean.setRootOrgId(rootOrgId);
+			bean.setPrivilegeId(cur);
+
+			list.add(bean);
+		}
+
+		rolePrivilegeRelationRepo.save(list);
+	}
+
+}