Przeglądaj źródła

角色绑定与查询

温红权 9 lat temu
rodzic
commit
ba04ac2ecf

+ 1 - 3
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/PermissionController.java

@@ -107,14 +107,12 @@ public class PermissionController extends BaseController {
     }
     
     
-    //TODO 待完成
     @RequestMapping(value = "/getPermissionByRole/{roleid}/{page}/{size}",method=RequestMethod.GET,produces="application/json;charset=UTF-8")
     public String getPermissionByRole(@PathVariable Integer roleid,@PathVariable Integer page,@PathVariable Integer size,@RequestBody User user){
         try{
         	PageHelper.startPage(page, size); 
         	
-        	List<Permission> permissions= permissionService.getPermissions(new  Permission());
-        	
+        	List<Permission> permissions= permissionService.getByRoleId(roleid);
         	return returnResult(0, "获取成功", new PageInfo(permissions));
         }catch(Exception e){
         	throw new BusinessException(20001);

+ 41 - 14
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/RoleController.java

@@ -1,10 +1,9 @@
 package com.xintong.visualinspection.controller;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,7 +13,6 @@ import org.springframework.web.bind.annotation.RestController;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xintong.visualinspection.bean.Role;
-import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.err.BusinessException;
 import com.xintong.visualinspection.service.RoleService;
 
@@ -100,39 +98,68 @@ public class RoleController extends BaseController {
 		}
 	}
 
-	// TODO 待完成
 	@RequestMapping(value = "/roleBindPermission/{roleId}/{permissions}", method = RequestMethod.PUT, produces = "application/json;charset=UTF-8")
 	public String roleBindPermission(@PathVariable Integer roleId, @PathVariable String permissions) {
+		String[] permissionids = permissions.split(",");
+		List<Integer> pids = new ArrayList<>();
+		for (String id : permissionids) {
+			if (!id.isEmpty()) {
+				try {
+					Integer idt = Integer.parseInt(id);
+					pids.add(idt);
+				} catch (Exception e) {
+					throw new BusinessException(20001);
+				}
+			}
+		}
+		for (Integer id : pids) {
+			roleService.roleBindPermission(roleId, id);
+		}
 
-		return returnResult(0, "获取成功", null);
+		return returnResult(0, "绑定成功", null);
 	}
 
-	// TODO 待完成
 	@RequestMapping(value = "/roleBindUser/{roleId}/{users}", method = RequestMethod.PUT, produces = "application/json;charset=UTF-8")
 	public String roleBindUser(@PathVariable Integer roleId, @PathVariable String users) {
-
-		return returnResult(0, "获取成功", null);
+		String[] userids = users.split(",");
+		List<Integer> uids = new ArrayList<>();
+		for (String id : userids) {
+			if (!id.isEmpty()) {
+				try {
+					Integer idt = Integer.parseInt(id);
+					uids.add(idt);
+				} catch (Exception e) {
+					throw new BusinessException(20001);
+				}
+			}
+		}
+		for (Integer id : uids) {
+			roleService.roleBindUser(roleId, id);
+		}
+		return returnResult(0, "绑定成功", null);
 	}
 
-	// TODO 待完成
 	@RequestMapping(value = "/getRoleByDept/{deptId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
 	public String getRoleByDept(@PathVariable Integer deptId) {
 
-		return returnResult(0, "获取成功", null);
+		List<Role> roles = roleService.getRoleByDept(deptId);
+
+		return returnResult(0, "获取成功", roles);
 	}
 
-	// TODO 待完成
 	@RequestMapping(value = "/getRoleByUser/{userId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
 	public String getRoleByUser(@PathVariable Integer userId) {
 
-		return returnResult(0, "获取成功", null);
+		List<Role> roles = roleService.getRoleByUser(userId);
+
+		return returnResult(0, "获取成功", roles);
 	}
 
-	// TODO 待完成
 	@RequestMapping(value = "/getRoleByPosition/{positionId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
 	public String getRoleByPosition(@PathVariable Integer positionId) {
+		List<Role> roles = roleService.getRoleByPosition(positionId);
 
-		return returnResult(0, "获取成功", null);
+		return returnResult(0, "获取成功", roles);
 	}
 
 }

+ 2 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/PermissionDao.java

@@ -18,4 +18,6 @@ public interface PermissionDao {
     public void update(Permission permission);
     public void delete(Integer id);
     public List<Permission> findByAdminUserId(int userId);
+    public List<Permission> getByRoleId(int roleId);
+    
 }

+ 12 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/RoleDao.java

@@ -1,6 +1,7 @@
 package com.xintong.visualinspection.dao.master;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ibatis.annotations.Mapper;
 
@@ -16,4 +17,15 @@ public interface RoleDao  {
     public void insert(Role role);
     public void update(Role role);
     public void delete(Integer id);
+    
+    
+    public void roleBindPermission(Map<String,Integer> part);
+    public void roleBindUser(Map<String,Integer> part);
+    public void roleBindDepartment(Map<String,Integer> part);
+    public void roleBindJob(Map<String,Integer> part);
+    
+    public List<Role> getRoleByDept(Integer departmentId);
+    public List<Role> getRoleByUser(Integer userId);
+    public List<Role> getRoleByPosition(Integer positionId);
+    
 }

+ 6 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/PermissionDaoMapper.xml

@@ -71,4 +71,10 @@
         LEFT JOIN sys_permission_role spr on spr.role_id=r.id
         where p.id =spr.permission_id
     </select>
+    
+    
+     <select id="getByRoleId" parameterType="java.lang.Integer"  resultMap="BaseResultMap">
+        SELECT p.* from sys_permission p  where id in (select permission_id from sys_permission_role where role_id=#{roleId});
+    </select>
+    
 </mapper>

+ 37 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/RoleMapper.xml

@@ -41,4 +41,41 @@
         WHERE
         id =#{id}
     </delete>
+    
+    
+    
+    
+    <insert id="roleBindPermission" parameterType="java.util.Map">
+       insert into sys_permission_role (role_id,permission_id) values (#{roleId},#{permissionId})
+    </insert>
+    
+    <insert id="roleBindUser" parameterType="java.util.Map">
+       insert into sys_role_user (sys_user_id,sys_role_id) values (#{userId},#{roleId})
+    </insert>
+    
+     <insert id="roleBindDepartment" parameterType="java.util.Map">
+       insert into sys_role_department (sys_department_id,sys_role_id) values (#{departmentId},#{roleId})
+    </insert>
+    
+     <insert id="roleBindJob" parameterType="java.util.Map">
+       insert into sys_role_job (sys_job_id,sys_role_id) values (#{jobId},#{roleId})
+    </insert>
+    
+    
+    <select id="getRoleByDept" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+       select * from sys_role where id in (select sys_role_id from sys_role_department where sys_department_id=#{departmentId})
+    </select>
+    
+    <select id="getRoleByUser" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+       select * from sys_role where id in (select sys_role_id from sys_role_user where sys_user_id=#{userId})
+    </select>
+    
+     <select id="getRoleByPosition" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+       select * from sys_role where id in (select sys_role_id from sys_role_job where sys_job_id=#{positionId})
+    </select>
+    
+    
+    
+    
+    
 </mapper>

+ 2 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/PermissionService.java

@@ -15,4 +15,6 @@ public interface PermissionService {
 	public void update(Permission permission);
 
 	public void delete(Integer id);
+	
+	public List<Permission> getByRoleId(int roleId);
 }

+ 17 - 3
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/RoleService.java

@@ -1,14 +1,14 @@
 package com.xintong.visualinspection.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.xintong.visualinspection.bean.Role;
 
 /**
- * 文件名:UserService
- * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ * 文件名:UserService 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
  */
-public interface RoleService  {
+public interface RoleService {
 	public List<Role> getRoles(Role role);
 
 	public void insert(Role role);
@@ -16,4 +16,18 @@ public interface RoleService  {
 	public void update(Role role);
 
 	public void delete(Integer id);
+
+	public void roleBindPermission(Integer roleId,Integer permissionId);
+
+	public void roleBindUser(Integer roleId,Integer userId);
+
+	public void roleBindDepartment(Integer roleId,Integer departmentId);
+
+	public void roleBindJob(Integer roleId,Integer jobId);
+
+	public List<Role> getRoleByDept(Integer departmentId);
+
+	public List<Role> getRoleByUser(Integer userId);
+
+	public List<Role> getRoleByPosition(Integer positionId);
 }

+ 5 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/PermissionServiceImpl.java

@@ -44,5 +44,10 @@ public class PermissionServiceImpl extends BaseService implements PermissionServ
 		permissionDao.delete(id);
 	}
 
+	@Override
+	public List<Permission> getByRoleId(int roleId) {
+		return permissionDao.getByRoleId(roleId);
+	}
+
   
 }

+ 57 - 3
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/RoleServiceImpl.java

@@ -1,6 +1,8 @@
 package com.xintong.visualinspection.service.impl;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,14 +13,11 @@ import com.xintong.visualinspection.dao.master.RoleDao;
 import com.xintong.visualinspection.service.BaseService;
 import com.xintong.visualinspection.service.RoleService;
 
-import lombok.Data;
-
 /**
  * 文件名:UserServiceImpl
  * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
  */
 @Service
-@Data
 public class RoleServiceImpl extends BaseService implements RoleService {
 
     private static final org.slf4j.Logger logger = LoggerFactory.getLogger(RoleService.class);
@@ -51,5 +50,60 @@ public class RoleServiceImpl extends BaseService implements RoleService {
 		roleDao.delete(id);
 	}
 
+
+
+	@Override
+	public List<Role> getRoleByDept(Integer departmentId) {
+		return roleDao.getRoleByDept(departmentId);
+	}
+
+
+	@Override
+	public List<Role> getRoleByUser(Integer userId) {
+		return roleDao.getRoleByUser(userId);
+	}
+
+
+	@Override
+	public List<Role> getRoleByPosition(Integer positionId) {
+		return getRoleByPosition(positionId);
+	}
+
+
+	@Override
+	public void roleBindPermission(Integer roleId, Integer permissionId) {
+		Map<String, Integer> part = new HashMap<String,Integer>();
+		part.put("roleId", roleId);
+		part.put("permissionId", permissionId);
+		roleDao.roleBindPermission(part);
+	}
+
+
+	@Override
+	public void roleBindUser(Integer roleId, Integer userId) {
+		Map<String, Integer> part = new HashMap<String,Integer>();
+		part.put("roleId", roleId);
+		part.put("userId", userId);
+		roleDao.roleBindUser(part);
+	}
+
+
+	@Override
+	public void roleBindDepartment(Integer roleId, Integer departmentId) {
+		Map<String, Integer> part = new HashMap<String,Integer>();
+		part.put("roleId", roleId);
+		part.put("departmentId", departmentId);
+		roleDao.roleBindDepartment(part);
+	}
+
+
+	@Override
+	public void roleBindJob(Integer roleId, Integer jobId) {
+		Map<String, Integer> part = new HashMap<String,Integer>();
+		part.put("roleId", roleId);
+		part.put("jobId", jobId);
+		roleDao.roleBindJob(part);
+	}
+
     
 }