Selaa lähdekoodia

提交权限管理模块代码

chenken 7 vuotta sitten
vanhempi
commit
927caef729

+ 55 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/PermissionApi.java

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.service.core.api;
+
+import java.util.List;
+import java.util.Map;
+
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+import cn.com.qmth.examcloud.service.core.service.PermissionService;
+import cn.com.qmth.examcloud.service.core.service.RolePermissionRelationService;
+
+@RestController
+@RequestMapping("${app.api.root}/permission")
+public class PermissionApi {
+
+	@Autowired
+	private PermissionService permissionService;
+	
+	@Autowired
+	private RolePermissionRelationService rolePermissionRelationService;
+	
+	@ApiOperation(value="按系统查询权限",notes="按系统查询权限")
+    @GetMapping("/{systemName}")
+	public ResponseEntity findAllPermission(@PathVariable String systemName){
+		Map<String,List<Permission>> returnMap = permissionService.findPermissionsBySystem(systemName);
+		return new ResponseEntity(returnMap, HttpStatus.OK);
+	}
+	
+	@ApiOperation(value="保存权限",notes="保存权限")
+    @PostMapping
+	public ResponseEntity savePermission(@RequestBody Permission permission){
+		permissionService.savePermission(permission);
+		return new ResponseEntity(HttpStatus.OK);
+	}
+	
+	//by weiwenhai
+	@ApiOperation(value="删除菜单权限",notes="删除菜单权限")
+	@DeleteMapping("/{id}")
+	public ResponseEntity deletePermission(@PathVariable String id){
+		Integer permissionId = Integer.valueOf(id);
+		Map<String,String> map = permissionService.deletePermission(permissionId);
+		return new ResponseEntity(map,HttpStatus.OK);
+	}
+}

+ 58 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/RolePermissionRelationApi.java

@@ -0,0 +1,58 @@
+package cn.com.qmth.examcloud.service.core.api;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+import cn.com.qmth.examcloud.service.core.entity.RolePermissionRelation;
+import cn.com.qmth.examcloud.service.core.service.RolePermissionRelationService;
+
+@RestController
+@RequestMapping("${app.api.root}/rolePermissionRelation")
+public class RolePermissionRelationApi {
+	
+	@Autowired
+	private RolePermissionRelationService rolePermissionRelationService;
+	
+	@ApiOperation(value="按系统和角色查询权限",notes="按系统和当前角色查询权限")
+	@GetMapping("/permissions/{systemName}/{roleCodes}")
+	public ResponseEntity findPermissionByRole(@PathVariable String systemName,@PathVariable String roleCodes){
+		RolePermissionRelation rolePermissionRelation = new RolePermissionRelation();
+		rolePermissionRelation.setSystemName(systemName);
+		String[] roleCodeArray = roleCodes.split(",");
+		List<String> roleCodeList = new ArrayList<String>();
+		for(int i = 0;i<roleCodeArray.length;i++){
+			roleCodeList.add(roleCodeArray[i]);
+		}
+		rolePermissionRelation.setRoleCodes(roleCodeList);
+		Map<String,List<Permission>> permissionMap = rolePermissionRelationService.findPermissionByRole(rolePermissionRelation);
+		return new ResponseEntity(permissionMap, HttpStatus.OK);
+	}
+	
+	@ApiOperation(value="根据角色和系统查询数据",notes="根据角色和系统查询数据")
+	@GetMapping("/{systemName}/{roleCode}/{permissionType}")
+	public ResponseEntity findBySystemNameAndRoleName(@PathVariable String systemName,@PathVariable String roleCode,@PathVariable String permissionType){
+		List<RolePermissionRelation> permissions = rolePermissionRelationService.findPermission(systemName,roleCode,permissionType);
+		return new ResponseEntity(permissions, HttpStatus.OK);
+	}
+	
+	@ApiOperation(value="保存角色权限设定",notes="保存角色权限设定")
+    @PostMapping
+	public ResponseEntity saveRolePermission(@RequestBody RolePermissionRelation rolePermissionRelation){
+		rolePermissionRelationService.saveRolePermission(rolePermissionRelation);
+		return new ResponseEntity(HttpStatus.OK);
+	}
+}

+ 68 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/PermissionService.java

