Commit ecc50c4b authored by macro's avatar macro
Browse files

添加权限管理相关接口

parent f1bec5df
package com.macro.mall.service.impl;
import com.macro.mall.mapper.UmsResourceCategoryMapper;
import com.macro.mall.model.UmsResourceCategory;
import com.macro.mall.model.UmsResourceCategoryExample;
import com.macro.mall.service.UmsResourceCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 后台资源分类管理Service实现类
* Created by macro on 2020/2/5.
*/
@Service
public class UmsResourceCategoryServiceImpl implements UmsResourceCategoryService {
@Autowired
private UmsResourceCategoryMapper resourceCategoryMapper;
@Override
public List<UmsResourceCategory> listAll() {
UmsResourceCategoryExample example = new UmsResourceCategoryExample();
example.setOrderByClause("sort desc");
return resourceCategoryMapper.selectByExample(example);
}
@Override
public int create(UmsResourceCategory umsResourceCategory) {
umsResourceCategory.setCreateTime(new Date());
return resourceCategoryMapper.insert(umsResourceCategory);
}
@Override
public int update(Long id, UmsResourceCategory umsResourceCategory) {
umsResourceCategory.setId(id);
return resourceCategoryMapper.updateByPrimaryKeySelective(umsResourceCategory);
}
@Override
public int delete(Long id) {
return resourceCategoryMapper.deleteByPrimaryKey(id);
}
}
package com.macro.mall.service.impl;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.macro.mall.mapper.UmsResourceMapper;
import com.macro.mall.model.UmsResource;
import com.macro.mall.model.UmsResourceExample;
import com.macro.mall.service.UmsResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 后台资源管理Service实现类
* Created by macro on 2020/2/2.
*/
@Service
public class UmsResourceServiceImpl implements UmsResourceService {
@Autowired
private UmsResourceMapper resourceMapper;
@Override
public int create(UmsResource umsResource) {
umsResource.setCreateTime(new Date());
return resourceMapper.insert(umsResource);
}
@Override
public int update(Long id, UmsResource umsResource) {
umsResource.setId(id);
return resourceMapper.updateByPrimaryKeySelective(umsResource);
}
@Override
public UmsResource getItem(Long id) {
return resourceMapper.selectByPrimaryKey(id);
}
@Override
public int delete(Long id) {
return resourceMapper.deleteByPrimaryKey(id);
}
@Override
public List<UmsResource> list(Long categoryId, String nameKeyword, String urlKeyword, Integer pageSize, Integer pageNum) {
PageHelper.startPage(pageNum,pageSize);
UmsResourceExample example = new UmsResourceExample();
UmsResourceExample.Criteria criteria = example.createCriteria();
if(categoryId!=null){
criteria.andCategoryIdEqualTo(categoryId);
}
if(StrUtil.isNotEmpty(nameKeyword)){
criteria.andNameLike('%'+nameKeyword+'%');
}
if(StrUtil.isNotEmpty(urlKeyword)){
criteria.andUrlLike('%'+urlKeyword+'%');
}
return resourceMapper.selectByExample(example);
}
@Override
public List<UmsResource> listAll() {
return resourceMapper.selectByExample(new UmsResourceExample());
}
}
package com.macro.mall.service.impl;
import com.github.pagehelper.PageHelper;
import com.macro.mall.dao.UmsRoleDao;
import com.macro.mall.dao.UmsRolePermissionRelationDao;
import com.macro.mall.mapper.UmsRoleMapper;
import com.macro.mall.mapper.UmsRoleMenuRelationMapper;
import com.macro.mall.mapper.UmsRolePermissionRelationMapper;
import com.macro.mall.mapper.UmsRoleResourceRelationMapper;
import com.macro.mall.model.*;
import com.macro.mall.service.UmsRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
......@@ -23,11 +28,16 @@ public class UmsRoleServiceImpl implements UmsRoleService {
@Autowired
private UmsRolePermissionRelationMapper rolePermissionRelationMapper;
@Autowired
private UmsRoleMenuRelationMapper roleMenuRelationMapper;
@Autowired
private UmsRoleResourceRelationMapper roleResourceRelationMapper;
@Autowired
private UmsRolePermissionRelationDao rolePermissionRelationDao;
@Autowired
private UmsRoleDao roleDao;
@Override
public int create(UmsRole role) {
role.setCreateTime(new Date());
role.setStatus(1);
role.setAdminCount(0);
role.setSort(0);
return roleMapper.insert(role);
......@@ -36,7 +46,7 @@ public class UmsRoleServiceImpl implements UmsRoleService {
@Override
public int update(Long id, UmsRole role) {
role.setId(id);
return roleMapper.updateByPrimaryKey(role);
return roleMapper.updateByPrimaryKeySelective(role);
}
@Override
......@@ -72,4 +82,61 @@ public class UmsRoleServiceImpl implements UmsRoleService {
public List<UmsRole> list() {
return roleMapper.selectByExample(new UmsRoleExample());
}
@Override
public List<UmsRole> list(String keyword, Integer pageSize, Integer pageNum) {
PageHelper.startPage(pageNum, pageSize);
UmsRoleExample example = new UmsRoleExample();
if (!StringUtils.isEmpty(keyword)) {
example.createCriteria().andNameLike("%" + keyword + "%");
}
return roleMapper.selectByExample(example);
}
@Override
public List<UmsMenu> getMenuList(Long adminId) {
return roleDao.getMenuList(adminId);
}
@Override
public List<UmsMenu> listMenu(Long roleId) {
return roleDao.getMenuListByRoleId(roleId);
}
@Override
public List<UmsResource> listResource(Long roleId) {
return roleDao.getResourceListByRoleId(roleId);
}
@Override
public int allocMenu(Long roleId, List<Long> menuIds) {
//先删除原有关系
UmsRoleMenuRelationExample example=new UmsRoleMenuRelationExample();
example.createCriteria().andRoleIdEqualTo(roleId);
roleMenuRelationMapper.deleteByExample(example);
//批量插入新关系
for (Long menuId : menuIds) {
UmsRoleMenuRelation relation = new UmsRoleMenuRelation();
relation.setRoleId(roleId);
relation.setMenuId(menuId);
roleMenuRelationMapper.insert(relation);
}
return menuIds.size();
}
@Override
public int allocResource(Long roleId, List<Long> resourceIds) {
//先删除原有关系
UmsRoleResourceRelationExample example=new UmsRoleResourceRelationExample();
example.createCriteria().andRoleIdEqualTo(roleId);
roleResourceRelationMapper.deleteByExample(example);
//批量插入新关系
for (Long resourceId : resourceIds) {
UmsRoleResourceRelation relation = new UmsRoleResourceRelation();
relation.setRoleId(roleId);
relation.setResourceId(resourceId);
roleResourceRelationMapper.insert(relation);
}
return resourceIds.size();
}
}
......@@ -33,6 +33,8 @@ secure:
- /druid/**
- /admin/login
- /admin/register
- /admin/info
- /admin/logout
- /minio/upload
aliyun:
......
......@@ -52,4 +52,23 @@
pr.type = 1
AND pr.admin_id = #{adminId}
</select>
<select id="getResourceList" resultType="com.macro.mall.model.UmsResource">
SELECT
ur.id id,
ur.create_time createTime,
ur.`name` `name`,
ur.url url,
ur.description description,
ur.category_id categoryId
FROM
ums_admin_role_relation ar
LEFT JOIN ums_role r ON ar.role_id = r.id
LEFT JOIN ums_role_resource_relation rrr ON r.id = rrr.role_id
LEFT JOIN ums_resource ur ON ur.id = rrr.resource_id
WHERE
ar.admin_id = #{adminId}
AND ur.id IS NOT NULL
GROUP BY
ur.id
</select>
</mapper>
\ No newline at end of file
<?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="com.macro.mall.dao.UmsRoleDao">
<select id="getMenuList" resultType="com.macro.mall.model.UmsMenu">
SELECT
m.id id,
m.parent_id parentId,
m.create_time createTime,
m.title title,
m.level level,
m.sort sort,
m.name name,
m.icon icon,
m.hidden hidden
FROM
ums_admin_role_relation arr
LEFT JOIN ums_role r ON arr.role_id = r.id
LEFT JOIN ums_role_menu_relation rmr ON r.id = rmr.role_id
LEFT JOIN ums_menu m ON rmr.menu_id = m.id
WHERE
arr.admin_id = #{adminId}
AND m.id IS NOT NULL
GROUP BY
m.id
</select>
<select id="getMenuListByRoleId" resultType="com.macro.mall.model.UmsMenu">
SELECT
m.id id,
m.parent_id parentId,
m.create_time createTime,
m.title title,
m.level level,
m.sort sort,
m.name name,
m.icon icon,
m.hidden hidden
FROM
ums_role_menu_relation rmr
LEFT JOIN ums_menu m ON rmr.menu_id = m.id
WHERE
rmr.role_id = #{roleId}
AND m.id IS NOT NULL
GROUP BY
m.id
</select>
<select id="getResourceListByRoleId" resultType="com.macro.mall.model.UmsResource">
SELECT
r.id id,
r.create_time createTime,
r.`name` `name`,
r.url url,
r.description description,
r.category_id categoryId
FROM
ums_role_resource_relation rrr
LEFT JOIN ums_resource r ON rrr.resource_id = r.id
WHERE
rrr.role_id = #{roleId}
AND r.id IS NOT NULL
GROUP BY
r.id
</select>
</mapper>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment