wenhongquan 9 лет назад
Родитель
Сommit
5921beb78c
16 измененных файлов с 153 добавлено и 44 удалено
  1. 8 2
      VisualInspection/js/role/addrole.js
  2. 8 1
      VisualInspection/js/role/role.js
  3. 0 1
      VisualInspection/js/user/addUser.js
  4. 8 1
      VisualInspection/view/role/addrole.html
  5. 1 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/Role.java
  6. 5 7
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/DepartmentController.java
  7. 0 6
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/MenuController.java
  8. 6 3
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/RoleController.java
  9. 4 3
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/UserController.java
  10. 2 2
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/cluster/UserInfoMapper.xml
  11. 4 2
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/RoleMapper.xml
  12. 2 1
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/DepartmentService.java
  13. 2 1
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/RoleService.java
  14. 51 4
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/DepartmentServiceImpl.java
  15. 44 2
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/RoleServiceImpl.java
  16. 8 8
      VisualInspection_server/src/main/resources/application.properties

+ 8 - 2
VisualInspection/js/role/addrole.js

@@ -2,10 +2,12 @@
 function loadRoleData(role) {
     $("#role_name").val("");
     $("#role_des").val("");
+    $("#role_level").val("");
 
     if(role!=null && edittype=="edit"){
          $("#role_name").val(role.name);
         $("#role_des").val(role.des);
+        $("#role_level").val(role.level);
         roletemp = role;
        
     }
@@ -22,10 +24,13 @@ function addrole() {
 
     var role_name = $("#role_name").val();
     var role_des = $("#role_des").val();
+    var role_level = $("#role_level").val();
+    
 
     var data = {
         "name": role_name,
-        "des": role_des
+        "des": role_des,
+        "level":role_level
     }
 
     if (edittype == "add") {
@@ -50,7 +55,8 @@ function addrole() {
             layer.msg('修改成功!', {
                     time: 2000, //20s后自动关闭
                 }, function () {
-                    getrole(pagesize, pageNo);
+                    getrole(pagesize, 1);
+                     $('#addRoleModal').modal('hide')
                 });
         },function(error){
 

+ 8 - 1
VisualInspection/js/role/role.js

@@ -10,6 +10,13 @@ var cols = [{
     type: 'string',
     flex: true,
     colClass: 'text-center'
+},
+{
+    width: 'auto',
+    text: '角色等级',
+    type: 'number',
+    flex: true,
+    colClass: 'text-center'
 }, {
     width: 'auto',
     text: '用户数',
@@ -94,7 +101,7 @@ function getrole(size, page) {
                 var role = data.list[i];
                 var userdata = {};
                 userdata["checked"] = false;
-                userdata["data"] = [i + 1, role.des, role.usercount, '<button class="btn btn-primary" name="user_edit" id=' + role.id + '><i class="icon icon-edit"></i>修改</button>  <button class="btn btn-primary" name="user_delete" id=' + role.id + ' ><i class="icon icon-remove-circle"></i>删除</button>'];
+                userdata["data"] = [i + 1, role.des,role.level, role.usercount, '<button class="btn btn-primary" name="user_edit" id=' + role.id + '><i class="icon icon-edit"></i>修改</button>  <button class="btn btn-primary" name="user_delete" id=' + role.id + ' ><i class="icon icon-remove-circle"></i>删除</button>'];
                 rowdata.push(userdata);
                 RoleMap.set(role.id,role);
             }

+ 0 - 1
VisualInspection/js/user/addUser.js

@@ -152,7 +152,6 @@ function addUser() {
         "idno": useridno,
         "email": useremail,
         "pic": userpic,
-        "birth": userbirth,
         "organid": dept_selectinput.value,
         "positionid": 1,
         "truename": usertruename,

+ 8 - 1
VisualInspection/view/role/addrole.html

@@ -14,7 +14,7 @@
         <div class="form-group">
             <label for="exampleInputAccount4" class="col-sm-2">名称:</label>
             <div class="col-md-6 col-sm-10">
-                <input type="text" id="role_name" class="form-control" id="code_flag" placeholder="ROLE_ADMIN">
+                <input type="text" id="role_name" class="form-control" id="code_flag" placeholder="ROLE_JICHA_M/C_T  权限_部门_人员_子部门_人员">
             </div>
         </div>
 
@@ -24,5 +24,12 @@
                 <input type="text" id="role_des" class="form-control" id="code_flag" placeholder="超级管理员">
             </div>
         </div>
+
+        <div class="form-group">
+            <label for="exampleInputAccount4" class="col-sm-2">等级:</label>
+            <div class="col-md-6 col-sm-10">
+                <input type="number" id="role_level" class="form-control" id="code_flag" placeholder="数值越小等级越大">
+            </div>
+        </div>
     </form>
 </div>

+ 1 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/Role.java

@@ -12,4 +12,5 @@ public class Role {
     private String des;
     private String name;
     private Integer mod;
+    private Integer level;
 }

+ 5 - 7
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/DepartmentController.java

@@ -5,15 +5,12 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.xintong.system.err.BusinessException;
 import com.xintong.visualinspection.bean.FeeStation;
 import com.xintong.visualinspection.bean.Organ;
@@ -102,11 +99,12 @@ public class DepartmentController extends BaseController {
         }
     }
     @RequestMapping(value = "/get/all",method=RequestMethod.GET,produces="application/json;charset=UTF-8")
-    public String getAllDept(){
+    public String getAllDept(HttpServletRequest request){
         try{
+        	User u = getCurrentUser(request);
         	Organ organ=new Organ();
         	organ.setStatus(0);
-        	List<Organ> organs= departmentService.getOrgans(organ);
+        	List<Organ> organs= departmentService.getOrgans(organ,u);
         	return returnResult(0, "获取成功", organs);
         }catch(Exception e){
         	throw new BusinessException(20001);
@@ -119,7 +117,7 @@ public class DepartmentController extends BaseController {
    
         	Organ organ = new Organ();
         	organ.setParentid(pid);
-        	List<Organ> organs= departmentService.getOrgans(organ);
+        	List<Organ> organs= departmentService.getOrgans(organ,null);
         	return returnResult(0, "获取成功",(organs));
         }catch(Exception e){
         	throw new BusinessException(20001);
@@ -132,7 +130,7 @@ public class DepartmentController extends BaseController {
         	Organ organ = new Organ();
         	organ.setId(organid);
         	
-        	List<Organ> organs = departmentService.getOrgans(organ);
+        	List<Organ> organs = departmentService.getOrgans(organ,null);
         	if(organs==null||organs.size()<1 ) throw  new BusinessException(20001);
         	return returnResult(0, "获取成功", organs.get(0));
         }catch(Exception e){

+ 0 - 6
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/MenuController.java

@@ -1,14 +1,10 @@
 package com.xintong.visualinspection.controller;
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -20,9 +16,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xintong.system.err.BusinessException;
 import com.xintong.visualinspection.bean.Menu;
-import com.xintong.visualinspection.bean.Permission;
 import com.xintong.visualinspection.bean.User;
-import com.xintong.visualinspection.dao.master.PermissionDao;
 import com.xintong.visualinspection.service.MenuService;
 
 /**

+ 6 - 3
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/RoleController.java

@@ -3,6 +3,8 @@ package com.xintong.visualinspection.controller;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -14,6 +16,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xintong.system.err.BusinessException;
 import com.xintong.visualinspection.bean.Role;
+import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.pojo.RoleData;
 import com.xintong.visualinspection.service.RoleService;
 
@@ -89,10 +92,10 @@ public class RoleController extends BaseController {
 	 * @return
 	 */
 	@RequestMapping(value = "/get/all", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
-	public String getAllRole() {
+	public String getAllRole(HttpServletRequest request) {
 		try {
-	
-			List<Role> roles = roleService.getRoles(new Role());
+			User u = getCurrentUser(request);
+			List<Role> roles = roleService.getRoles(new Role(),u);
 
 			return returnResult(0, "获取成功", roles);
 		} catch (Exception e) {

+ 4 - 3
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/UserController.java

@@ -2,9 +2,10 @@ package com.xintong.visualinspection.controller;
 
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -17,7 +18,6 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xintong.system.err.BusinessException;
 import com.xintong.system.securityTools.RedisCacheUtil;
-import com.xintong.visualinspection.bean.Role;
 import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.service.AuthService;
 import com.xintong.visualinspection.service.RoleService;
@@ -147,8 +147,9 @@ public class UserController extends BaseController {
      * @return
      */
     @RequestMapping(value = "/get/all/{page}/{size}",method=RequestMethod.GET,produces="application/json;charset=UTF-8")
-    public String getallUsers(@PathVariable Integer page,@PathVariable Integer size ){
+    public String getallUsers(@PathVariable Integer page,@PathVariable Integer size ,HttpServletRequest request){
         try{
+        	
         	PageHelper.startPage(page, size); 
         	List<User> users= userService.getAll();
         	

+ 2 - 2
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/cluster/UserInfoMapper.xml

@@ -35,9 +35,9 @@
     <insert id="insert" parameterType="com.xintong.visualinspection.bean.User" >
         INSERT INTO
         t_sys_users
-        (username,password,TRUENAME,ORGANID,BIRTH,MOBILE,PHONE,POSITIONID,WORKNO,IDNO,EMAIL,PIC)
+        (username,password,TRUENAME,ORGANID,MOBILE,PHONE,POSITIONID,WORKNO,IDNO,EMAIL,PIC)
         VALUES
-        (#{username},#{password},#{truename},#{organid},#{birth},#{mobile},#{phone},#{positionid},#{workno},#{idno},#{email},#{pic})
+        (#{username},#{password},#{truename},#{organid},#{mobile},#{phone},#{positionid},#{workno},#{idno},#{email},#{pic})
     </insert>
 
     <update id="update" parameterType="com.xintong.visualinspection.bean.User" >

+ 4 - 2
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/RoleMapper.xml

@@ -6,6 +6,7 @@
         <result column="name" property="name" jdbcType="VARCHAR" />
         <result column="des" property="des" jdbcType="VARCHAR" />
         <result column="mod" property="mod" jdbcType="INTEGER" />
+        <result column="level" property="level" jdbcType="INTEGER" />
     </resultMap>
     
      <resultMap id="BaseRoleDaataMap" type="com.xintong.visualinspection.pojo.RoleData" >
@@ -37,9 +38,9 @@
     <insert id="insert" parameterType="com.xintong.visualinspection.bean.Role" >
         INSERT INTO
         sys_role
-        (name,des)
+        (name,des,level)
         VALUES
-        (#{name},#{des})
+        (#{name},#{des},#{level})
     </insert>
 
     <update id="update" parameterType="com.xintong.visualinspection.bean.Role" >
@@ -48,6 +49,7 @@
         SET
         <if test="name != null">name = #{name},</if>
         <if test="des != null">des = #{des},</if>
+        <if test="level != null and level != 0">level = #{level},</if>
         id = #{id}
         WHERE
         id = #{id}

+ 2 - 1
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/DepartmentService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.xintong.visualinspection.bean.FeeStation;
 import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.bean.User;
 
 /**
  * 文件名:UserService 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
@@ -11,7 +12,7 @@ import com.xintong.visualinspection.bean.Organ;
 public interface DepartmentService {
 	public List<Organ> getAll();
 	
-	public List<Organ> getOrgans(Organ organ);
+	public List<Organ> getOrgans(Organ organ,User u);
 
 	public void insert(Organ organ);
 

+ 2 - 1
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/RoleService.java

@@ -4,13 +4,14 @@ import java.util.List;
 import java.util.Map;
 
 import com.xintong.visualinspection.bean.Role;
+import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.pojo.RoleData;
 
 /**
  * 文件名:UserService 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
  */
 public interface RoleService {
-	public List<Role> getRoles(Role role);
+	public List<Role> getRoles(Role role,User u);
 
 	public void insert(Role role);
 

+ 51 - 4
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/DepartmentServiceImpl.java

@@ -12,6 +12,9 @@ import org.springframework.stereotype.Service;
 import com.xintong.visualinspection.bean.FeeStation;
 import com.xintong.visualinspection.bean.Menu;
 import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.bean.Permission;
+import com.xintong.visualinspection.bean.Role;
+import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.dao.cluster.DepartmentDao;
 import com.xintong.visualinspection.service.BaseService;
 import com.xintong.visualinspection.service.DepartmentService;
@@ -23,7 +26,6 @@ import lombok.Data;
  * 版权所有.
  */
 @Service
-@Data
 public class DepartmentServiceImpl extends BaseService implements DepartmentService {
 
 	private static final org.slf4j.Logger logger = LoggerFactory.getLogger(DepartmentService.class);
@@ -32,7 +34,7 @@ public class DepartmentServiceImpl extends BaseService implements DepartmentServ
 	private DepartmentDao departmentDao;
 
 	@Override
-	public List<Organ> getOrgans(Organ organ) {
+	public List<Organ> getOrgans(Organ organ,User u) {
 
 		List<Organ> organs = departmentDao.getOrgan(organ);
 		List<Organ> olist = new ArrayList<>();
@@ -60,7 +62,7 @@ public class DepartmentServiceImpl extends BaseService implements DepartmentServ
 			}
 		}
 
-		return olist;
+		return getOragnsByPermison(olist,u);
 	}
 
 	@Override
@@ -87,7 +89,7 @@ public class DepartmentServiceImpl extends BaseService implements DepartmentServ
 
 	@Override
 	public List<Organ> getAll() {
-		// TODO Auto-generated method stub
+
 		return departmentDao.getAll();
 	}
 
@@ -95,5 +97,50 @@ public class DepartmentServiceImpl extends BaseService implements DepartmentServ
 	public FeeStation getFSByDeptId(Integer id) {
 		return departmentDao.getFsBydeptId(id);
 	}
+	
+	private List<Organ> getOragnsByPermison(List<Organ> oragns,User user){
+		if(user == null ) return oragns;
+		boolean hasrole = false;
+		for(Role r:user.getRoles()){
+			if(r.getName().equals("ROLE_ADMIN")){
+				hasrole = true;
+				break;
+			}
+		}
+		if(hasrole){
+			return oragns;
+		}
+		
+		//找出自己
+		Organ temp = null;
+		for(Organ o :oragns){
+			temp = findOrgan(o,user.getOrganid());
+			if(temp!=null) break;	
+		}
+
+		if(temp!=null){
+			oragns = new ArrayList<>();
+			oragns.add(temp);
+		} 
+	    	
+	    return oragns;
+	}
+	
+	private Organ findOrgan(Organ o,Integer organid)
+	{
+		if(o.getId().intValue() == organid.intValue()){
+			return o;
+		}else{
+			if(o.getChilds()!=null && o.getChilds().size()>0){
+				for(Organ s:o.getChilds()){
+					Organ oo = findOrgan(s, organid);
+					if(oo!=null) return oo;
+				}
+				return null;
+			}else{
+				return null;
+			}
+		}
+	}
 
 }

+ 44 - 2
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/RoleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xintong.visualinspection.service.impl;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Service;
 
 import com.xintong.visualinspection.bean.Permission;
 import com.xintong.visualinspection.bean.Role;
+import com.xintong.visualinspection.bean.User;
 import com.xintong.visualinspection.dao.master.PermissionDao;
 import com.xintong.visualinspection.dao.master.RoleDao;
 import com.xintong.visualinspection.pojo.RoleData;
@@ -34,8 +36,48 @@ public class RoleServiceImpl extends BaseService implements RoleService {
 
 
 	@Override
-	public List<Role> getRoles(Role role) {
-		return roleDao.getRole(role);
+	public List<Role> getRoles(Role role,User u) {
+		
+		List<Role> roles = roleDao.getRole(role);
+		
+		if(u == null || u.getRoles()==null || u.getRoles().size() ==0) return roles;
+		boolean hasrole = false;
+		for(Role r:u.getRoles()){
+			if(r.getName().equals("ROLE_ADMIN")){
+				hasrole = true;
+				break;
+			}
+		}
+		if(hasrole) return roles;
+		//获取用户最高权限
+		int level=Integer.MAX_VALUE;
+		List<String> names = new ArrayList<>();
+		for(Role r:u.getRoles()){
+			if(r.getLevel()<level) level = r.getLevel();
+			names.add(r.getName());
+		}
+		
+		
+		List<Role> roletemp = new ArrayList<Role>();
+		for(Role r:roles){
+			if(r.getLevel()>=level){
+				boolean hasrole1 = false;
+				for(String s:names){
+					if(s.contains(r.getName())){
+						hasrole1 = true;
+					}
+				}
+				if(hasrole1){
+					roletemp.add(r);
+				}
+				
+			}
+			
+			
+		}
+		
+		roles = roletemp;
+		return roles;
 	}
 
 

+ 8 - 8
VisualInspection_server/src/main/resources/application.properties

@@ -2,8 +2,8 @@ server.port=8089
 spring.thymeleaf.cache=false
 context.listener.classes=com.xintong.SystemInit
 
-#master.datasource.url = jdbc:mysql://10.112.0.199:3306/visualinspection?useUnicode=true&characterEncoding=utf-8
-master.datasource.url = jdbc:mysql://git.topm.win:6381/visualinspection?useUnicode=true&characterEncoding=utf-8
+master.datasource.url = jdbc:mysql://10.112.0.199:3306/visualinspection?useUnicode=true&characterEncoding=utf-8
+#master.datasource.url = jdbc:mysql://git.topm.win:6381/visualinspection?useUnicode=true&characterEncoding=utf-8
 #master.datasource.url = jdbc:mysql://192.168.8.236:3306/visualinspection?useUnicode=true&characterEncoding=utf-8
 master.datasource.username = root
 master.datasource.password = root
@@ -11,8 +11,8 @@ master.datasource.driver-class-name = com.mysql.jdbc.Driver
 master.mapper-locations=classpath:com/xintong/visualinspection/mapper/master/*.xml
 
 ## \u7528\u6237\u6570\u636e\u6e90\u914d\u7f6e
-#cluster.datasource.url=jdbc:mysql://10.112.0.199:3306/yanhai?useUnicode=true&characterEncoding=utf8
-cluster.datasource.url=jdbc:mysql://git.topm.win:6381/yanhai?useUnicode=true&characterEncoding=utf8
+cluster.datasource.url=jdbc:mysql://10.112.0.199:3306/yanhai?useUnicode=true&characterEncoding=utf8
+#cluster.datasource.url=jdbc:mysql://git.topm.win:6381/yanhai?useUnicode=true&characterEncoding=utf8
 cluster.datasource.username=root
 cluster.datasource.password=root
 cluster.datasource.driver-class-name = com.mysql.jdbc.Driver
@@ -53,11 +53,11 @@ spring.datasource.useGlobalDataSourceStat=true
 # Redis\u6570\u636e\u5e93\u7d22\u5f15\uff08\u9ed8\u8ba4\u4e3a0\uff09
 spring.redis.database=0  
 # Redis\u670d\u52a1\u5668\u5730\u5740
-#spring.redis.host=10.112.0.199
-spring.redis.host=git.topm.win
+spring.redis.host=10.112.0.199
+#spring.redis.host=git.topm.win
 # Redis\u670d\u52a1\u5668\u8fde\u63a5\u7aef\u53e3
-spring.redis.port=6380
-#spring.redis.port=6380  
+#spring.redis.port=6380
+spring.redis.port=6379 
 # Redis\u670d\u52a1\u5668\u8fde\u63a5\u5bc6\u7801\uff08\u9ed8\u8ba4\u4e3a\u7a7a\uff09
 spring.redis.password=xintong
 # \u8fde\u63a5\u6c60\u6700\u5927\u8fde\u63a5\u6570\uff08\u4f7f\u7528\u8d1f\u503c\u8868\u793a\u6ca1\u6709\u9650\u5236\uff09