@@ -0,0 +1,68 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午3:27:59
+ * @company 	QMTH
+ * @description
+ */
+public interface PermissionService {
+	/**
+	 * 保存权限
+	 * @param permission
+	 */
+	public void savePermission(Permission permission);
+	
+	/**
+	 * 按照对象查询
+	 * @param permission
+	 * @return
+	 */
+	public List<Permission> findByPermission(Permission permission);
+	
+	/**
+	 * 按系统取出权限
+	 * @param systemName
+	 * @return
+	 */
+	public Map<String,List<Permission>> findPermissionsBySystem(String systemName);
+	/**
+	 * 按ID查询权限
+	 * @return
+	 */
+	public Permission findById(int id);
+	/**
+	 * 按ID集合查询权限 IDS
+	 * @param ids
+	 * @return
+	 */
+	public List<Permission> findPermissionByIds(List<Integer> ids);
+	
+	//by weiwenhai
+	/**
+	 * 根据id删除权限
+	 * @param id
+	 */
+	public void deletePermissionById(Integer id);
+	
+	/**
+	 * 根据父级权限id查询所有子权限
+	 * @param id
+	 * @return
+	 */
+	public List<Permission> findPermissionByParentId(Integer id);
+	
+	/**
+	 * 根据权限id删除权限
+	 * @param id
+	 * @return
+	 */
+	public Map<String,String> deletePermission(Integer id);
+}

+ 109 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/PermissionServiceImpl.java

@@ -0,0 +1,109 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+import cn.com.qmth.examcloud.service.core.entity.RolePermissionRelation;
+import cn.com.qmth.examcloud.service.core.enums.PermissionType;
+import cn.com.qmth.examcloud.service.core.repo.PermissionRepo;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午3:06:45
+ * @company 	QMTH
+ * @description	权限service
+ */
+@Service("permissionService")
+public class PermissionServiceImpl implements PermissionService{
+	
+	@Autowired
+	private PermissionRepo permissionRepo;
+	
+	@Autowired
+	private RolePermissionRelationService rolePermissionRelationService;
+	
+	@Override
+	public void savePermission(Permission permission) {
+		permissionRepo.save(permission);
+	}
+
+	@Override
+	public Map<String,List<Permission>> findPermissionsBySystem(String systemName) {
+		Map<String,List<Permission>> returnMap = new HashMap<String, List<Permission>>();
+		String menuType = PermissionType.MENU.name();
+		returnMap.put(menuType, permissionRepo.findBySystemNameAndType(systemName,menuType));
+		String pageType = PermissionType.PAGE.name();
+		returnMap.put(pageType, permissionRepo.findBySystemNameAndType(systemName,pageType));
+		return returnMap;
+	}
+
+	@Override
+	public Permission findById(int id) {
+		return permissionRepo.findOne(id);
+	}
+
+	@Override
+	public List<Permission> findPermissionByIds(List<Integer> ids) {
+		return permissionRepo.findByIdIn(ids);
+	}
+
+	@Override
+	public List<Permission> findByPermission(Permission permission) {
+		return permissionRepo.findAll(Example.of(permission));
+	}
+
+	//by weiwenhai 根据id删除权限
+	@Override
+	public void deletePermissionById(Integer id) {
+		permissionRepo.delete(id);
+	}
+
+	//根据父级权限id查询所有子权限
+	@Override
+	public List<Permission> findPermissionByParentId(Integer id) {
+		return permissionRepo.findByParentId(id);
+	}
+
+	@Override
+	public Map<String, String> deletePermission(Integer id) {
+		Map<String,String> map = new HashMap<String,String>();
+		List<RolePermissionRelation> rolePermissionRelations = rolePermissionRelationService.findRolePermissionRelationByPermissonId(id);
+		//首先判断该权限能否删除
+		if(rolePermissionRelations.size()>0){
+			map.put("message", "该权限在使用中,无法删除");
+			map.put("messageType", "warning");
+			return map;
+		}else{
+			Permission permission = findById(id);
+			//然后判断该权限是否有父级
+			if(permission.getParentId()!= null){
+				deletePermissionById(id);
+				map.put("message", "删除成功");
+				map.put("messageType", "success");
+				return map;
+			}else{
+				//最后判断父级下的权限是否删除
+				List<Permission> permission_son = findPermissionByParentId(id);
+				if(permission_son.size()>0){
+					map.put("message", "存在子级菜单,无法删除");
+					map.put("messageType", "warning");
+					return map;
+				}
+				deletePermissionById(id);
+				map.put("message", "删除成功");
+				map.put("messageType", "success");
+				return map;
+			}
+		}
+	}
+	
+}

