yumeng 5 éve
szülő
commit
f0649bee7c

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 580 - 580
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java


+ 35 - 25
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java

@@ -1,14 +1,13 @@
 package org.jeecg.modules.system.mapper;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.jeecg.modules.system.entity.SysPermission;
 import org.jeecg.modules.system.model.TreeModel;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
 
 /**
  * <p>
@@ -19,28 +18,39 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-12-21
  */
 public interface SysPermissionMapper extends BaseMapper<SysPermission> {
-	/**
-	   * 通过父菜单ID查询子菜单
-	 * @param parentId
-	 * @return
-	 */
-	public List<TreeModel> queryListByParentId(@Param("parentId") String parentId);
-	
-	/**
-	  *   根据用户查询用户权限
-	 */
-	public List<SysPermission> queryByUser(@Param("username") String username);
-	
-	/**
-	 *   修改菜单状态字段: 是否子节点
-	 */
-	@Update("update sys_permission set is_leaf=#{leaf} where id = #{id}")
-	public int setMenuLeaf(@Param("id") String id,@Param("leaf") int leaf);
-	
-	/**
-	  *   获取模糊匹配规则的数据权限URL
-	 */
-	@Select("SELECT url FROM sys_permission WHERE del_flag = 0 and menu_type = 2 and url like '%*%'")
+    /**
+     * 通过父菜单ID查询子菜单
+     *
+     * @param parentId
+     * @return
+     */
+    public List<TreeModel> queryListByParentId(@Param("parentId") String parentId);
+
+    /**
+     * 根据用户查询用户权限
+     */
+    public List<SysPermission> queryByUser(@Param("username") String username);
+
+    /**
+     * 修改菜单状态字段: 是否子节点
+     */
+    @Update("update sys_permission set is_leaf=#{leaf} where id = #{id}")
+    public int setMenuLeaf(@Param("id") String id, @Param("leaf") int leaf);
+
+    /**
+     * 获取模糊匹配规则的数据权限URL
+     */
+    @Select("SELECT url FROM sys_permission WHERE del_flag = 0 and menu_type = 2 and url like '%*%'")
     public List<String> queryPermissionUrlWithStar();
 
+
+    /**
+     * 查询 用户角色码
+     *
+     * @param username
+     * @return
+     */
+
+    String queryRoleCode(@Param("username") String username);
+
 }

+ 19 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml

@@ -54,4 +54,23 @@
 		   order by p.sort_no ASC
 	</select>
 
+
+    <select id="queryRoleCode" parameterType="Object" resultType="java.lang.String">
+	SELECT
+    role_code
+    FROM
+    sys_role
+    WHERE
+    id = (
+    SELECT
+    t2.role_id
+    FROM
+    sys_user t1
+    LEFT JOIN sys_user_role t2 ON t1.id = t2.user_id
+    WHERE
+    t1.username = #{username,jdbcType=VARCHAR}
+    )
+	</select>
+
+
 </mapper>

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java

@@ -45,4 +45,6 @@ public interface ISysPermissionService extends IService<SysPermission> {
 	 * @return
 	 */
 	public List<String> queryPermissionUrlWithStar();
+
+	String queryRoleCode(String username);
 }

+ 179 - 176
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java

@@ -1,11 +1,9 @@
 package org.jeecg.modules.system.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.constant.CacheConstant;
-
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.util.oConvertUtils;
@@ -20,9 +18,9 @@ import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -35,176 +33,181 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysPermission> implements ISysPermissionService {
 
-	@Resource
-	private SysPermissionMapper sysPermissionMapper;
-	
-	@Resource
-	private ISysPermissionDataRuleService permissionDataRuleService;
-	
-	@Override
-	public List<TreeModel> queryListByParentId(String parentId) {
-		return sysPermissionMapper.queryListByParentId(parentId);
-	}
-
-	/**
-	  * 真实删除
-	 */
-	@Override
-	@Transactional
-	@CacheEvict(value = CacheConstant.PERMISSION_CACHE,allEntries=true)
-	public void deletePermission(String id) throws JeecgBootException {
-		SysPermission sysPermission = this.getById(id);
-		if(sysPermission==null) {
-			throw new JeecgBootException("未找到菜单信息");
-		}
-		String pid = sysPermission.getParentId();
-
-		if(oConvertUtils.isNotEmpty(pid)) {
-			int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, pid));
-			if(count==1) {
-				//若父节点无其他子节点,则该父节点是叶子节点
-				this.sysPermissionMapper.setMenuLeaf(pid, 1);
-			}
-		}
-		sysPermissionMapper.deleteById(id);
-		// 该节点可能是子节点但也可能是其它节点的父节点,所以需要级联删除
-		this.removeChildrenBy(sysPermission.getId());
-	}
-	
-	/**
-	 * 根据父id删除其关联的子节点数据
-	 * 
-	 * @return
-	 */
-	public void removeChildrenBy(String parentId) {
-		LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
-		// 封装查询条件parentId为主键,
-		query.eq(SysPermission::getParentId, parentId);
-		// 查出该主键下的所有子级
-		List<SysPermission> permissionList = this.list(query);
-		if (permissionList != null && permissionList.size() > 0) {
+    @Resource
+    private SysPermissionMapper sysPermissionMapper;
+
+    @Resource
+    private ISysPermissionDataRuleService permissionDataRuleService;
+
+    @Override
+    public List<TreeModel> queryListByParentId(String parentId) {
+        return sysPermissionMapper.queryListByParentId(parentId);
+    }
+
+    /**
+     * 真实删除
+     */
+    @Override
+    @Transactional
+    @CacheEvict(value = CacheConstant.PERMISSION_CACHE, allEntries = true)
+    public void deletePermission(String id) throws JeecgBootException {
+        SysPermission sysPermission = this.getById(id);
+        if (sysPermission == null) {
+            throw new JeecgBootException("未找到菜单信息");
+        }
+        String pid = sysPermission.getParentId();
+
+        if (oConvertUtils.isNotEmpty(pid)) {
+            int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, pid));
+            if (count == 1) {
+                //若父节点无其他子节点,则该父节点是叶子节点
+                this.sysPermissionMapper.setMenuLeaf(pid, 1);
+            }
+        }
+        sysPermissionMapper.deleteById(id);
+        // 该节点可能是子节点但也可能是其它节点的父节点,所以需要级联删除
+        this.removeChildrenBy(sysPermission.getId());
+    }
+
+    /**
+     * 根据父id删除其关联的子节点数据
+     *
+     * @return
+     */
+    public void removeChildrenBy(String parentId) {
+        LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
+        // 封装查询条件parentId为主键,
+        query.eq(SysPermission::getParentId, parentId);
+        // 查出该主键下的所有子级
+        List<SysPermission> permissionList = this.list(query);
+        if (permissionList != null && permissionList.size() > 0) {
             String id = "";
             // 查出的子级数量
             int num = 0;
-			// 如果查出的集合不为空, 则先删除所有
-			this.remove(query);
-			// 再遍历刚才查出的集合, 根据每个对象,查找其是否仍有子级
-			for (int i = 0, len = permissionList.size(); i < len; i++) {
-				id = permissionList.get(i).getId();
-				num = this.count(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getParentId, id));
-				// 如果有, 则递归
-				if (num > 0) {
-					this.removeChildrenBy(id);
-				}
-			}
-		}
-	}
-	
-	/**
-	  * 逻辑删除
-	 */
-	@Override
-	@CacheEvict(value = CacheConstant.PERMISSION_CACHE,allEntries=true)
-	public void deletePermissionLogical(String id) throws JeecgBootException {
-		SysPermission sysPermission = this.getById(id);
-		if(sysPermission==null) {
-			throw new JeecgBootException("未找到菜单信息");
-		}
-		String pid = sysPermission.getParentId();
-		int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, pid));
-		if(count==1) {
-			//若父节点无其他子节点,则该父节点是叶子节点
-			this.sysPermissionMapper.setMenuLeaf(pid, 1);
-		}
-		sysPermission.setDelFlag(1);
-		this.updateById(sysPermission);
-	}
-
-	@Override
-	@CacheEvict(value = CacheConstant.PERMISSION_CACHE,allEntries=true)
-	public void addPermission(SysPermission sysPermission) throws JeecgBootException {
-		//----------------------------------------------------------------------
-		//判断是否是一级菜单,是的话清空父菜单
-		if(CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) {
-			sysPermission.setParentId(null);
-		}
-		//----------------------------------------------------------------------
-		String pid = sysPermission.getParentId();
-		if(oConvertUtils.isNotEmpty(pid)) {
-			//设置父节点不为叶子节点
-			this.sysPermissionMapper.setMenuLeaf(pid, 0);
-		}
-		sysPermission.setCreateTime(new Date());
-		sysPermission.setDelFlag(0);
-		sysPermission.setLeaf(true);
-		this.save(sysPermission);
-	}
-
-	@Override
-	@CacheEvict(value = CacheConstant.PERMISSION_CACHE,allEntries=true)
-	public void editPermission(SysPermission sysPermission) throws JeecgBootException {
-		SysPermission p = this.getById(sysPermission.getId());
-		//TODO 该节点判断是否还有子节点
-		if(p==null) {
-			throw new JeecgBootException("未找到菜单信息");
-		}else {
-			sysPermission.setUpdateTime(new Date());
-			//----------------------------------------------------------------------
-			//Step1.判断是否是一级菜单,是的话清空父菜单ID
-			if(CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) {
-				sysPermission.setParentId("");
-			}
-			//Step2.判断菜单下级是否有菜单,无则设置为叶子节点
-			int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, sysPermission.getId()));
-			if(count==0) {
-				sysPermission.setLeaf(true);
-			}
-			//----------------------------------------------------------------------
-			this.updateById(sysPermission);
-			
-			//如果当前菜单的父菜单变了,则需要修改新父菜单和老父菜单的,叶子节点状态
-			String pid = sysPermission.getParentId();
-			if((oConvertUtils.isNotEmpty(pid) && !pid.equals(p.getParentId())) || oConvertUtils.isEmpty(pid)&&oConvertUtils.isNotEmpty(p.getParentId())) {
-				//a.设置新的父菜单不为叶子节点
-				this.sysPermissionMapper.setMenuLeaf(pid, 0);
-				//b.判断老的菜单下是否还有其他子菜单,没有的话则设置为叶子节点
-				int cc = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, p.getParentId()));
-				if(cc==0) {
-					if(oConvertUtils.isNotEmpty(p.getParentId())) {
-						this.sysPermissionMapper.setMenuLeaf(p.getParentId(), 1);
-					}
-				}
-				
-			}
-		}
-		
-	}
-
-	@Override
-	public List<SysPermission> queryByUser(String username) {
-		return this.sysPermissionMapper.queryByUser(username);
-	}
-
-	/**
-	 * 根据permissionId删除其关联的SysPermissionDataRule表中的数据
-	 */
-	@Override
-	public void deletePermRuleByPermId(String id) {
-		LambdaQueryWrapper<SysPermissionDataRule> query = new LambdaQueryWrapper<>();
-		query.eq(SysPermissionDataRule::getPermissionId, id);
-		int countValue = this.permissionDataRuleService.count(query);
-		if(countValue > 0) {
-			this.permissionDataRuleService.remove(query);	
-		}
-	}
-
-	/**
-	  *   获取模糊匹配规则的数据权限URL
-	 */
-	@Override
-	@Cacheable(value = CacheConstant.PERMISSION_CACHE)
-	public List<String> queryPermissionUrlWithStar() {
-		return this.baseMapper.queryPermissionUrlWithStar();
-	}
+            // 如果查出的集合不为空, 则先删除所有
+            this.remove(query);
+            // 再遍历刚才查出的集合, 根据每个对象,查找其是否仍有子级
+            for (int i = 0, len = permissionList.size(); i < len; i++) {
+                id = permissionList.get(i).getId();
+                num = this.count(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getParentId, id));
+                // 如果有, 则递归
+                if (num > 0) {
+                    this.removeChildrenBy(id);
+                }
+            }
+        }
+    }
+
+    /**
+     * 逻辑删除
+     */
+    @Override
+    @CacheEvict(value = CacheConstant.PERMISSION_CACHE, allEntries = true)
+    public void deletePermissionLogical(String id) throws JeecgBootException {
+        SysPermission sysPermission = this.getById(id);
+        if (sysPermission == null) {
+            throw new JeecgBootException("未找到菜单信息");
+        }
+        String pid = sysPermission.getParentId();
+        int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, pid));
+        if (count == 1) {
+            //若父节点无其他子节点,则该父节点是叶子节点
+            this.sysPermissionMapper.setMenuLeaf(pid, 1);
+        }
+        sysPermission.setDelFlag(1);
+        this.updateById(sysPermission);
+    }
+
+    @Override
+    @CacheEvict(value = CacheConstant.PERMISSION_CACHE, allEntries = true)
+    public void addPermission(SysPermission sysPermission) throws JeecgBootException {
+        //----------------------------------------------------------------------
+        //判断是否是一级菜单,是的话清空父菜单
+        if (CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) {
+            sysPermission.setParentId(null);
+        }
+        //----------------------------------------------------------------------
+        String pid = sysPermission.getParentId();
+        if (oConvertUtils.isNotEmpty(pid)) {
+            //设置父节点不为叶子节点
+            this.sysPermissionMapper.setMenuLeaf(pid, 0);
+        }
+        sysPermission.setCreateTime(new Date());
+        sysPermission.setDelFlag(0);
+        sysPermission.setLeaf(true);
+        this.save(sysPermission);
+    }
+
+    @Override
+    @CacheEvict(value = CacheConstant.PERMISSION_CACHE, allEntries = true)
+    public void editPermission(SysPermission sysPermission) throws JeecgBootException {
+        SysPermission p = this.getById(sysPermission.getId());
+        //TODO 该节点判断是否还有子节点
+        if (p == null) {
+            throw new JeecgBootException("未找到菜单信息");
+        } else {
+            sysPermission.setUpdateTime(new Date());
+            //----------------------------------------------------------------------
+            //Step1.判断是否是一级菜单,是的话清空父菜单ID
+            if (CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) {
+                sysPermission.setParentId("");
+            }
+            //Step2.判断菜单下级是否有菜单,无则设置为叶子节点
+            int count = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, sysPermission.getId()));
+            if (count == 0) {
+                sysPermission.setLeaf(true);
+            }
+            //----------------------------------------------------------------------
+            this.updateById(sysPermission);
+
+            //如果当前菜单的父菜单变了,则需要修改新父菜单和老父菜单的,叶子节点状态
+            String pid = sysPermission.getParentId();
+            if ((oConvertUtils.isNotEmpty(pid) && !pid.equals(p.getParentId())) || oConvertUtils.isEmpty(pid) && oConvertUtils.isNotEmpty(p.getParentId())) {
+                //a.设置新的父菜单不为叶子节点
+                this.sysPermissionMapper.setMenuLeaf(pid, 0);
+                //b.判断老的菜单下是否还有其他子菜单,没有的话则设置为叶子节点
+                int cc = this.count(new QueryWrapper<SysPermission>().lambda().eq(SysPermission::getParentId, p.getParentId()));
+                if (cc == 0) {
+                    if (oConvertUtils.isNotEmpty(p.getParentId())) {
+                        this.sysPermissionMapper.setMenuLeaf(p.getParentId(), 1);
+                    }
+                }
+
+            }
+        }
+
+    }
+
+    @Override
+    public List<SysPermission> queryByUser(String username) {
+        return this.sysPermissionMapper.queryByUser(username);
+    }
+
+    /**
+     * 根据permissionId删除其关联的SysPermissionDataRule表中的数据
+     */
+    @Override
+    public void deletePermRuleByPermId(String id) {
+        LambdaQueryWrapper<SysPermissionDataRule> query = new LambdaQueryWrapper<>();
+        query.eq(SysPermissionDataRule::getPermissionId, id);
+        int countValue = this.permissionDataRuleService.count(query);
+        if (countValue > 0) {
+            this.permissionDataRuleService.remove(query);
+        }
+    }
+
+    /**
+     * 获取模糊匹配规则的数据权限URL
+     */
+    @Override
+    @Cacheable(value = CacheConstant.PERMISSION_CACHE)
+    public List<String> queryPermissionUrlWithStar() {
+        return this.baseMapper.queryPermissionUrlWithStar();
+    }
+
+    @Override
+    public String queryRoleCode(String username) {
+        return this.sysPermissionMapper.queryRoleCode(username);
+    }
 
 }