实现了对resource的批量删除,等接口

master
GPU is all you need 4 years ago
parent a910ab0fe8
commit 3a9c730cc6
  1. 7
      awardBE/src/main/java/edu/ncst/award/mapper/system/ResourceMapper.java
  2. 34
      awardBE/src/main/java/edu/ncst/award/service/impl/system/ResourceServiceImpl.java
  3. 51
      awardBE/src/main/resources/mapper/SysResourceMapper.xml

@ -6,7 +6,6 @@ import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Repository
public interface ResourceMapper extends BaseMapper<Resource> {
@ -26,9 +25,13 @@ public interface ResourceMapper extends BaseMapper<Resource> {
List<Resource> getResourceTree();
/**
* 约定mysql数据库中permitAll值bit 若b'0'表示not permitAll 返回null
* @return 公开的资源
*/
List<Resource> getPermitAllResourceList();
List<Resource> getUserScopeResourceList();
List<Resource> getUserScopeResourceList(List<String> roleNames);
List<String> getPermitAllResourceURLs();

@ -1,5 +1,7 @@
package edu.ncst.award.service.impl.system;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -12,7 +14,6 @@ import edu.ncst.award.vo.ListResultVO;
import edu.ncst.award.vo.Query;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
@ -30,7 +31,6 @@ import java.lang.reflect.Modifier;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
import java.util.function.Consumer;
@Service
public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> implements IResourceService {
@ -42,7 +42,7 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
// 欲扫描的包路径
private static final String SCAN_PACKAGE = "edu.ncst.equmanager.controller";
private static final String SCAN_PACKAGE = "edu.ncst.award.controller";
/**
* 重新导入接口元信息
@ -50,9 +50,9 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
@Caching(
evict = {
@CacheEvict(cacheNames = "permitAllResourceList"),
@CacheEvict(cacheNames = "userScopeResourceList"),
// @CacheEvict(cacheNames = "userScopeResourceList"),
@CacheEvict(cacheNames = "permitAllResourceURLs"),
@CacheEvict(cacheNames = "userScopeResourceURLs")
// @CacheEvict(cacheNames = "userScopeResourceURLs")
}
)
@Transactional
@ -137,6 +137,9 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
if (apiAnnotation != null && !apiAnnotation.hidden()) {
parentResource = new Resource();
parentResource.setCreateUserId(1)
.setCreateTime(LocalDateTimeUtil.now());
groupName = aClass.getName();
parentResource.setLabel(apiAnnotation.description());
@ -145,8 +148,10 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
parentResource.setMethod("ALL");
Integer parentResourceId = resourceMapper.getIdByName(groupName);
boolean isExistItSelf = resourceMapper.exists(new LambdaQueryWrapper<Resource>().eq(Resource::getName, groupName));
if (parentResourceId == null) {
// 若当前resource没有父节点并且自身不存在就插入,否则就修改
if (parentResourceId == null && !isExistItSelf) {
resourceMapper.insert(parentResource);
} else {
parentResource.setId(parentResourceId);
@ -361,15 +366,12 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
/**
* 获取多个角色能够访问的资源列表
*
* @return 返回一组路径 {/api,"/api/project"}
*k
* @return 返回一组Resource 对象
*/
@Override
public List<String> getRolesResourceList(List<String> roleNames) {
val strings = new ArrayList<String>();
roleNames.forEach(roleName -> list(new QueryWrapper<Resource>().eq("name", roleName)).forEach(Resource -> strings.add(Resource.getUrl())));
System.out.println("hello");
return strings;
public List<Resource> getUserScopeResourceList(List<String> roleNames) {
return resourceMapper.getUserScopeResourceList(roleNames);
}
/**
@ -388,11 +390,7 @@ public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> i
@Cacheable(cacheNames = "permitAllResourceURLs")
@Override
public List<String> getPermitAllResourceURLs() {
List<String> strings = new ArrayList<>();
strings.add("/api/user/current");
strings.add("/api/auth/logout");
//resourceMapper.getPermitAllResourceURLs();
return strings;
return resourceMapper.getPermitAllResourceURLs();
}
}

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="edu.ncst.award.mapper.system.ResourceMapper">
<select id="getIdByName" resultType="java.lang.Integer">
select id
from sys_resource
where name = #{name}
</select>
<select id="getPermitAllResourceList" resultType="edu.ncst.award.model.system.Resource">
select permit_all
from sys_resource
where permit_all = b'1'
</select>
<select id="getResourceTree" resultType="edu.ncst.award.model.system.Resource">
</select>
<select id="getPermitAllResourceURLs" resultType="java.lang.String">
select url
from sys_resource
where permit_all = b'1'
</select>
<select id="getRolesResourceUrls" parameterType="arraylist" resultType="java.lang.String">
select resource.url
from sys_resource resource
inner join sys_role_resource srr on resource.id = srr.resource_id
inner join sys_role sr on srr.role_id = sr.id
where sr.name in (<foreach item="roleName" collection="list" separator=",">#{roleName}</foreach>)
</select>
<select id="getUserScopeResourceList" resultType="edu.ncst.award.model.system.Resource">
select *
from sys_resource resource
inner join sys_role_resource srr on resource.id = srr.resource_id
inner join sys_role sr on srr.role_id = sr.id
where sr.name in (<foreach item="roleName" collection="list" separator=",">#{roleName}</foreach>)
</select>
<insert id="batchInsert">
insert into sys_resource (id, name, label, method, permit_all, url, sort, parent_id, enable, create_user_id,
create_time, last_modify_user_id, last_modify_time, delete_user_id, delete_time) values
<foreach collection="list" separator="," item="item">
(#{item.id},#{item.name},#{item.label}
,#{item.method},<if test="item.permitAll == null">b'0'</if>,#{item.url},#{item.sort}
,#{item.parentId},<if test="item.enable == null">b'1'</if>,
<if test="item.createUserId == null || item.createUserId == 0">1</if>
,<if test="item.createTime == null || item.createTime == ''">now()</if>,
<if test="item.lastModifyUserId == null || item.lastModifyUserId == 0">1</if>
,#{item.lastModifyTime},#{item.deleteUserId},#{item.deleteTime})
</foreach>
</insert>
</mapper>
Loading…
Cancel
Save