+ 50 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/RolePermissionRelationService.java

@@ -0,0 +1,50 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+import cn.com.qmth.examcloud.service.core.entity.RolePermissionRelation;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午5:26:13
+ * @company 	QMTH
+ * @description 角色权限关联
+ */
+public interface RolePermissionRelationService {
+	/**
+	 * 根据角色查询权限
+	 * @param roleName
+	 * @param systemName
+	 * @return
+	 */
+	public Map<String,List<Permission>> findPermissionByRole(RolePermissionRelation rolePermissionRelation);
+	/**
+	 * 保存角色权限
+	 * @param rolePermissionRelation
+	 */
+	public void saveRolePermission(RolePermissionRelation rolePermissionRelation);
+	/**
+	 * 删除角色权限
+	 * @param roleName
+	 * @param systemName
+	 */
+	public void deleteRolePermission(String roleName,String systemName,String permissionType);
+	/**
+	 * 根据角色和系统查询
+	 * @param systemName
+	 * @param roleCode
+	 * @return
+	 */
+	public List<RolePermissionRelation> findPermission(String systemName,String roleCode,String permissionType);
+	
+	//by weiwenhai
+	/**
+	 * 根据权限id查询权限角色
+	 * @param id
+	 * @return
+	 */
+	public List<RolePermissionRelation> findRolePermissionRelationByPermissonId(Integer id);
+}

+ 148 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/RolePermissionRelationServiceImpl.java

