管理员管理

This commit is contained in:
TinyAnts 2022-03-30 10:25:32 +08:00
parent 1442bce6ed
commit 8e6f2f8ca3
20 changed files with 216 additions and 95 deletions

View File

@ -85,7 +85,7 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
// 免权限验证接口 // 免权限验证接口
List<String> notAuthUri = Arrays.asList(SystemConfig.notLoginUri); List<String> notAuthUri = Arrays.asList(SystemConfig.notLoginUri);
if (notAuthUri.contains(request.getRequestURI())) { if (notAuthUri.contains(request.getRequestURI()) || Integer.parseInt(uid) == 1) {
return HandlerInterceptor.super.preHandle(request, response, handler); return HandlerInterceptor.super.preHandle(request, response, handler);
} }

View File

@ -3,8 +3,7 @@ package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISysAdminService; import com.hxkj.admin.service.ISysAdminService;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysAdminParam; import com.hxkj.admin.validate.SysAdminParam;
import com.hxkj.admin.vo.system.SysAdminDetailVo; import com.hxkj.admin.vo.system.SysAdminVo;
import com.hxkj.admin.vo.system.SysAdminListVo;
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;
@ -30,7 +29,7 @@ public class SysAdminController {
@GetMapping("/lists") @GetMapping("/lists")
public Object lists(@Validated PageParam pageParam, public Object lists(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) { @RequestParam Map<String, String> params) {
PageResult<SysAdminListVo> list = iSysAdminService.lists(pageParam, params); PageResult<SysAdminVo> list = iSysAdminService.lists(pageParam, params);
return AjaxResult.success(list); return AjaxResult.success(list);
} }
@ -42,7 +41,7 @@ public class SysAdminController {
*/ */
@GetMapping("/detail") @GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SysAdminDetailVo vo = iSysAdminService.detail(id); SysAdminVo vo = iSysAdminService.detail(id);
return AjaxResult.success(vo); return AjaxResult.success(vo);
} }

View File

@ -3,6 +3,7 @@ package com.hxkj.admin.controller.system;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.service.ISysMenuService; import com.hxkj.admin.service.ISysMenuService;
import com.hxkj.admin.validate.SysMenuParam; import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SysMenuVo;
import com.hxkj.common.core.AjaxResult; import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.entity.system.SysMenu; import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.validator.annotation.IDMust; import com.hxkj.common.validator.annotation.IDMust;
@ -38,8 +39,8 @@ public class SysMenuController {
*/ */
@GetMapping("/detail") @GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SysMenu sysMenu = iSysMenuService.detail(id); SysMenuVo vo = iSysMenuService.detail(id);
return AjaxResult.success(sysMenu); return AjaxResult.success(vo);
} }
/** /**

View File

@ -3,7 +3,7 @@ package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISysRoleService;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysRoleParam; import com.hxkj.admin.validate.SysRoleParam;
import com.hxkj.admin.vo.system.SysRoleListVo; import com.hxkj.admin.vo.system.SysRoleVo;
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;
@ -28,7 +28,7 @@ public class SysRoleController {
*/ */
@GetMapping("/lists") @GetMapping("/lists")
public Object lists(@Validated PageParam pageParam) { public Object lists(@Validated PageParam pageParam) {
PageResult<SysRoleListVo> lists = iSysRoleService.lists(pageParam); PageResult<SysRoleVo> lists = iSysRoleService.lists(pageParam);
return AjaxResult.success(lists); return AjaxResult.success(lists);
} }

View File

