Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

宋悦 7 жил өмнө
parent
commit
b103b8c3bc
14 өөрчлөгдсөн 760 нэмэгдсэн , 5 устгасан
  1. 55 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/PermissionApi.java
  2. 58 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/RolePermissionRelationApi.java
  3. 5 2
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/StudentFaceInfoApi.java
  4. 68 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/PermissionService.java
  5. 109 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/PermissionServiceImpl.java
  6. 50 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/RolePermissionRelationService.java
  7. 148 0
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/RolePermissionRelationServiceImpl.java
  8. 4 1
      core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/StudentFaceInfoService.java
  9. 108 0
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/Permission.java
  10. 102 0
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/RolePermissionRelation.java
  11. 2 2
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/StudentFaceInfo.java
  12. 12 0
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/enums/PermissionType.java
  13. 20 0
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/PermissionRepo.java
  14. 19 0
      core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/RolePermissionRelationRepo.java

+ 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);
+	}
+}

+ 5 - 2
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/StudentFaceInfoApi.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.common.util.ErrorMsg;
 import cn.com.qmth.examcloud.service.core.entity.Student;
 import cn.com.qmth.examcloud.service.core.entity.StudentFaceInfo;
@@ -89,16 +92,16 @@ public class StudentFaceInfoApi {
         StudentFaceInfo studentFaceInfo4Update = studentFaceInfoRepo.findByStudentId(studentFaceInfo.getStudent().getId());
         LOG.info("根据学生id" + studentFaceInfo.getStudent().getId() + "找到照片信息:" + studentFaceInfo4Update.getId());
         studentFaceInfo4Update.setUpdateTime(new Date());
+        studentFaceInfo4Update.setUpdateUser(studentFaceInfo.getUpdateUser());
+        studentFaceInfo4Update.setCreateType(studentFaceInfo.getCreateType());
         studentFaceInfo4Update.setPhotoMD5(studentFaceInfo.getPhotoMD5());
         studentFaceInfo4Update.setFaceToken(studentFaceInfo.getFaceToken());
         studentFaceInfo4Update.setFaceSetToken(studentFaceInfo.getFaceSetToken());
-
         Student student = studentRepo.findOne(studentFaceInfo.getStudent().getId());
         if(student != null){
             student.setPhotoPath(student.getIdentityNumber()+"/"+studentFaceInfo.getPhotoMD5());
             studentRepo.save(student);
         }
-
         return new ResponseEntity(studentFaceInfoRepo.save(studentFaceInfo4Update), 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);
+	}
+	
+}

+ 4 - 1
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/StudentFaceInfoService.java

@@ -6,6 +6,7 @@ import javax.transaction.Transactional;
 
 import cn.com.qmth.examcloud.service.core.entity.Student;
 import cn.com.qmth.examcloud.service.core.repo.StudentRepo;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -31,15 +32,17 @@ public class StudentFaceInfoService {
 			student.setPhotoPath(student.getIdentityNumber()+"/"+studentFaceInfo.getPhotoMD5());
 			studentRepo.save(student);
 		}
-
+		
     	if(old == null){
 			studentFaceInfo.setCreateTime(new Date());
 			return studentFaceInfoRepo.save(studentFaceInfo);
     	}
     	old.setUpdateTime(new Date());
+    	old.setUpdateUser(studentFaceInfo.getUpdateUser());
     	old.setFaceSetToken(studentFaceInfo.getFaceSetToken());
     	old.setFaceToken(studentFaceInfo.getFaceToken());
     	old.setPhotoMD5(studentFaceInfo.getPhotoMD5());
+    	old.setCreateType(studentFaceInfo.getCreateType());
         return studentFaceInfoRepo.save(old);
     }
 

+ 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;
+	}
+	
+}

+ 2 - 2
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/StudentFaceInfo.java

@@ -34,7 +34,7 @@ public class StudentFaceInfo implements Serializable {
 	/**
 	 * 创建时间
 	 */
-	@Temporal(value = TemporalType.DATE)
+	@Temporal(value = TemporalType.TIMESTAMP)
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createTime;
 	/**
@@ -44,7 +44,7 @@ public class StudentFaceInfo implements Serializable {
 	/**
 	 * 更新时间
 	 */
-	@Temporal(value = TemporalType.DATE)
+	@Temporal(value = TemporalType.TIMESTAMP)
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date updateTime;
 	/**

+ 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);
+}