@@ -0,0 +1,148 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+import cn.com.qmth.examcloud.service.core.entity.RolePermissionRelation;
+import cn.com.qmth.examcloud.service.core.enums.PermissionType;
+import cn.com.qmth.examcloud.service.core.repo.RolePermissionRelationRepo;
+
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午3:15:53
+ * @company 	QMTH
+ * @description
+ */
+@Service("rolePermissionRelationService")
+public class RolePermissionRelationServiceImpl implements RolePermissionRelationService{
+
+	@Autowired
+	private RolePermissionRelationRepo rolePermissionRelationRepo;
+	@Autowired
+	private PermissionService permissionService;
+	
+	@Override
+	public Map<String,List<Permission>> findPermissionByRole(RolePermissionRelation rolePermissionRelation) {
+		Map<String,List<Permission>> returnMap = new HashMap<String, List<Permission>>();
+		String menuType = PermissionType.MENU.name();
+		returnMap.put(menuType,findMenuPermissionByRole(rolePermissionRelation));
+		String pageType = PermissionType.PAGE.name();
+		returnMap.put(pageType,findPagePermissionByRole(rolePermissionRelation));
+		return returnMap;
+	}
+	
+	/**
+	 * 查询菜单权限
+	 * @param rolePermissionRelation
+	 * @return
+	 */
+	private List<Permission> findMenuPermissionByRole(RolePermissionRelation rolePermissionRelation){ 
+		List<String> roleCodes = rolePermissionRelation.getRoleCodes();
+		List<RolePermissionRelation> relations = new ArrayList<RolePermissionRelation>();
+		for(String roleCode:roleCodes){
+			String systemName = rolePermissionRelation.getSystemName();
+			String permissionType = PermissionType.MENU.name();
+			relations.addAll(rolePermissionRelationRepo.findByRoleCodeAndSystemNameAndPermissionType(roleCode, systemName,permissionType));
+		}
+		Set<Integer> permissionIds = new HashSet<Integer>();
+		for(RolePermissionRelation relation:relations){
+			permissionIds.add(relation.getPermissionId());
+		}
+		List<Integer> ids = new ArrayList<Integer>(permissionIds);
+		List<Permission> permissions = permissionService.findPermissionByIds(ids);
+		//组装树形关系结构
+		Map<Integer,Permission> permissionMap = new HashMap<Integer, Permission>();
+		for(Permission permission:permissions){
+			permissionMap.put(permission.getId(), permission);
+		}
+		for(Permission p:permissions){
+			Permission permission = permissionMap.get(p.getParentId());
+			if(permission!=null){
+				if(permission.getSubPermissions()==null){
+					permission.setSubPermissions(new ArrayList<Permission>());
+				}
+				permission.getSubPermissions().add(p);
+			}
+		}
+		 // 返回一级节点
+		List<Permission> permissionNodes = new ArrayList<Permission>();
+		for(Permission permission:permissions){
+			if(permission.getParentId()==null){
+				permissionNodes.add(permission);
+			}
+		}
+		return permissionNodes;
+	}
+
+	/**
+	 * 查询菜单权限
+	 * @param rolePermissionRelation
+	 * @return
+	 */
+	private List<Permission> findPagePermissionByRole(RolePermissionRelation rolePermissionRelation){ 
+		List<String> roleCodes = rolePermissionRelation.getRoleCodes();
+		List<RolePermissionRelation> relations = new ArrayList<RolePermissionRelation>();
+		for(String roleCode:roleCodes){
+			String systemName = rolePermissionRelation.getSystemName();
+			String permissionType = PermissionType.PAGE.name();
+			relations.addAll(rolePermissionRelationRepo.findByRoleCodeAndSystemNameAndPermissionType(roleCode, systemName,permissionType));
+		}
+		Set<Integer> permissionIds = new HashSet<Integer>();
+		for(RolePermissionRelation relation:relations){
+			permissionIds.add(relation.getPermissionId());
+		}
+		List<Integer> ids = new ArrayList<Integer>(permissionIds);
+		List<Permission> permissions = permissionService.findPermissionByIds(ids);
+		return permissions;
+	}
+	
+	@Override
+	@Transactional
+	public void saveRolePermission(RolePermissionRelation rolePermissionRelation) {
+		String roleCode = rolePermissionRelation.getRoleCode();
+		String systemName = rolePermissionRelation.getSystemName();
+		String permissionType = rolePermissionRelation.getPermissionType();
+		deleteRolePermission(roleCode, systemName,permissionType);
+		List<RolePermissionRelation> relationList = new ArrayList<RolePermissionRelation>(); 
+		for(Integer permissionId:rolePermissionRelation.getPermissionIds()){
+			RolePermissionRelation relation = new RolePermissionRelation();
+			relation.setRoleCode(roleCode);
+			relation.setSystemName(systemName);
+			relation.setPermissionType(permissionType);
+			relation.setPermissionId(permissionId);
+			relationList.add(relation);
+		}
+		rolePermissionRelationRepo.save(relationList);
+	}
+
+	@Override
+	public void deleteRolePermission(String roleCode, String systemName,String permissionType) {
+		rolePermissionRelationRepo.deleteByRoleCodeAndSystemNameAndPermissionType(roleCode, systemName,permissionType);
+	}
+
+	@Override
+	public List<RolePermissionRelation> findPermission(String systemName,String roleCode,String permissionType) {
+		Assert.hasLength(systemName, "systemName 不能为空");		
+		Assert.hasLength(roleCode, "roleCode 不能为空");		
+		return rolePermissionRelationRepo.findByRoleCodeAndSystemNameAndPermissionType(roleCode, systemName, permissionType);
+	}
+
+	//by weiwenhai 根据权限id查询权限角色
+	@Override
+	public List<RolePermissionRelation> findRolePermissionRelationByPermissonId(Integer id) {
+		return rolePermissionRelationRepo.findByPermissionId(id);
+	}
+	
+}

+ 108 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/Permission.java

@@ -0,0 +1,108 @@
+package cn.com.qmth.examcloud.service.core.entity;
+
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午2:57:19
+ * @company 	QMTH
+ * @description	权限
+ */
+@Entity
+@Table(name = "ecs_permission")
+public class Permission {
+	
+	@Id
+    @GeneratedValue
+	private Integer id;
+	/**
+	 * 权限名称
+	 */
+	
+	private String name;
+	/**
+	 * 父ID
+	 */
+	private Integer parentId;
+	/**
+	 * URL访问路径
+	 */
+	private String urlPath;
+	/**
+	 * 系统名称
+	 */
+	private String systemName;
+	
+	/**
+	 * 权限类型
+	 */
+	private String type;
+	
+	/**
+	 * 权限描述
+	 */
+	private String description;
+	
+	//@Transient:不参与持久化
+	@Transient
+	private List<Permission> subPermissions;
+	
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Integer getParentId() {
+		return parentId;
+	}
+	public void setParentId(Integer parentId) {
+		this.parentId = parentId;
+	}
+	
+	public String getUrlPath() {
+		return urlPath;
+	}
+	public void setUrlPath(String urlPath) {
+		this.urlPath = urlPath;
+	}
+	public String getSystemName() {
+		return systemName;
+	}
+	public void setSystemName(String systemName) {
+		this.systemName = systemName;
+	}
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public List<Permission> getSubPermissions() {
+		return subPermissions;
+	}
+	public void setSubPermissions(List<Permission> subPermissions) {
+		this.subPermissions = subPermissions;
+	}
+	public String getType() {
+		return type;
+	}
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+}

+ 102 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/RolePermissionRelation.java

@@ -0,0 +1,102 @@
+package cn.com.qmth.examcloud.service.core.entity;
+
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年6月15日下午3:01:03
+ * @company 	QMTH
+ * @description	角色权限关联
+ */
+@Entity
+@Table(name="ecs_role_permission_relation")
+public class RolePermissionRelation {
+	@Id
+    @GeneratedValue
+	private int id;
+	/**
+	 * 角色code
+	 */
+	private String roleCode;
+	/**
+	 * 归属系统
+	 */
+	private String systemName;
+	/**
+	 * 权限ID
+	 */
+	private Integer permissionId;
+	/**
+	 * 权限类型
+	 */
+	private String permissionType;
+	@Transient
+	private List<String> roleCodes;
+	//@Transient:不参与持久化
+	@Transient
+	private List<Integer> permissionIds;
+	
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public String getRoleCode() {
+		return roleCode;
+	}
+
+	public void setRoleCode(String roleCode) {
+		this.roleCode = roleCode;
+	}
+
+	public String getSystemName() {
+		return systemName;
+	}
+
+	public void setSystemName(String systemName) {
+		this.systemName = systemName;
+	}
+
+	public Integer getPermissionId() {
+		return permissionId;
+	}
+
+	public void setPermissionId(Integer permissionId) {
+		this.permissionId = permissionId;
+	}
+
+	public List<Integer> getPermissionIds() {
+		return permissionIds;
+	}
+
+	public void setPermissionIds(List<Integer> permissionIds) {
+		this.permissionIds = permissionIds;
+	}
+
+	public List<String> getRoleCodes() {
+		return roleCodes;
+	}
+
+	public void setRoleCodes(List<String> roleCodes) {
+		this.roleCodes = roleCodes;
+	}
+
+	public String getPermissionType() {
+		return permissionType;
+	}
+
+	public void setPermissionType(String permissionType) {
+		this.permissionType = permissionType;
+	}
+	
+}

+ 12 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/enums/PermissionType.java

@@ -0,0 +1,12 @@
+package cn.com.qmth.examcloud.service.core.enums;
+
+public enum PermissionType {
+	/**
+	 * 菜单权限
+	 */
+	MENU,
+	/**
+	 * 页面权限
+	 */
+	PAGE
+}

+ 20 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/PermissionRepo.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.service.core.repo;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import cn.com.qmth.examcloud.service.core.entity.Permission;
+
+public interface PermissionRepo extends JpaRepository<Permission,Integer>{
+	
+	public List<Permission> findBySystemNameAndType(String systemName,String type);
+	
+	public List<Permission> findByIdIn(List<Integer> ids);
+	
+	//by weiwenhai 根据id删除权限
+	public void delete(Integer id);
+	
+	//根据父级权限id查询所有子权限
+	public List<Permission> findByParentId(Integer id);
+}

+ 19 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/RolePermissionRelationRepo.java

@@ -0,0 +1,19 @@
+package cn.com.qmth.examcloud.service.core.repo;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import cn.com.qmth.examcloud.service.core.entity.RolePermissionRelation;
+
+public interface RolePermissionRelationRepo  extends JpaRepository<RolePermissionRelation,Integer>{
+
+	
+	public List<RolePermissionRelation> findByRoleCodeAndSystemNameAndPermissionType(String roleCode,String systemName,String permissionType);
+	
+	
+	void deleteByRoleCodeAndSystemNameAndPermissionType(String roleCode,String systemName,String PermissionType);
+	
+	//by weiwenhai 根据权限id查询权限角色
+	public List<RolePermissionRelation> findByPermissionId(Integer id);
+}