修改权限
This commit is contained in:
parent
4cf726c993
commit
a4fe623e1c
|
|
@ -9,6 +9,7 @@ import com.hxkj.common.core.AjaxResult;
|
||||||
import com.hxkj.common.enums.HttpEnum;
|
import com.hxkj.common.enums.HttpEnum;
|
||||||
import com.hxkj.common.utils.RedisUtil;
|
import com.hxkj.common.utils.RedisUtil;
|
||||||
import com.hxkj.common.utils.ToolsUtil;
|
import com.hxkj.common.utils.ToolsUtil;
|
||||||
|
import com.hxkj.common.utils.YmlUtil;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.method.HandlerMethod;
|
import org.springframework.web.method.HandlerMethod;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
@ -47,9 +48,14 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
|
||||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 路由转权限
|
||||||
|
String prefix = YmlUtil.get("server.servlet.context-path") + "/";
|
||||||
|
String route = request.getRequestURI().replaceFirst(prefix, "");
|
||||||
|
String auths = route.replace("/", ":");
|
||||||
|
|
||||||
// 免登录接口
|
// 免登录接口
|
||||||
List<String> notLoginUri = Arrays.asList(AdminConfig.notLoginUri);
|
List<String> notLoginUri = Arrays.asList(AdminConfig.notLoginUri);
|
||||||
if (notLoginUri.contains(request.getRequestURI())) {
|
if (notLoginUri.contains(auths)) {
|
||||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,7 +123,7 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
// 验证是否有权限操作
|
// 验证是否有权限操作
|
||||||
String menus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
|
String menus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
|
||||||
if (menus.equals("") || !Arrays.asList(menus.split(",")).contains(request.getRequestURI())) {
|
if (menus.equals("") || !Arrays.asList(menus.split(",")).contains(auths)) {
|
||||||
AjaxResult result = AjaxResult.failed(HttpEnum.NO_PERMISSION.getCode(), HttpEnum.NO_PERMISSION.getMsg());
|
AjaxResult result = AjaxResult.failed(HttpEnum.NO_PERMISSION.getCode(), HttpEnum.NO_PERMISSION.getMsg());
|
||||||
response.getWriter().print(JSON.toJSONString(result));
|
response.getWriter().print(JSON.toJSONString(result));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,13 @@ public class AdminConfig {
|
||||||
|
|
||||||
// 免登录验证
|
// 免登录验证
|
||||||
public static String[] notLoginUri = new String[]{
|
public static String[] notLoginUri = new String[]{
|
||||||
"/api/system/login",
|
"system:login", // 登录接口
|
||||||
"/api/index/config",
|
"index:config" // 配置接口
|
||||||
};
|
};
|
||||||
|
|
||||||
// 免权限验证
|
// 免权限验证
|
||||||
public static String[] notAuthUri = new String[]{};
|
public static String[] notAuthUri = new String[]{
|
||||||
|
"system:admin:upInfo" // 管理员更新接口
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import java.util.Map;
|
||||||
* 相册管理
|
* 相册管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/album")
|
@RequestMapping("/album")
|
||||||
public class AlbumController {
|
public class AlbumController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/article")
|
@RequestMapping("/article")
|
||||||
public class ArticleController {
|
public class ArticleController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import java.util.Map;
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/index")
|
@RequestMapping("/index")
|
||||||
public class IndexController {
|
public class IndexController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import java.util.Map;
|
||||||
* 上传管理
|
* 上传管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/upload")
|
@RequestMapping("/upload")
|
||||||
public class UploadController {
|
public class UploadController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import java.util.*;
|
||||||
* 缓存监控管理
|
* 缓存监控管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/monitor")
|
@RequestMapping("/monitor")
|
||||||
public class CacheController {
|
public class CacheController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import java.util.Map;
|
||||||
* 服务监控管理
|
* 服务监控管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/monitor")
|
@RequestMapping("/monitor")
|
||||||
public class ServerController {
|
public class ServerController {
|
||||||
/**
|
/**
|
||||||
* 服务器信息
|
* 服务器信息
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,14 @@ import java.util.Map;
|
||||||
* 基础设置管理
|
* 基础设置管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/setting")
|
@RequestMapping("/setting")
|
||||||
public class BasicsController {
|
public class BasicsController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
IBasicsService iBasicsService;
|
IBasicsService iBasicsService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取网站信息
|
* “获取”网站信息
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @return Object
|
* @return Object
|
||||||
|
|
@ -32,7 +32,7 @@ public class BasicsController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改网站信息
|
* “修改”网站信息
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @return Object
|
* @return Object
|
||||||
|
|
@ -49,7 +49,7 @@ public class BasicsController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取备案信息
|
* “获取”备案信息
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @return Object
|
* @return Object
|
||||||
|
|
@ -62,7 +62,7 @@ public class BasicsController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改备案信息
|
* “修改”备案信息
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @return Object
|
* @return Object
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.hxkj.admin.service.ISystemAdminService;
|
||||||
import com.hxkj.admin.validate.PageParam;
|
import com.hxkj.admin.validate.PageParam;
|
||||||
import com.hxkj.admin.validate.system.SystemAdminParam;
|
import com.hxkj.admin.validate.system.SystemAdminParam;
|
||||||
import com.hxkj.admin.vo.system.SystemAdminVo;
|
import com.hxkj.admin.vo.system.SystemAdminVo;
|
||||||
|
import com.hxkj.admin.vo.system.SystemSelfVo;
|
||||||
import com.hxkj.common.core.AjaxResult;
|
import com.hxkj.common.core.AjaxResult;
|
||||||
import com.hxkj.common.core.PageResult;
|
import com.hxkj.common.core.PageResult;
|
||||||
import com.hxkj.common.validator.annotation.IDMust;
|
import com.hxkj.common.validator.annotation.IDMust;
|
||||||
|
|
@ -19,7 +20,7 @@ import java.util.Map;
|
||||||
* 系统管理员管理
|
* 系统管理员管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/system/admin")
|
@RequestMapping("/system/admin")
|
||||||
public class SystemAdminController {
|
public class SystemAdminController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -47,7 +48,7 @@ public class SystemAdminController {
|
||||||
@GetMapping("/self")
|
@GetMapping("/self")
|
||||||
public Object self() {
|
public Object self() {
|
||||||
Integer adminId = LikeAdminThreadLocal.getAdminId();
|
Integer adminId = LikeAdminThreadLocal.getAdminId();
|
||||||
SystemAdminVo vo = iSystemAdminService.detail(adminId);
|
SystemSelfVo vo = iSystemAdminService.self(adminId);
|
||||||
return AjaxResult.success(vo);
|
return AjaxResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,7 +66,7 @@ public class SystemAdminController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增管理员
|
* 管理员新增
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param systemAdminParam 参数
|
* @param systemAdminParam 参数
|
||||||
|
|
@ -79,7 +80,7 @@ public class SystemAdminController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑管理员
|
* 管理员编辑
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param systemAdminParam 参数
|
* @param systemAdminParam 参数
|
||||||
|
|
@ -93,7 +94,21 @@ public class SystemAdminController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除管理员
|
* 当前管理员更新
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "管理员更新")
|
||||||
|
@PostMapping("/upInfo")
|
||||||
|
public Object upInfo(@Validated(value = SystemAdminParam.upInfo.class) @RequestBody SystemAdminParam systemAdminParam) {
|
||||||
|
Integer adminId = LikeAdminThreadLocal.getAdminId();
|
||||||
|
iSystemAdminService.upInfo(systemAdminParam, adminId);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 管理员删除
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @return Object
|
* @return Object
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import java.util.Map;
|
||||||
* 系统日志管理
|
* 系统日志管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/system/log")
|
@RequestMapping("/system/log")
|
||||||
public class SystemLogController {
|
public class SystemLogController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import java.util.Map;
|
||||||
* 系统登录管理
|
* 系统登录管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/system")
|
@RequestMapping("/system")
|
||||||
public class SystemLoginController {
|
public class SystemLoginController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import java.util.List;
|
||||||
* 系统菜单管理
|
* 系统菜单管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/system/menu")
|
@RequestMapping("/system/menu")
|
||||||
public class SystemMenuController {
|
public class SystemMenuController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -38,19 +38,6 @@ public class SystemMenuController {
|
||||||
return AjaxResult.success(lists);
|
return AjaxResult.success(lists);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限节点
|
|
||||||
*
|
|
||||||
* @author fzr
|
|
||||||
* @return Object
|
|
||||||
*/
|
|
||||||
@GetMapping("/auth")
|
|
||||||
public Object auth() {
|
|
||||||
Integer roleId = LikeAdminThreadLocal.getRoleId();
|
|
||||||
List<SystemAuthVo> lists = iSystemMenuService.selectAuthByRoleId(roleId);
|
|
||||||
return AjaxResult.success(lists);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取菜单列表
|
* 获取菜单列表
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import javax.annotation.Resource;
|
||||||
* 系统角色管理
|
* 系统角色管理
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/system/role")
|
@RequestMapping("/system/role")
|
||||||
public class SystemRoleController {
|
public class SystemRoleController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.hxkj.admin.service;
|
||||||
import com.hxkj.admin.validate.PageParam;
|
import com.hxkj.admin.validate.PageParam;
|
||||||
import com.hxkj.admin.validate.system.SystemAdminParam;
|
import com.hxkj.admin.validate.system.SystemAdminParam;
|
||||||
import com.hxkj.admin.vo.system.SystemAdminVo;
|
import com.hxkj.admin.vo.system.SystemAdminVo;
|
||||||
|
import com.hxkj.admin.vo.system.SystemSelfVo;
|
||||||
import com.hxkj.common.core.PageResult;
|
import com.hxkj.common.core.PageResult;
|
||||||
import com.hxkj.common.entity.system.SystemAdmin;
|
import com.hxkj.common.entity.system.SystemAdmin;
|
||||||
|
|
||||||
|
|
@ -31,6 +32,14 @@ public interface ISystemAdminService {
|
||||||
*/
|
*/
|
||||||
PageResult<SystemAdminVo> lists(PageParam pageParam, Map<String, String> params);
|
PageResult<SystemAdminVo> lists(PageParam pageParam, Map<String, String> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前管理员
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @return SystemSelfVo
|
||||||
|
*/
|
||||||
|
SystemSelfVo self(Integer adminId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员详情
|
* 管理员详情
|
||||||
*
|
*
|
||||||
|
|
@ -56,6 +65,14 @@ public interface ISystemAdminService {
|
||||||
*/
|
*/
|
||||||
void edit(SystemAdminParam systemAdminParam);
|
void edit(SystemAdminParam systemAdminParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前管理员更新
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @param systemAdminParam 参数
|
||||||
|
*/
|
||||||
|
void upInfo(SystemAdminParam systemAdminParam, Integer adminId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员删除
|
* 管理员删除
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -20,14 +20,6 @@ public interface ISystemMenuService {
|
||||||
*/
|
*/
|
||||||
JSONArray selectMenuByRoleId(Integer roleId);
|
JSONArray selectMenuByRoleId(Integer roleId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据角色获取权限
|
|
||||||
*
|
|
||||||
* @author fzr
|
|
||||||
* @return JSONArray
|
|
||||||
*/
|
|
||||||
List<SystemAuthVo> selectAuthByRoleId(Integer roleId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单列表
|
* 菜单列表
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.hxkj.admin.LikeAdminThreadLocal;
|
import com.hxkj.admin.LikeAdminThreadLocal;
|
||||||
import com.hxkj.admin.config.AdminConfig;
|
import com.hxkj.admin.config.AdminConfig;
|
||||||
import com.hxkj.admin.service.ISystemAdminService;
|
import com.hxkj.admin.service.ISystemAdminService;
|
||||||
|
import com.hxkj.admin.service.ISystemRoleMenuService;
|
||||||
import com.hxkj.admin.service.ISystemRoleService;
|
import com.hxkj.admin.service.ISystemRoleService;
|
||||||
import com.hxkj.admin.validate.PageParam;
|
import com.hxkj.admin.validate.PageParam;
|
||||||
import com.hxkj.admin.validate.system.SystemAdminParam;
|
import com.hxkj.admin.validate.system.SystemAdminParam;
|
||||||
import com.hxkj.admin.vo.system.SystemAdminVo;
|
import com.hxkj.admin.vo.system.SystemAdminVo;
|
||||||
|
import com.hxkj.admin.vo.system.SystemSelfVo;
|
||||||
import com.hxkj.common.core.PageResult;
|
import com.hxkj.common.core.PageResult;
|
||||||
import com.hxkj.common.entity.system.SystemAdmin;
|
import com.hxkj.common.entity.system.SystemAdmin;
|
||||||
|
import com.hxkj.common.entity.system.SystemMenu;
|
||||||
|
import com.hxkj.common.entity.system.SystemRoleMenu;
|
||||||
import com.hxkj.common.mapper.system.SystemAdminMapper;
|
import com.hxkj.common.mapper.system.SystemAdminMapper;
|
||||||
|
import com.hxkj.common.mapper.system.SystemMenuMapper;
|
||||||
|
import com.hxkj.common.mapper.system.SystemRoleMenuMapper;
|
||||||
import com.hxkj.common.utils.*;
|
import com.hxkj.common.utils.*;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -31,9 +37,15 @@ public class SystemAdminServiceImpl implements ISystemAdminService {
|
||||||
@Resource
|
@Resource
|
||||||
SystemAdminMapper systemAdminMapper;
|
SystemAdminMapper systemAdminMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
SystemMenuMapper systemMenuMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
ISystemRoleService iSystemRoleService;
|
ISystemRoleService iSystemRoleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ISystemRoleMenuService iSystemRoleMenuService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据账号查找管理员
|
* 根据账号查找管理员
|
||||||
*
|
*
|
||||||
|
|
@ -98,6 +110,60 @@ public class SystemAdminServiceImpl implements ISystemAdminService {
|
||||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), adminVoArrayList);
|
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), adminVoArrayList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前管理员
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @return SystemSelfVo
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SystemSelfVo self(Integer adminId) {
|
||||||
|
// 管理员信息
|
||||||
|
SystemAdmin sysAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
|
||||||
|
.select(SystemAdmin.class, info->
|
||||||
|
!info.getColumn().equals("salt") &&
|
||||||
|
!info.getColumn().equals("password") &&
|
||||||
|
!info.getColumn().equals("is_delete") &&
|
||||||
|
!info.getColumn().equals("delete_time"))
|
||||||
|
.eq("is_delete", 0)
|
||||||
|
.eq("id", adminId)
|
||||||
|
.last("limit 1"));
|
||||||
|
|
||||||
|
SystemAdminVo systemAdminVo = new SystemAdminVo();
|
||||||
|
BeanUtils.copyProperties(sysAdmin, systemAdminVo);
|
||||||
|
systemAdminVo.setRole(String.valueOf(sysAdmin.getRole()));
|
||||||
|
systemAdminVo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar()));
|
||||||
|
systemAdminVo.setUpdateTime(TimeUtil.timestampToDate(sysAdmin.getUpdateTime()));
|
||||||
|
systemAdminVo.setCreateTime(TimeUtil.timestampToDate(sysAdmin.getCreateTime()));
|
||||||
|
systemAdminVo.setLastLoginTime(TimeUtil.timestampToDate(sysAdmin.getLastLoginTime()));
|
||||||
|
|
||||||
|
// 角色权限
|
||||||
|
List<String> auths = new LinkedList<>();
|
||||||
|
if (adminId > 1) {
|
||||||
|
List<Integer> menuIds = iSystemRoleMenuService.selectMenuIdsByRoleId(sysAdmin.getRole());
|
||||||
|
List<SystemMenu> systemMenus = systemMenuMapper.selectList(new QueryWrapper<SystemMenu>()
|
||||||
|
.eq("is_disable", 0)
|
||||||
|
.in("id", menuIds)
|
||||||
|
.in("menu_type", Arrays.asList("C", "A"))
|
||||||
|
.orderByAsc(Arrays.asList("menu_sort", "id")));
|
||||||
|
|
||||||
|
// 处理权限
|
||||||
|
for (SystemMenu item : systemMenus) {
|
||||||
|
if (StringUtil.isNotNull(item.getPerms()) && StringUtil.isNotEmpty(item.getPerms())) {
|
||||||
|
auths.add(item.getPerms().trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
auths.add("*");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回数据
|
||||||
|
SystemSelfVo vo = new SystemSelfVo();
|
||||||
|
vo.setUser(systemAdminVo);
|
||||||
|
vo.setPermissions(auths);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员详细
|
* 管理员详细
|
||||||
*
|
*
|
||||||
|
|
@ -224,9 +290,42 @@ public class SystemAdminServiceImpl implements ISystemAdminService {
|
||||||
|
|
||||||
systemAdminMapper.updateById(model);
|
systemAdminMapper.updateById(model);
|
||||||
this.cacheAdminUserByUid(systemAdminParam.getId());
|
this.cacheAdminUserByUid(systemAdminParam.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前管理员更新
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @param systemAdminParam 参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void upInfo(SystemAdminParam systemAdminParam, Integer adminId) {
|
||||||
|
String[] field = {"id", "username", "nickname"};
|
||||||
|
SystemAdmin model = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
|
||||||
|
.select(field)
|
||||||
|
.eq("id", adminId)
|
||||||
|
.eq("is_delete", 0)
|
||||||
|
.last("limit 1"));
|
||||||
|
|
||||||
|
Assert.notNull(model, "账号不存在了!");
|
||||||
|
|
||||||
|
model.setNickname(systemAdminParam.getNickname());
|
||||||
|
model.setAvatar( UrlUtil.toRelativeUrl(systemAdminParam.getAvatar()));
|
||||||
|
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
||||||
|
if (systemAdminParam.getPassword() != null && !systemAdminParam.getPassword().equals("")) {
|
||||||
|
String salt = ToolsUtil.randomString(5);
|
||||||
|
String pwd = ToolsUtil.makeMd5( systemAdminParam.getPassword().trim() + salt);
|
||||||
|
model.setPassword(pwd);
|
||||||
|
model.setSalt(salt);
|
||||||
|
}
|
||||||
|
|
||||||
|
systemAdminMapper.updateById(model);
|
||||||
|
this.cacheAdminUserByUid(adminId);
|
||||||
|
|
||||||
if (systemAdminParam.getPassword() != null) {
|
if (systemAdminParam.getPassword() != null) {
|
||||||
RedisUtil.del(Objects.requireNonNull(HttpUtil.obj()).getHeader("token"));
|
String token = Objects.requireNonNull(HttpUtil.obj()).getHeader("token");
|
||||||
|
RedisUtil.del(AdminConfig.backstageTokenKey + token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
|
||||||
|
|
||||||
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.in("menu_type", Arrays.asList("M", "C"));
|
queryWrapper.in("menu_type", Arrays.asList("M", "C"));
|
||||||
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
|
queryWrapper.orderByAsc(Arrays.asList("menu_sort", "id"));
|
||||||
if (adminId != 1 && menuIds.size() > 0) {
|
if (adminId != 1 && menuIds.size() > 0) {
|
||||||
queryWrapper.in("id", menuIds);
|
queryWrapper.in("id", menuIds);
|
||||||
}
|
}
|
||||||
|
|
@ -65,64 +65,6 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
|
||||||
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
|
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据角色ID获取权限
|
|
||||||
*
|
|
||||||
* @param roleId 角色ID
|
|
||||||
* @return JSONArray
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SystemAuthVo> selectAuthByRoleId(Integer roleId) {
|
|
||||||
List<Integer> menuIds = iSystemRoleMenuService.selectMenuIdsByRoleId(roleId);
|
|
||||||
|
|
||||||
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.in("menu_type", Arrays.asList("C", "A"));
|
|
||||||
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
|
|
||||||
if (menuIds.size() > 0) {
|
|
||||||
queryWrapper.in("id", menuIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<SystemMenu> systemMenus = systemMenuMapper.selectList(queryWrapper);
|
|
||||||
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(systemMenus));
|
|
||||||
JSONArray menuJson = ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
|
|
||||||
|
|
||||||
List<SystemAuthVo> authVos = new ArrayList<>();
|
|
||||||
for (Object object : menuJson.toArray()) {
|
|
||||||
Map<String, String> map = ToolsUtil.objectToMap(object);
|
|
||||||
|
|
||||||
SystemAuthVo systemAuthVo = new SystemAuthVo();
|
|
||||||
systemAuthVo.setPath(map.get("component"));
|
|
||||||
|
|
||||||
List<String> auths = new ArrayList<>();
|
|
||||||
if (StringUtil.isNotEmpty(map.get("children"))) {
|
|
||||||
// 第一层
|
|
||||||
for (Map<String, String> m : ToolsUtil.stringToList(map.get("children"))) {
|
|
||||||
if (!m.get("perms").equals("")) {
|
|
||||||
auths.add(m.get("perms"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 第二层
|
|
||||||
if (!m.get("children").equals("")) {
|
|
||||||
for (Map<String, String> tow : ToolsUtil.stringToList(m.get("children"))) {
|
|
||||||
if (!tow.get("perms").equals("")) {
|
|
||||||
auths.add(tow.get("perms"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!map.get("perms").equals("")) {
|
|
||||||
auths.add(map.get("perms"));
|
|
||||||
}
|
|
||||||
|
|
||||||
systemAuthVo.setAuth(auths);
|
|
||||||
authVos.add(systemAuthVo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return authVos;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单列表
|
* 菜单列表
|
||||||
*
|
*
|
||||||
|
|
@ -132,7 +74,7 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
|
||||||
@Override
|
@Override
|
||||||
public JSONArray lists() {
|
public JSONArray lists() {
|
||||||
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
|
queryWrapper.orderByAsc(Arrays.asList("menu_sort", "id"));
|
||||||
|
|
||||||
List<SystemMenu> systemMenus = systemMenuMapper.selectList(queryWrapper);
|
List<SystemMenu> systemMenus = systemMenuMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
|
@ -185,6 +127,8 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
|
||||||
model.setMenuIcon(systemMenuParam.getMenuIcon());
|
model.setMenuIcon(systemMenuParam.getMenuIcon());
|
||||||
model.setMenuSort(systemMenuParam.getMenuSort());
|
model.setMenuSort(systemMenuParam.getMenuSort());
|
||||||
model.setPerms(systemMenuParam.getPerms());
|
model.setPerms(systemMenuParam.getPerms());
|
||||||
|
model.setPaths(systemMenuParam.getPaths());
|
||||||
|
model.setComponent(systemMenuParam.getComponent());
|
||||||
model.setIsDisable(systemMenuParam.getIsDisable());
|
model.setIsDisable(systemMenuParam.getIsDisable());
|
||||||
model.setCreateTime(System.currentTimeMillis() / 1000);
|
model.setCreateTime(System.currentTimeMillis() / 1000);
|
||||||
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
@ -206,7 +150,9 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
|
||||||
model.setMenuName(systemMenuParam.getMenuName());
|
model.setMenuName(systemMenuParam.getMenuName());
|
||||||
model.setMenuIcon(systemMenuParam.getMenuIcon());
|
model.setMenuIcon(systemMenuParam.getMenuIcon());
|
||||||
model.setMenuSort(systemMenuParam.getMenuSort());
|
model.setMenuSort(systemMenuParam.getMenuSort());
|
||||||
|
model.setPaths(systemMenuParam.getPaths());
|
||||||
model.setPerms(systemMenuParam.getPerms());
|
model.setPerms(systemMenuParam.getPerms());
|
||||||
|
model.setComponent(systemMenuParam.getComponent());
|
||||||
model.setPid(systemMenuParam.getPid());
|
model.setPid(systemMenuParam.getPid());
|
||||||
model.setIsDisable(systemMenuParam.getIsDisable());
|
model.setIsDisable(systemMenuParam.getIsDisable());
|
||||||
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,12 @@ import com.hxkj.common.mapper.system.SystemMenuMapper;
|
||||||
import com.hxkj.common.mapper.system.SystemRoleMenuMapper;
|
import com.hxkj.common.mapper.system.SystemRoleMenuMapper;
|
||||||
import com.hxkj.common.utils.ArrayUtil;
|
import com.hxkj.common.utils.ArrayUtil;
|
||||||
import com.hxkj.common.utils.RedisUtil;
|
import com.hxkj.common.utils.RedisUtil;
|
||||||
|
import com.hxkj.common.utils.StringUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -107,11 +109,15 @@ public class SystemRoleMenuServiceImpl implements ISystemRoleMenuService {
|
||||||
if (menuIds.size() > 0) {
|
if (menuIds.size() > 0) {
|
||||||
List<SystemMenu> systemMenus = systemMenuMapper.selectList(new QueryWrapper<SystemMenu>()
|
List<SystemMenu> systemMenus = systemMenuMapper.selectList(new QueryWrapper<SystemMenu>()
|
||||||
.select("id,perms")
|
.select("id,perms")
|
||||||
|
.eq("is_disable", 0)
|
||||||
.in("id", menuIds)
|
.in("id", menuIds)
|
||||||
.eq("is_disable", 0));
|
.in("menu_type", Arrays.asList("C", "A"))
|
||||||
|
.orderByAsc(Arrays.asList("menu_sort", "id")));
|
||||||
|
|
||||||
for (SystemMenu systemMenu : systemMenus) {
|
for (SystemMenu item : systemMenus) {
|
||||||
menuArray.add(systemMenu.getPerms().trim());
|
if (StringUtil.isNotNull(item.getPerms()) && StringUtil.isNotEmpty(item.getPerms())) {
|
||||||
|
menuArray.add(item.getPerms().trim());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ public class SystemAdminParam implements Serializable {
|
||||||
|
|
||||||
public interface create{}
|
public interface create{}
|
||||||
public interface update{}
|
public interface update{}
|
||||||
|
public interface upInfo{}
|
||||||
public interface delete{}
|
public interface delete{}
|
||||||
|
|
||||||
|
|
||||||
@IDMust(message = "id参数必传且需大于0", groups = {update.class, delete.class})
|
@IDMust(message = "id参数必传且需大于0", groups = {update.class, delete.class})
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
|
@ -36,12 +36,12 @@ public class SystemAdminParam implements Serializable {
|
||||||
@Length(min = 2, max = 20, message = "账号必须在2~20个字符内", groups = {create.class, update.class})
|
@Length(min = 2, max = 20, message = "账号必须在2~20个字符内", groups = {create.class, update.class})
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
@NotEmpty(message = "昵称不能为空", groups = {create.class, update.class})
|
@NotEmpty(message = "昵称不能为空", groups = {create.class, update.class, upInfo.class})
|
||||||
@Length(min = 2, max = 30, message = "昵称必须在2~30个字符内", groups = {create.class, update.class})
|
@Length(min = 2, max = 30, message = "昵称必须在2~30个字符内", groups = {create.class, update.class, upInfo.class})
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
|
||||||
@NotEmpty(message = "密码不能为空", groups = {create.class})
|
@NotEmpty(message = "密码不能为空", groups = {create.class})
|
||||||
@Length(min = 6, max = 18, message = "密码必须在6~18个字符内", groups = {create.class, update.class})
|
@Length(min = 6, max = 18, message = "密码必须在6~18个字符内", groups = {create.class, update.class, upInfo.class})
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
@NotNull(message = "请选择状态", groups = {create.class, update.class})
|
@NotNull(message = "请选择状态", groups = {create.class, update.class})
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,12 @@ public class SystemMenuParam implements Serializable {
|
||||||
@Length(max = 100, message = "权限字符不能超过100个字符", groups = {create.class, update.class})
|
@Length(max = 100, message = "权限字符不能超过100个字符", groups = {create.class, update.class})
|
||||||
private String perms;
|
private String perms;
|
||||||
|
|
||||||
|
@Length(max = 200, message = "路由地址不能超过200个字符", groups = {create.class, update.class})
|
||||||
|
private String paths;
|
||||||
|
|
||||||
|
@Length(max = 100, message = "前端组件不能超过200个字符", groups = {create.class, update.class})
|
||||||
|
private String component;
|
||||||
|
|
||||||
@NotNull(message = "请选择状态", groups = {create.class, update.class})
|
@NotNull(message = "请选择状态", groups = {create.class, update.class})
|
||||||
private Integer isDisable;
|
private Integer isDisable;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ public class SystemMenuVo implements Serializable {
|
||||||
private String menuIcon;
|
private String menuIcon;
|
||||||
private Integer menuSort;
|
private Integer menuSort;
|
||||||
private String perms;
|
private String perms;
|
||||||
|
private String paths;
|
||||||
|
private String component;
|
||||||
private Integer isDisable;
|
private Integer isDisable;
|
||||||
private String createTime;
|
private String createTime;
|
||||||
private String updateTime;
|
private String updateTime;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.hxkj.admin.vo.system;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前系统管理员Vo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SystemSelfVo {
|
||||||
|
|
||||||
|
private Object user;
|
||||||
|
private Object permissions;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
# 服务配置
|
# 服务配置
|
||||||
server:
|
server:
|
||||||
|
# 启动端口
|
||||||
port: 8082
|
port: 8082
|
||||||
|
# 路由前缀
|
||||||
|
servlet:
|
||||||
|
context-path: /api
|
||||||
|
|
||||||
# 框架配置
|
# 框架配置
|
||||||
spring:
|
spring:
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ public class SystemMenu implements Serializable {
|
||||||
private String menuIcon;
|
private String menuIcon;
|
||||||
private Integer menuSort;
|
private Integer menuSort;
|
||||||
private String perms;
|
private String perms;
|
||||||
|
private String paths;
|
||||||
private String component;
|
private String component;
|
||||||
private Integer isDisable;
|
private Integer isDisable;
|
||||||
private Long createTime;
|
private Long createTime;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue