wangwei il y a 6 ans
Parent
commit
0032f66671

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

@@ -31,8 +31,9 @@ import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.bean.RoleBean;
-import cn.com.qmth.examcloud.core.basic.api.controller.bean.PrivilegeGroupDomain;
 import cn.com.qmth.examcloud.core.basic.api.controller.bean.PrivilegeDomain;
+import cn.com.qmth.examcloud.core.basic.api.controller.bean.PrivilegeGroupDomain;
+import cn.com.qmth.examcloud.core.basic.api.controller.bean.RoleDomain;
 import cn.com.qmth.examcloud.core.basic.api.controller.bean.UpdateRolePrivilegeRelationsDomain;
 import cn.com.qmth.examcloud.core.basic.base.constants.BasicConsts;
 import cn.com.qmth.examcloud.core.basic.dao.AppRepo;
@@ -47,6 +48,8 @@ import cn.com.qmth.examcloud.core.basic.dao.entity.PrivilegeGroupEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RoleEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RolePrivilegeRelationEntity;
 import cn.com.qmth.examcloud.core.basic.service.RolePrivilegeService;
+import cn.com.qmth.examcloud.core.basic.service.bean.RoleInfo;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -56,6 +59,7 @@ import io.swagger.annotations.ApiOperation;
  * @date 2018年6月12日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
+@Api("角色权限")
 @Transactional
 @RestController
 @RequestMapping("${$rmp.ctr.basic}/rolePrivilege")
@@ -366,4 +370,66 @@ public class RolePrivilegeController extends ControllerSupport {
 		return ret;
 	}
 
+	@ApiOperation(value = "添加角色")
+	@PostMapping("addRole")
+	public RoleEntity addRole(@RequestBody RoleDomain req) {
+		Long rootOrgId = req.getRootOrgId();
+		String code = req.getCode();
+		String name = req.getName();
+
+		validateRootOrgIsolation(rootOrgId);
+
+		RoleEntity roleByCode = roleRepo.findByCode(code);
+		if (null != roleByCode) {
+			throw new StatusException("B-620001", "角色编码已被占用");
+		}
+
+		RoleEntity roleByName = roleRepo.findByNameAndRootOrgId(name, rootOrgId);
+		if (null != roleByName) {
+			throw new StatusException("B-620002", "角色名称已被占用");
+		}
+
+		RoleInfo info = new RoleInfo();
+		info.setCode(code);
+		info.setName(name);
+		info.setRootOrgId(rootOrgId);
+
+		RoleEntity saved = rolePrivilegeService.saveRole(info);
+
+		return saved;
+	}
+
+	@ApiOperation(value = "更新角色")
+	@PutMapping("updateRole")
+	public RoleEntity updateRole(@RequestBody RoleDomain req) {
+		Long rootOrgId = req.getRootOrgId();
+		String code = req.getCode();
+		String name = req.getName();
+
+		validateRootOrgIsolation(rootOrgId);
+
+		RoleInfo info = new RoleInfo();
+		info.setCode(code);
+		info.setName(name);
+		info.setRootOrgId(rootOrgId);
+
+		RoleEntity saved = rolePrivilegeService.saveRole(info);
+
+		return saved;
+	}
+
+	@ApiOperation(value = "删除角色")
+	@DeleteMapping("deleteRole/{roleId}")
+	public RoleEntity deleteRole(@PathVariable Long roleId) {
+		User accessUser = getAccessUser();
+
+		RoleInfo info = new RoleInfo();
+		info.setId(roleId);
+		info.setRootOrgId(accessUser.getRootOrgId());
+
+		RoleEntity saved = rolePrivilegeService.deleteRole(info, false);
+
+		return saved;
+	}
+
 }

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

@@ -0,0 +1,68 @@
+package cn.com.qmth.examcloud.core.basic.api.controller.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 角色
+ *
+ * @author WANGWEI
+ * @date 2018年5月23日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class RoleDomain implements JsonSerializable {
+
+	private static final long serialVersionUID = -2167420238674588632L;
+
+	/**
+	 * 角色ID
+	 */
+	private Long id;
+
+	/**
+	 * 角色码
+	 */
+	private String code;
+
+	/**
+	 * 角色名称
+	 */
+	private String name;
+
+	/**
+	 * 顶级机构.为null时,为全局角色
+	 */
+	private Long rootOrgId;
+
+	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 getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+}

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

@@ -19,6 +19,8 @@ import cn.com.qmth.examcloud.core.basic.dao.RoleRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RoleEntity;
 import cn.com.qmth.examcloud.core.basic.service.RolePrivilegeService;
 import cn.com.qmth.examcloud.core.basic.service.bean.RoleInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 
 /**
  * 角色权限服务
@@ -27,6 +29,7 @@ import cn.com.qmth.examcloud.core.basic.service.bean.RoleInfo;
  * @date 2018年6月8日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
+@Api("角色权限")
 @Transactional
 @RestController
 @RequestMapping("${$rmp.cloud.basic}" + "rolePrivilege")
@@ -70,9 +73,11 @@ public class RolePrivilegeCloudServiceProvider extends ControllerSupport
 		return resp;
 	}
 
+	@ApiOperation(value = "删除角色")
 	@Override
 	public DeleteRoleResp deleteRole(DeleteRoleReq req) {
 		RoleInfo info = new RoleInfo();
+		info.setId(req.getId());
 		info.setCode(req.getCode());
 		info.setName(req.getName());
 		info.setRootOrgId(req.getRootOrgId());

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

@@ -16,6 +16,10 @@ public interface RoleRepo
 
 	RoleEntity findByCodeAndRootOrgIdIsNull(String code);
 
+	RoleEntity findByCode(String code);
+
+	RoleEntity findByNameAndRootOrgId(String name, Long rootOrgId);
+
 	RoleEntity findByCodeAndRootOrgId(String code, Long rootOrgId);
 
 	List<RoleEntity> findByRootOrgIdIsNull();

+ 2 - 2
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/entity/RoleEntity.java

@@ -32,7 +32,7 @@ public class RoleEntity extends JpaEntity {
 	private Long id;
 
 	/**
-	 * 角色码
+	 * 角色码(全局唯一)
 	 */
 	@Column(unique = true, nullable = false)
 	private String code;
@@ -40,7 +40,7 @@ public class RoleEntity extends JpaEntity {
 	/**
 	 * 角色名称
 	 */
-	@Column(unique = true, nullable = false)
+	@Column(unique = false, nullable = false)
 	private String name;
 
 	/**