@ -2,8 +2,7 @@ package com.hxkj.admin.service;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysAdminParam; import com.hxkj.admin.validate.SysAdminParam;
import com.hxkj.admin.vo.system.SysAdminDetailVo; import com.hxkj.admin.vo.system.SysAdminVo;
import com.hxkj.admin.vo.system.SysAdminListVo;
import com.hxkj.common.basics.BaseService; import com.hxkj.common.basics.BaseService;
import com.hxkj.common.core.PageResult; import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SysAdmin; import com.hxkj.common.entity.system.SysAdmin;
@ -31,7 +30,7 @@ public interface ISysAdminService extends BaseService<SysAdmin> {
* @param pageParam 分页参数 * @param pageParam 分页参数
* @return PageResult<SysAdminListVo> * @return PageResult<SysAdminListVo>
*/ */
PageResult<SysAdminListVo> lists(PageParam pageParam, Map<String, String> params); PageResult<SysAdminVo> lists(PageParam pageParam, Map<String, String> params);
/** /**
* 管理员详情 * 管理员详情
@ -40,7 +39,7 @@ public interface ISysAdminService extends BaseService<SysAdmin> {
* @param id 主键参数 * @param id 主键参数
* @return SysAdmin * @return SysAdmin
*/ */
SysAdminDetailVo detail(Integer id); SysAdminVo detail(Integer id);
/** /**
* 新增管理员 * 新增管理员

View File

@ -2,6 +2,7 @@ package com.hxkj.admin.service;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.SysMenuParam; import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SysMenuVo;
import com.hxkj.common.basics.BaseService; import com.hxkj.common.basics.BaseService;
import com.hxkj.common.entity.system.SysMenu; import com.hxkj.common.entity.system.SysMenu;
@ -24,7 +25,7 @@ public interface ISysMenuService extends BaseService<SysMenu> {
* @param id 主键 * @param id 主键
* @return SysMenu * @return SysMenu
*/ */
SysMenu detail(Integer id); SysMenuVo detail(Integer id);
/** /**
* 新增菜单 * 新增菜单

View File

@ -2,7 +2,7 @@ package com.hxkj.admin.service;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysRoleParam; import com.hxkj.admin.validate.SysRoleParam;
import com.hxkj.admin.vo.system.SysRoleListVo; import com.hxkj.admin.vo.system.SysRoleVo;
import com.hxkj.common.basics.BaseService; import com.hxkj.common.basics.BaseService;
import com.hxkj.common.core.PageResult; import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SysRole; import com.hxkj.common.entity.system.SysRole;
@ -27,7 +27,7 @@ public interface ISysRoleService extends BaseService<SysRole> {
* @param pageParam 参数 * @param pageParam 参数
* @return PageResult<SysRoleListVo> * @return PageResult<SysRoleListVo>
*/ */
PageResult<SysRoleListVo> lists(@Validated PageParam pageParam); PageResult<SysRoleVo> lists(@Validated PageParam pageParam);
/** /**
* 角色详情 * 角色详情

View File

@ -11,8 +11,7 @@ import com.hxkj.admin.service.ISysAdminService;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISysRoleService;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysAdminParam; import com.hxkj.admin.validate.SysAdminParam;
import com.hxkj.admin.vo.system.SysAdminDetailVo; import com.hxkj.admin.vo.system.SysAdminVo;
import com.hxkj.admin.vo.system.SysAdminListVo;
import com.hxkj.common.core.PageResult; import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SysAdmin; import com.hxkj.common.entity.system.SysAdmin;
import com.hxkj.common.mapper.system.SysAdminMapper; import com.hxkj.common.mapper.system.SysAdminMapper;
@ -54,7 +53,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
* @return PageResult<SysAdminListVo> * @return PageResult<SysAdminListVo>
*/ */
@Override @Override
public PageResult<SysAdminListVo> lists(PageParam pageParam, Map<String, String> params) { public PageResult<SysAdminVo> lists(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo(); Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize(); Integer limit = pageParam.getPageSize();
@ -75,11 +74,12 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
IPage<SysAdmin> iPage = this.page(new Page<>(page, limit), queryWrapper); IPage<SysAdmin> iPage = this.page(new Page<>(page, limit), queryWrapper);
List<SysAdminListVo> adminVoArrayList = new ArrayList<>(); List<SysAdminVo> adminVoArrayList = new ArrayList<>();
for (SysAdmin sysAdmin : iPage.getRecords()) { for (SysAdmin sysAdmin : iPage.getRecords()) {
SysAdminListVo vo = new SysAdminListVo(); SysAdminVo vo = new SysAdminVo();
BeanUtils.copyProperties(sysAdmin, vo); BeanUtils.copyProperties(sysAdmin, vo);
vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar()));
vo.setRole(iSysRoleService.getRoleNameById(sysAdmin.getRole())); vo.setRole(iSysRoleService.getRoleNameById(sysAdmin.getRole()));
vo.setCreateTime(TimeUtil.timestampToDate(sysAdmin.getCreateTime())); vo.setCreateTime(TimeUtil.timestampToDate(sysAdmin.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysAdmin.getUpdateTime())); vo.setUpdateTime(TimeUtil.timestampToDate(sysAdmin.getUpdateTime()));
@ -98,7 +98,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
* @return SysAdmin * @return SysAdmin
*/ */
@Override @Override
public SysAdminDetailVo detail(Integer id) { public SysAdminVo detail(Integer id) {
SysAdmin sysAdmin = this.getOne(new QueryWrapper<SysAdmin>() SysAdmin sysAdmin = this.getOne(new QueryWrapper<SysAdmin>()
.select(SysAdmin.class, info-> .select(SysAdmin.class, info->
!info.getColumn().equals("salt") && !info.getColumn().equals("salt") &&
@ -111,10 +111,14 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
Assert.notNull(sysAdmin, "账号已不存在!"); Assert.notNull(sysAdmin, "账号已不存在!");
SysAdminDetailVo vo = new SysAdminDetailVo(); SysAdminVo vo = new SysAdminVo();
BeanUtils.copyProperties(sysAdmin, vo); BeanUtils.copyProperties(sysAdmin, vo);
vo.setRole(String.valueOf(sysAdmin.getRole()));
vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar())); vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar()));
vo.setCreateTime(TimeUtil.timestampToDate(sysAdmin.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysAdmin.getUpdateTime()));
vo.setLastLoginTime(TimeUtil.timestampToDate(sysAdmin.getLastLoginTime()));
return vo; return vo;
} }
@ -140,6 +144,8 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
.eq("nickname", sysAdminParam.getNickname()) .eq("nickname", sysAdminParam.getNickname())
.last("limit 1")), "昵称已存在换一个吧!"); .last("limit 1")), "昵称已存在换一个吧!");
Assert.notNull(iSysRoleService.getById(sysAdminParam.getRole()), "角色不存在!");
String salt = ToolsUtil.randomString(5); String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(sysAdminParam.getPassword().trim() + salt); String pwd = ToolsUtil.makeMd5(sysAdminParam.getPassword().trim() + salt);
String avatar = UrlUtil.toRelativeUrl(sysAdminParam.getAvatar()); String avatar = UrlUtil.toRelativeUrl(sysAdminParam.getAvatar());
@ -167,6 +173,12 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
@Override @Override
public void edit(SysAdminParam sysAdminParam) { public void edit(SysAdminParam sysAdminParam) {
String[] field = {"id", "username", "nickname"}; String[] field = {"id", "username", "nickname"};
Assert.notNull(this.getOne(new QueryWrapper<SysAdmin>()
.select(field)
.eq("id", sysAdminParam.getId())
.eq("is_delete", 0)
.last("limit 1")), "账号不存在了!");
Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>()
.select(field) .select(field)
.eq("is_delete", 0) .eq("is_delete", 0)
@ -181,22 +193,27 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
.ne("id", sysAdminParam.getId()) .ne("id", sysAdminParam.getId())
.last("limit 1")), "昵称已存在换一个吧!"); .last("limit 1")), "昵称已存在换一个吧!");
String avatar = UrlUtil.toRelativeUrl(sysAdminParam.getAvatar()); Assert.notNull(iSysRoleService.getById(sysAdminParam.getRole()), "角色不存在!");
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(sysAdminParam.getPassword().trim() + salt);
SysAdmin model = new SysAdmin(); SysAdmin model = new SysAdmin();
model.setId(sysAdminParam.getId()); model.setId(sysAdminParam.getId());
model.setNickname(sysAdminParam.getNickname()); model.setNickname(sysAdminParam.getNickname());
model.setUsername(sysAdminParam.getUsername()); model.setUsername(sysAdminParam.getUsername());
model.setRole(sysAdminParam.getRole()); model.setAvatar( UrlUtil.toRelativeUrl(sysAdminParam.getAvatar()));
model.setAvatar(avatar); model.setRole(sysAdminParam.getId() == 1 ? 0 : sysAdminParam.getRole());
model.setPassword(pwd);
model.setSalt(salt);
model.setSort(sysAdminParam.getSort()); model.setSort(sysAdminParam.getSort());
model.setIsDisable(sysAdminParam.getIsDisable()); model.setIsDisable(sysAdminParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
if (sysAdminParam.getPassword() != null && !sysAdminParam.getPassword().equals("")) {
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5( sysAdminParam.getPassword().trim() + salt);
model.setPassword(pwd);
model.setSalt(salt);
}
this.updateById(model); this.updateById(model);
this.cacheAdminUserByUid(sysAdminParam.getId());
} }
/** /**
@ -214,11 +231,14 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")), "账号已不存在!"); .last("limit 1")), "账号已不存在!");
Assert.isFalse(id == 1, "系统管理员不允许删除");
SysAdmin model = new SysAdmin(); SysAdmin model = new SysAdmin();
model.setId(id); model.setId(id);
model.setIsDelete(1); model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000); model.setDeleteTime(System.currentTimeMillis() / 1000);
this.updateById(model); this.updateById(model);
this.cacheAdminUserByUid(id);
} }
/** /**

View File

@ -1,7 +1,5 @@
package com.hxkj.admin.service.impl; package com.hxkj.admin.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.config.SystemConfig; import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysAdminService; import com.hxkj.admin.service.ISysAdminService;
import com.hxkj.admin.service.ISysLoginService; import com.hxkj.admin.service.ISysLoginService;
@ -13,13 +11,10 @@ import com.hxkj.common.exception.OperateException;
import com.hxkj.common.mapper.system.SysAdminMapper; import com.hxkj.common.mapper.system.SysAdminMapper;
import com.hxkj.common.utils.HttpUtil; import com.hxkj.common.utils.HttpUtil;
import com.hxkj.common.utils.RedisUtil; import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.TimeUtil;
import com.hxkj.common.utils.ToolsUtil; import com.hxkj.common.utils.ToolsUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;

View File

@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysMenuService; import com.hxkj.admin.service.ISysMenuService;
import com.hxkj.admin.validate.SysMenuParam; import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SysMenuListVo; import com.hxkj.admin.vo.system.SysMenuVo;
import com.hxkj.common.entity.system.SysMenu; import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.mapper.system.SysMenuMapper; import com.hxkj.common.mapper.system.SysMenuMapper;
import com.hxkj.common.utils.ArrayUtil; import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.TimeUtil; import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -30,17 +32,13 @@ public class ISysMenuServiceImpl extends MPJBaseServiceImpl<SysMenuMapper, SysMe
@Override @Override
public JSONArray lists() { public JSONArray lists() {
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.select(SysMenu.class, info-> queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
!info.getColumn().equals("salt") &&
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.orderByDesc(Arrays.asList("menu_sort", "id"));
List<SysMenu> sysMenus = this.list( queryWrapper); List<SysMenu> sysMenus = this.list( queryWrapper);
List<SysMenuListVo> lists = new ArrayList<>(); List<SysMenuVo> lists = new ArrayList<>();
for (SysMenu sysMenu : sysMenus) { for (SysMenu sysMenu : sysMenus) {
SysMenuListVo vo = new SysMenuListVo(); SysMenuVo vo = new SysMenuVo();
BeanUtils.copyProperties(sysMenu, vo); BeanUtils.copyProperties(sysMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysMenu.getCreateTime())); vo.setCreateTime(TimeUtil.timestampToDate(sysMenu.getCreateTime()));
@ -60,10 +58,16 @@ public class ISysMenuServiceImpl extends MPJBaseServiceImpl<SysMenuMapper, SysMe
* @return SysMenu * @return SysMenu
*/ */
@Override @Override
public SysMenu detail(Integer id) { public SysMenuVo detail(Integer id) {
SysMenu model = this.getOne(new QueryWrapper<SysMenu>().eq("id", id)); SysMenu sysMenu = this.getOne(new QueryWrapper<SysMenu>().eq("id", id));
Assert.notNull(model, "菜单已不存在!"); Assert.notNull(sysMenu, "菜单已不存在!");
return model;
SysMenuVo vo = new SysMenuVo();
BeanUtils.copyProperties(sysMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysMenu.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysMenu.getUpdateTime()));
return vo;
} }
/** /**
@ -107,6 +111,8 @@ public class ISysMenuServiceImpl extends MPJBaseServiceImpl<SysMenuMapper, SysMe
model.setIsDisable(sysMenuParam.getIsDisable()); model.setIsDisable(sysMenuParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
this.updateById(model); this.updateById(model);
RedisUtil.del(SystemConfig.backstageRolesKey);
} }
/** /**
@ -119,7 +125,10 @@ public class ISysMenuServiceImpl extends MPJBaseServiceImpl<SysMenuMapper, SysMe
public void del(Integer id) { public void del(Integer id) {
SysMenu model = this.getOne(new QueryWrapper<SysMenu>().eq("id", id)); SysMenu model = this.getOne(new QueryWrapper<SysMenu>().eq("id", id));
Assert.notNull(model, "菜单已不存在!"); Assert.notNull(model, "菜单已不存在!");
this.removeById(id); this.removeById(id);
RedisUtil.del(SystemConfig.backstageRolesKey);
} }
} }

View File

@ -3,10 +3,10 @@ package com.hxkj.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig; import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysMenuService;
import com.hxkj.admin.service.ISysRoleMenuService; import com.hxkj.admin.service.ISysRoleMenuService;
import com.hxkj.common.entity.system.SysMenu; import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.entity.system.SysRoleMenu; import com.hxkj.common.entity.system.SysRoleMenu;
import com.hxkj.common.mapper.system.SysMenuMapper;
import com.hxkj.common.mapper.system.SysRoleMenuMapper; import com.hxkj.common.mapper.system.SysRoleMenuMapper;
import com.hxkj.common.utils.RedisUtil; import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.ToolsUtil; import com.hxkj.common.utils.ToolsUtil;
@ -21,7 +21,7 @@ import java.util.List;
public class ISysRoleMenuServiceImpl extends MPJBaseServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements ISysRoleMenuService { public class ISysRoleMenuServiceImpl extends MPJBaseServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements ISysRoleMenuService {
@Resource @Resource
SysMenuMapper sysMenuMapper; ISysMenuService iSysMenuService;
/** /**
* 批量写入角色菜单 * 批量写入角色菜单
@ -73,7 +73,7 @@ public class ISysRoleMenuServiceImpl extends MPJBaseServiceImpl<SysRoleMenuMappe
} }
if (menuIds.size() > 0) { if (menuIds.size() > 0) {
List<SysMenu> sysMenus = sysMenuMapper.selectList(new QueryWrapper<SysMenu>() List<SysMenu> sysMenus = iSysMenuService.list(new QueryWrapper<SysMenu>()
.select("id,perms") .select("id,perms")
.in("id", menuIds) .in("id", menuIds)
.eq("is_disable", 0)); .eq("is_disable", 0));

View File

@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig; import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysAdminService;
import com.hxkj.admin.service.ISysRoleMenuService; import com.hxkj.admin.service.ISysRoleMenuService;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISysRoleService;
import com.hxkj.admin.validate.PageParam; import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.SysRoleParam; import com.hxkj.admin.validate.SysRoleParam;
import com.hxkj.admin.vo.system.SysRoleListVo; import com.hxkj.admin.vo.system.SysRoleVo;
import com.hxkj.common.core.PageResult; import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SysAdmin;
import com.hxkj.common.entity.system.SysRole; import com.hxkj.common.entity.system.SysRole;
import com.hxkj.common.mapper.system.SysRoleMapper; import com.hxkj.common.mapper.system.SysRoleMapper;
import com.hxkj.common.utils.RedisUtil; import com.hxkj.common.utils.RedisUtil;
@ -29,6 +31,9 @@ import java.util.List;
@Service @Service
public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService { public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService {
@Resource
ISysAdminService iSysAdminService;
@Resource @Resource
ISysRoleMenuService iSysRoleMenuService; ISysRoleMenuService iSysRoleMenuService;
@ -62,21 +67,18 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
* @return PageResult<SysRoleListVo> * @return PageResult<SysRoleListVo>
*/ */
@Override @Override
public PageResult<SysRoleListVo> lists(@Validated PageParam pageParam) { public PageResult<SysRoleVo> lists(@Validated PageParam pageParam) {
Integer page = pageParam.getPageNo(); Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize(); Integer limit = pageParam.getPageSize();
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
queryWrapper.select(SysRole.class, info-> queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.orderByDesc(Arrays.asList("sort", "id"));
IPage<SysRole> iPage = this.page(new Page<>(page, limit), queryWrapper); IPage<SysRole> iPage = this.page(new Page<>(page, limit), queryWrapper);
List<SysRoleListVo> roleVoArrayList = new ArrayList<>(); List<SysRoleVo> roleVoArrayList = new ArrayList<>();
for (SysRole sysRole : iPage.getRecords()) { for (SysRole sysRole : iPage.getRecords()) {
SysRoleListVo vo = new SysRoleListVo(); SysRoleVo vo = new SysRoleVo();
BeanUtils.copyProperties(sysRole, vo); BeanUtils.copyProperties(sysRole, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysRole.getCreateTime())); vo.setCreateTime(TimeUtil.timestampToDate(sysRole.getCreateTime()));
@ -158,11 +160,9 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
this.updateById(model); this.updateById(model);
RedisUtil.hDel(SystemConfig.backstageRolesKey, String.valueOf(sysRoleParam.getId()));
iSysRoleMenuService.cacheRoleMenusByRoleId(sysRoleParam.getId());
iSysRoleMenuService.batchDeleteByRoleId(sysRoleParam.getId()); iSysRoleMenuService.batchDeleteByRoleId(sysRoleParam.getId());
iSysRoleMenuService.batchSaveByMenuIds(sysRoleParam.getId(), sysRoleParam.getMenuIds()); iSysRoleMenuService.batchSaveByMenuIds(sysRoleParam.getId(), sysRoleParam.getMenuIds());
iSysRoleMenuService.cacheRoleMenusByRoleId(sysRoleParam.getId());
} }
/** /**
@ -176,14 +176,20 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
public void del(Integer id) { public void del(Integer id) {
Assert.notNull( Assert.notNull(
this.getOne(new QueryWrapper<SysRole>() this.getOne(new QueryWrapper<SysRole>()
.select("id,name") .select("id", "name")
.eq("id", id) .eq("id", id)
.last("limit 1")), .last("limit 1")),
"角色已不存在!"); "角色已不存在!");
Assert.isNull(iSysAdminService.getOne(new QueryWrapper<SysAdmin>()
.select("id", "role", "nickname")
.eq("role", id)
.eq("is_delete", 0)),
"角色已被管理员使用,请先移除");
this.removeById(id); this.removeById(id);
RedisUtil.hDel(SystemConfig.backstageRolesKey, String.valueOf(id));
iSysRoleMenuService.batchDeleteByRoleId(id); iSysRoleMenuService.batchDeleteByRoleId(id);
RedisUtil.hDel(SystemConfig.backstageRolesKey, id);
} }
} }

View File

@ -39,7 +39,7 @@ public class SysAdminParam implements Serializable {
@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})
private String nickname; private String nickname;
@NotEmpty(message = "密码不能为空", groups = {create.class, update.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})
private String password; private String password;

View File

@ -1,19 +0,0 @@
package com.hxkj.admin.vo.system;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysAdminDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String nickname;
private String avatar;
private Integer role;
private Integer isDisable;
}

View File

@ -5,7 +5,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
public class SysAdminListVo implements Serializable { public class SysAdminVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -2,8 +2,12 @@ package com.hxkj.admin.vo.system;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
public class SysMenuListVo { public class SysMenuVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
private Integer pid; private Integer pid;
@ -12,7 +16,7 @@ public class SysMenuListVo {
private String menuIcon; private String menuIcon;
private Integer menuSort; private Integer menuSort;
private String perms; private String perms;
private Boolean isDisable; private Integer isDisable;
private String createTime; private String createTime;
private String updateTime; private String updateTime;

View File

@ -2,21 +2,19 @@ package com.hxkj.admin.vo.system;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
public class SysRoleListVo { public class SysRoleVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
private String name; private String name;
private String remark; private String remark;
private Integer sort; private Integer sort;
private Integer isDisable;
private Boolean isDisable;
private String createTime; private String createTime;
private String updateTime; private String updateTime;
} }

View File

@ -0,0 +1,38 @@
package com.hxkj.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
/**
* 异步线程池配置
*/
@Configuration
@EnableAsync
public class ThreadPoolConfig {
@Bean("taskExecutor")
public Executor asyncServiceExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程数
executor.setCorePoolSize(5);
// 设置最大线程数
executor.setMaxPoolSize(20);
// 配置队列大小
executor.setQueueCapacity(Integer.MAX_VALUE);
// 设置线程活跃时间()
executor.setKeepAliveSeconds(60);
// 设置默认线程名称
executor.setThreadNamePrefix("LIKE");
// 等待所有任务结束后再关闭线程
executor.setWaitForTasksToCompleteOnShutdown(true);
// 执行初始化
executor.initialize();
// 返回构建对象
return executor;
}
}

View File

@ -1,5 +1,7 @@
package com.hxkj.common.entity.system; package com.hxkj.common.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -16,6 +18,8 @@ public class SysRoleMenu implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId(type = IdType.NONE)
private Integer id;
private Integer roleId; private Integer roleId;
private Integer menuId; private Integer menuId;

View File

@ -1,4 +1,70 @@
package com.hxkj.common.utils; package com.hxkj.common.utils;
public class SpringUtil { import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* 设置容器对象
*
* @author fzr
* @param applicationContext applicationContext
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringUtil.applicationContext == null) {
SpringUtil.applicationContext = applicationContext;
}
}
/**
* 获取applicationContext
*
* @author fzr
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
/**
* 通过name获取Bean
*
* @author fzr
* @param name 名称
* @return Object
*/
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
/**
* 通过class获取Bean.
*
* @author fzr
* @param clazz
* @return <T>
*/
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
/**
* 通过name和Clazz返回指定的Bean
*
* @author fzr
* @param name 名称
* @param clazz
* @return <T>
*/
public static <T> T getBean(String name, Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
} }