This commit is contained in:
TinyAnts 2022-03-30 14:58:31 +08:00
parent 8e6f2f8ca3
commit 539216f2dc
38 changed files with 756 additions and 443 deletions

View File

@ -3,8 +3,8 @@ package com.hxkj.admin;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.hxkj.admin.config.SystemConfig; import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysAdminService; import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISysRoleMenuService; import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.common.core.AjaxResult; 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;
@ -27,10 +27,10 @@ import java.util.Map;
public class LikeAdminInterceptor implements HandlerInterceptor { public class LikeAdminInterceptor implements HandlerInterceptor {
@Resource @Resource
ISysAdminService iSysAdminService; ISystemAdminService iSystemAdminService;
@Resource @Resource
ISysRoleMenuService iSysRoleMenuService; ISystemRoleMenuService iSystemRoleMenuService;
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
@ -65,24 +65,37 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
// 用户信息缓存 // 用户信息缓存
String uid = RedisUtil.get(token).toString(); String uid = RedisUtil.get(token).toString();
if (!RedisUtil.hExists(SystemConfig.backstageManageKey, uid)) { if (!RedisUtil.hExists(SystemConfig.backstageManageKey, uid)) {
iSysAdminService.cacheAdminUserByUid(Integer.parseInt(uid)); iSystemAdminService.cacheAdminUserByUid(Integer.parseInt(uid));
} }
// 校验用户是否被删除 // 校验用户被删除
Map<String, Object> map = ToolsUtil.jsonToMap(RedisUtil.hGet(SystemConfig.backstageManageKey, uid).toString()); Map<String, Object> map = ToolsUtil.jsonToMap(RedisUtil.hGet(SystemConfig.backstageManageKey, uid).toString());
if (map == null || map.get("isDelete").toString().equals("1")) { if (map == null || map.get("isDelete").toString().equals("1")) {
RedisUtil.del(token);
RedisUtil.hDel(SystemConfig.backstageManageKey, uid);
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg()); AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
response.getWriter().print(JSON.toJSONString(result)); response.getWriter().print(JSON.toJSONString(result));
return false; return false;
} }
// 校验用户是否被禁用 // 校验用户被禁用
if (map.get("isDisable").toString().equals("1")) { if (map.get("isDisable").toString().equals("1")) {
AjaxResult result = AjaxResult.failed(HttpEnum.LOGIN_DISABLE_ERROR.getCode(), HttpEnum.LOGIN_DISABLE_ERROR.getMsg()); AjaxResult result = AjaxResult.failed(HttpEnum.LOGIN_DISABLE_ERROR.getCode(), HttpEnum.LOGIN_DISABLE_ERROR.getMsg());
response.getWriter().print(JSON.toJSONString(result)); response.getWriter().print(JSON.toJSONString(result));
return false; return false;
} }
// 令牌剩余30分钟自动续签
if (RedisUtil.ttl(token) < 1800) {
RedisUtil.expire(token, 7200L);
}
// 写入本地线程
LikeAdminThreadLocal.put("adminId", uid);
LikeAdminThreadLocal.put("roleId", map.get("role").toString());
LikeAdminThreadLocal.put("username", map.get("username").toString());
LikeAdminThreadLocal.put("nickname", map.get("nickname").toString());
// 免权限验证接口 // 免权限验证接口
List<String> notAuthUri = Arrays.asList(SystemConfig.notLoginUri); List<String> notAuthUri = Arrays.asList(SystemConfig.notLoginUri);
if (notAuthUri.contains(request.getRequestURI()) || Integer.parseInt(uid) == 1) { if (notAuthUri.contains(request.getRequestURI()) || Integer.parseInt(uid) == 1) {
@ -92,7 +105,7 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
// 校验角色权限是否存在 // 校验角色权限是否存在
String roleId = map.get("role").toString(); String roleId = map.get("role").toString();
if (!RedisUtil.hExists(SystemConfig.backstageRolesKey, roleId)) { if (!RedisUtil.hExists(SystemConfig.backstageRolesKey, roleId)) {
iSysRoleMenuService.cacheRoleMenusByRoleId(Integer.parseInt(roleId)); iSystemRoleMenuService.cacheRoleMenusByRoleId(Integer.parseInt(roleId));
} }
// 验证是否有权限操作 // 验证是否有权限操作
@ -103,9 +116,6 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
return false; return false;
} }
// 写入本地线程
LikeAdminThreadLocal.put("adminId", uid);
// 验证通过继续操作 // 验证通过继续操作
return HandlerInterceptor.super.preHandle(request, response, handler); return HandlerInterceptor.super.preHandle(request, response, handler);
} }

View File

@ -2,6 +2,9 @@ package com.hxkj.admin;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
/**
* 本地线程
*/
public class LikeAdminThreadLocal { public class LikeAdminThreadLocal {
/** /**
@ -18,8 +21,12 @@ public class LikeAdminThreadLocal {
/** /**
* 写入本地线程 * 写入本地线程
*/ */
public static void put(String key, String val) { public static void put(String key, Object val) {
LinkedHashMap<String, Object> map = MY_LOCAL.get(); LinkedHashMap<String, Object> map = MY_LOCAL.get();
if (map == null) {
map = new LinkedHashMap<>();
}
map.put(key, val); map.put(key, val);
MY_LOCAL.set(map); MY_LOCAL.set(map);
} }
@ -42,6 +49,17 @@ public class LikeAdminThreadLocal {
return Integer.parseInt(adminId); return Integer.parseInt(adminId);
} }
/**
* 获取角色ID
*/
public static Integer getRoleId() {
String roleId = LikeAdminThreadLocal.get("roleId").toString();
if (roleId.equals("")) {
return 0;
}
return Integer.parseInt(roleId);
}
/** /**
* 删除本地线程 * 删除本地线程
*/ */

View File

@ -1,11 +1,7 @@
package com.hxkj.admin.controller; package com.hxkj.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.common.entity.system.SysAdmin;
import com.hxkj.common.utils.YmlUtil; import com.hxkj.common.utils.YmlUtil;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.controller.system; package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISysAdminService; import com.hxkj.admin.service.ISystemAdminService;
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.SysAdminVo; import com.hxkj.admin.vo.system.SystemAdminVo;
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;
@ -15,10 +15,10 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("/api/system/admin") @RequestMapping("/api/system/admin")
public class SysAdminController { public class SystemAdminController {
@Resource @Resource
ISysAdminService iSysAdminService; ISystemAdminService iSystemAdminService;
/** /**
* 管理员列表 * 管理员列表
@ -29,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<SysAdminVo> list = iSysAdminService.lists(pageParam, params); PageResult<SystemAdminVo> list = iSystemAdminService.lists(pageParam, params);
return AjaxResult.success(list); return AjaxResult.success(list);
} }
@ -41,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) {
SysAdminVo vo = iSysAdminService.detail(id); SystemAdminVo vo = iSystemAdminService.detail(id);
return AjaxResult.success(vo); return AjaxResult.success(vo);
} }
@ -54,7 +54,7 @@ public class SysAdminController {
*/ */
@PostMapping("/add") @PostMapping("/add")
public Object add(@Validated(value = SysAdminParam.create.class) @RequestBody SysAdminParam sysAdminParam) { public Object add(@Validated(value = SysAdminParam.create.class) @RequestBody SysAdminParam sysAdminParam) {
iSysAdminService.add(sysAdminParam); iSystemAdminService.add(sysAdminParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -67,7 +67,7 @@ public class SysAdminController {
*/ */
@PostMapping("/edit") @PostMapping("/edit")
public Object edit(@Validated(value = SysAdminParam.update.class) @RequestBody SysAdminParam sysAdminParam) { public Object edit(@Validated(value = SysAdminParam.update.class) @RequestBody SysAdminParam sysAdminParam) {
iSysAdminService.edit(sysAdminParam); iSystemAdminService.edit(sysAdminParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -79,7 +79,7 @@ public class SysAdminController {
*/ */
@PostMapping("/del") @PostMapping("/del")
public Object del(@Validated(value = SysAdminParam.delete.class) @RequestBody SysAdminParam sysAdminParam) { public Object del(@Validated(value = SysAdminParam.delete.class) @RequestBody SysAdminParam sysAdminParam) {
iSysAdminService.del(sysAdminParam.getId()); iSystemAdminService.del(sysAdminParam.getId());
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.controller.system; package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISysLoginService; import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.validate.SysLoginParam; import com.hxkj.admin.validate.SysLoginParam;
import com.hxkj.common.core.AjaxResult; import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.exception.LoginException; import com.hxkj.common.exception.LoginException;
@ -17,10 +17,10 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("/api/system") @RequestMapping("/api/system")
public class SysLoginController { public class SystemLoginController {
@Resource @Resource
ISysLoginService iSysLoginService; ISystemLoginService iSystemLoginService;
/** /**
* 登录系统 * 登录系统
@ -32,7 +32,7 @@ public class SysLoginController {
@PostMapping("/login") @PostMapping("/login")
public Object login(@Validated() @RequestBody SysLoginParam sysLoginParam) { public Object login(@Validated() @RequestBody SysLoginParam sysLoginParam) {
try { try {
Map<String, Object> map = iSysLoginService.login(sysLoginParam); Map<String, Object> map = iSystemLoginService.login(sysLoginParam);
return AjaxResult.success(map); return AjaxResult.success(map);
} catch (LoginException e) { } catch (LoginException e) {
return AjaxResult.failed(e.getCode(), e.getMsg()); return AjaxResult.failed(e.getCode(), e.getMsg());
@ -51,7 +51,7 @@ public class SysLoginController {
@PostMapping("/logout") @PostMapping("/logout")
public Object logout(HttpServletRequest request) { public Object logout(HttpServletRequest request) {
try { try {
iSysLoginService.logout(request.getHeader("token")); iSystemLoginService.logout(request.getHeader("token"));
return AjaxResult.success(); return AjaxResult.success();
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.failed(e.getMessage()); return AjaxResult.failed(e.getMessage());

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.controller.system; 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.LikeAdminThreadLocal;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.validate.SysMenuParam; import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SysMenuVo; import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.common.core.AjaxResult; import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.validator.annotation.IDMust; import com.hxkj.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,10 +14,23 @@ import javax.annotation.Resource;
@RestController @RestController
@RequestMapping("/api/system/menu") @RequestMapping("/api/system/menu")
public class SysMenuController { public class SystemMenuController {
@Resource @Resource
ISysMenuService iSysMenuService; ISystemMenuService iSystemMenuService;
/**
* 获取系统菜单
*
* @author fzr
* @return Object
*/
@GetMapping("/menus")
public Object menus() {
Integer roleId = LikeAdminThreadLocal.getRoleId();
JSONArray lists = iSystemMenuService.selectMenuByRoleId(roleId);
return AjaxResult.success(lists);
}
/** /**
* 获取菜单列表 * 获取菜单列表
@ -27,7 +40,7 @@ public class SysMenuController {
*/ */
@GetMapping("/lists") @GetMapping("/lists")
public Object lists() { public Object lists() {
JSONArray lists = iSysMenuService.lists(); JSONArray lists = iSystemMenuService.lists();
return AjaxResult.success(lists); return AjaxResult.success(lists);
} }
@ -39,7 +52,7 @@ 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) {
SysMenuVo vo = iSysMenuService.detail(id); SystemMenuVo vo = iSystemMenuService.detail(id);
return AjaxResult.success(vo); return AjaxResult.success(vo);
} }
@ -51,7 +64,7 @@ public class SysMenuController {
*/ */
@PostMapping("/add") @PostMapping("/add")
public Object add(@Validated(value = SysMenuParam.create.class) @RequestBody SysMenuParam sysMenuParam) { public Object add(@Validated(value = SysMenuParam.create.class) @RequestBody SysMenuParam sysMenuParam) {
iSysMenuService.add(sysMenuParam); iSystemMenuService.add(sysMenuParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -63,7 +76,7 @@ public class SysMenuController {
*/ */
@PostMapping("/edit") @PostMapping("/edit")
public Object edit(@Validated(value = SysMenuParam.update.class) @RequestBody SysMenuParam sysMenuParam) { public Object edit(@Validated(value = SysMenuParam.update.class) @RequestBody SysMenuParam sysMenuParam) {
iSysMenuService.edit(sysMenuParam); iSystemMenuService.edit(sysMenuParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -75,7 +88,7 @@ public class SysMenuController {
*/ */
@PostMapping("/del") @PostMapping("/del")
public Object del(@Validated(value = SysMenuParam.delete.class) @RequestBody SysMenuParam sysMenuParam) { public Object del(@Validated(value = SysMenuParam.delete.class) @RequestBody SysMenuParam sysMenuParam) {
iSysMenuService.del(sysMenuParam.getId()); iSystemMenuService.del(sysMenuParam.getId());
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.controller.system; package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISystemRoleService;
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.SysRoleVo; import com.hxkj.admin.vo.system.SystemRoleVo;
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;
@ -14,10 +14,10 @@ import javax.annotation.Resource;
@RestController @RestController
@RequestMapping("/api/system/role") @RequestMapping("/api/system/role")
public class SysRoleController { public class SystemRoleController {
@Resource @Resource
ISysRoleService iSysRoleService; ISystemRoleService iSystemRoleService;
/** /**
* 角色列表 * 角色列表
@ -28,7 +28,7 @@ public class SysRoleController {
*/ */
@GetMapping("/lists") @GetMapping("/lists")
public Object lists(@Validated PageParam pageParam) { public Object lists(@Validated PageParam pageParam) {
PageResult<SysRoleVo> lists = iSysRoleService.lists(pageParam); PageResult<SystemRoleVo> lists = iSystemRoleService.lists(pageParam);
return AjaxResult.success(lists); return AjaxResult.success(lists);
} }
@ -39,8 +39,9 @@ public class SysRoleController {
* @return Object * @return Object
*/ */
@GetMapping("/detail") @GetMapping("/detail")
public Object detail() { public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
return null; SystemRoleVo vo = iSystemRoleService.detail(id);
return AjaxResult.success(vo);
} }
/** /**
@ -52,7 +53,7 @@ public class SysRoleController {
*/ */
@PostMapping("/add") @PostMapping("/add")
public Object add(@Validated(value = SysRoleParam.create.class) @RequestBody SysRoleParam sysRoleParam) { public Object add(@Validated(value = SysRoleParam.create.class) @RequestBody SysRoleParam sysRoleParam) {
iSysRoleService.add(sysRoleParam); iSystemRoleService.add(sysRoleParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -65,7 +66,7 @@ public class SysRoleController {
*/ */
@PostMapping("/edit") @PostMapping("/edit")
public Object edit(@Validated(value = SysRoleParam.create.class) @RequestBody SysRoleParam sysRoleParam) { public Object edit(@Validated(value = SysRoleParam.create.class) @RequestBody SysRoleParam sysRoleParam) {
iSysRoleService.edit(sysRoleParam); iSystemRoleService.edit(sysRoleParam);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -73,12 +74,12 @@ public class SysRoleController {
* 删除角色 * 删除角色
* *
* @author fzr * @author fzr
* @param id 角色ID * @param sysRoleParam 角色参数
* @return Object * @return Object
*/ */
@PostMapping("/del") @PostMapping("/del")
public Object del(@Validated @IDMust() @RequestBody Integer id) { public Object del(@Validated(value = SysRoleParam.delete.class) @RequestBody SysRoleParam sysRoleParam) {
iSysRoleService.del(id); iSystemRoleService.del(sysRoleParam.getId());
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@ -1,37 +0,0 @@
package com.hxkj.admin.service;
import com.hxkj.common.basics.BaseService;
import com.hxkj.common.entity.system.SysRoleMenu;
/**
* 系统角色菜单服务
*/
public interface ISysRoleMenuService extends BaseService<SysRoleMenu> {
/**
* 批量写入角色菜单
*
* @author fzr
* @param roleId 角色ID
* @param ids 菜单ID组
*/
void batchSaveByMenuIds(Integer roleId, String ids);
/**
* 根据ID批量删除角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
void batchDeleteByRoleId(Integer roleId);
/**
* 缓存角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
void cacheRoleMenusByRoleId(Integer roleId);
}

View File

@ -2,17 +2,17 @@ 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.SysAdminVo; import com.hxkj.admin.vo.system.SystemAdminVo;
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.SystemAdmin;
import java.util.Map; import java.util.Map;
/** /**
* 系统管理员服务 * 系统管理员服务
*/ */
public interface ISysAdminService extends BaseService<SysAdmin> { public interface ISystemAdminService extends BaseService<SystemAdmin> {
/** /**
* 根据账号查找管理员 * 根据账号查找管理员
@ -21,7 +21,7 @@ public interface ISysAdminService extends BaseService<SysAdmin> {
* @param username 主键ID * @param username 主键ID
* @return SysAdmin * @return SysAdmin
*/ */
SysAdmin findByUsername(String username); SystemAdmin findByUsername(String username);
/** /**
* 管理员列表 * 管理员列表
@ -30,7 +30,7 @@ public interface ISysAdminService extends BaseService<SysAdmin> {
* @param pageParam 分页参数 * @param pageParam 分页参数
* @return PageResult<SysAdminListVo> * @return PageResult<SysAdminListVo>
*/ */
PageResult<SysAdminVo> lists(PageParam pageParam, Map<String, String> params); PageResult<SystemAdminVo> lists(PageParam pageParam, Map<String, String> params);
/** /**
* 管理员详情 * 管理员详情
@ -39,7 +39,7 @@ public interface ISysAdminService extends BaseService<SysAdmin> {
* @param id 主键参数 * @param id 主键参数
* @return SysAdmin * @return SysAdmin
*/ */
SysAdminVo detail(Integer id); SystemAdminVo detail(Integer id);
/** /**
* 新增管理员 * 新增管理员

View File

@ -2,13 +2,12 @@ package com.hxkj.admin.service;
import com.hxkj.admin.validate.SysLoginParam; import com.hxkj.admin.validate.SysLoginParam;
import javax.servlet.http.HttpServletRequest;
import java.util.Map; import java.util.Map;
/** /**
* 系统登录服务 * 系统登录服务
*/ */
public interface ISysLoginService { public interface ISystemLoginService {
/** /**
* 登录 * 登录

View File

@ -2,18 +2,27 @@ 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.admin.vo.system.SystemMenuVo;
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.SystemMenu;
/** /**
* 系统菜单服务 * 系统菜单服务
*/ */
public interface ISysMenuService extends BaseService<SysMenu> { public interface ISystemMenuService extends BaseService<SystemMenu> {
/**
* 根据角色获取菜单
*
* @author fzr
* @return JSONArray
*/
JSONArray selectMenuByRoleId(Integer roleId);
/** /**
* 菜单列表 * 菜单列表
* *
* @author fzr
* @return JSONArray * @return JSONArray
*/ */
JSONArray lists(); JSONArray lists();
@ -25,7 +34,7 @@ public interface ISysMenuService extends BaseService<SysMenu> {
* @param id 主键 * @param id 主键
* @return SysMenu * @return SysMenu
*/ */
SysMenuVo detail(Integer id); SystemMenuVo detail(Integer id);
/** /**
* 新增菜单 * 新增菜单

View File

@ -0,0 +1,54 @@
package com.hxkj.admin.service;
import com.hxkj.common.basics.BaseService;
import com.hxkj.common.entity.system.SystemRoleMenu;
import java.util.List;
/**
* 系统角色菜单服务
*/
public interface ISystemRoleMenuService extends BaseService<SystemRoleMenu> {
/**
* 根据角色ID获取菜单ID
*
* @param roleId 角色ID
* @return List<Integer>
*/
List<Integer> selectMenuIdsByRoleId(Integer roleId);
/**
* 批量写入角色菜单
*
* @author fzr
* @param roleId 角色ID
* @param menuIds 菜单ID组
*/
void batchSaveByMenuIds(Integer roleId, String menuIds);
/**
* 根据角色ID批量删除角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
void batchDeleteByRoleId(Integer roleId);
/**
* 根据菜单ID批量删除角色菜单
*
* @author fzr
* @param menuId 菜单ID
*/
void batchDeleteByMenuId(Integer menuId);
/**
* 缓存角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
void cacheRoleMenusByRoleId(Integer roleId);
}

View File

@ -2,16 +2,16 @@ 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.SysRoleVo; import com.hxkj.admin.vo.system.SystemRoleVo;
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.SystemRole;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
/** /**
* 系统角色服务 * 系统角色服务
*/ */
public interface ISysRoleService extends BaseService<SysRole> { public interface ISystemRoleService extends BaseService<SystemRole> {
/** /**
* 根据id获取角色名称 * 根据id获取角色名称
@ -27,7 +27,7 @@ public interface ISysRoleService extends BaseService<SysRole> {
* @param pageParam 参数 * @param pageParam 参数
* @return PageResult<SysRoleListVo> * @return PageResult<SysRoleListVo>
*/ */
PageResult<SysRoleVo> lists(@Validated PageParam pageParam); PageResult<SystemRoleVo> lists(@Validated PageParam pageParam);
/** /**
* 角色详情 * 角色详情
@ -36,7 +36,7 @@ public interface ISysRoleService extends BaseService<SysRole> {
* @param id 主键参数 * @param id 主键参数
* @return SysRole * @return SysRole
*/ */
SysRole detail(Integer id); SystemRoleVo detail(Integer id);
/** /**
* 新增角色 * 新增角色

View File

@ -1,134 +0,0 @@
package com.hxkj.admin.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysMenuService;
import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SysMenuVo;
import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.mapper.system.SysMenuMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
public class ISysMenuServiceImpl extends MPJBaseServiceImpl<SysMenuMapper, SysMenu> implements ISysMenuService {
/**
* 菜单列表
*
* @author fzr
* @return JSONArray
*/
@Override
public JSONArray lists() {
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
List<SysMenu> sysMenus = this.list( queryWrapper);
List<SysMenuVo> lists = new ArrayList<>();
for (SysMenu sysMenu : sysMenus) {
SysMenuVo vo = new SysMenuVo();
BeanUtils.copyProperties(sysMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysMenu.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysMenu.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 菜单详情
*
* @author fzr
* @param id 主键参数
* @return SysMenu
*/
@Override
public SysMenuVo detail(Integer id) {
SysMenu sysMenu = this.getOne(new QueryWrapper<SysMenu>().eq("id", id));
Assert.notNull(sysMenu, "菜单已不存在!");
SysMenuVo vo = new SysMenuVo();
BeanUtils.copyProperties(sysMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysMenu.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysMenu.getUpdateTime()));
return vo;
}
/**
* 新增菜单
*
* @author fzr
* @param sysMenuParam 参数
*/
@Override
public void add(SysMenuParam sysMenuParam) {
SysMenu model = new SysMenu();
model.setPid(sysMenuParam.getPid());
model.setMenuType(sysMenuParam.getMenuType());
model.setMenuName(sysMenuParam.getMenuName());
model.setMenuIcon(sysMenuParam.getMenuIcon());
model.setMenuSort(sysMenuParam.getMenuSort());
model.setPerms(sysMenuParam.getPerms());
model.setIsDisable(sysMenuParam.getIsDisable());
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
this.save(model);
}
/**
* 编辑菜单
*
* @author fzr
* @param sysMenuParam 菜单
*/
@Override
public void edit(SysMenuParam sysMenuParam) {
SysMenu model = this.getOne(new QueryWrapper<SysMenu>().eq("id", sysMenuParam.getId()));
Assert.notNull(model, "菜单已不存在!");
model.setMenuType(sysMenuParam.getMenuType());
model.setMenuName(sysMenuParam.getMenuName());
model.setMenuIcon(sysMenuParam.getMenuIcon());
model.setMenuSort(sysMenuParam.getMenuSort());
model.setPerms(sysMenuParam.getPerms());
model.setPid(sysMenuParam.getPid());
model.setIsDisable(sysMenuParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000);
this.updateById(model);
RedisUtil.del(SystemConfig.backstageRolesKey);
}
/**
* 删除菜单
*
* @author fzr
* @param id 主键参数
*/
@Override
public void del(Integer id) {
SysMenu model = this.getOne(new QueryWrapper<SysMenu>().eq("id", id));
Assert.notNull(model, "菜单已不存在!");
this.removeById(id);
RedisUtil.del(SystemConfig.backstageRolesKey);
}
}

View File

@ -1,89 +0,0 @@
package com.hxkj.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysMenuService;
import com.hxkj.admin.service.ISysRoleMenuService;
import com.hxkj.common.entity.system.SysMenu;
import com.hxkj.common.entity.system.SysRoleMenu;
import com.hxkj.common.mapper.system.SysRoleMenuMapper;
import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.ToolsUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@Service
public class ISysRoleMenuServiceImpl extends MPJBaseServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements ISysRoleMenuService {
@Resource
ISysMenuService iSysMenuService;
/**
* 批量写入角色菜单
*
* @author fzr
* @param roleId 角色ID
* @param ids 菜单ID组
*/
@Override
public void batchSaveByMenuIds(Integer roleId, String ids) {
if (ids != null && !ids.equals("")) {
List<SysRoleMenu> arrayList = new ArrayList<>();
for (String menuId : ids.split(",")) {
SysRoleMenu model = new SysRoleMenu();
model.setRoleId(roleId);
model.setMenuId(Integer.parseInt(menuId));
arrayList.add(model);
}
this.saveBatch(arrayList);
}
}
/**
* 批量删除角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
@Override
public void batchDeleteByRoleId(Integer roleId) {
this.remove(new QueryWrapper<SysRoleMenu>().eq("role_id", roleId));
}
/**
* 缓存角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
@Override
public void cacheRoleMenusByRoleId(Integer roleId) {
List<Integer> menuIds = new LinkedList<>();
List<String> menuArray = new LinkedList<>();
List<SysRoleMenu> sysRoleMenus = this.list(new QueryWrapper<SysRoleMenu>().eq("role_id", roleId));
for (SysRoleMenu sysRoleMenu : sysRoleMenus) {
menuIds.add(sysRoleMenu.getMenuId());
}
if (menuIds.size() > 0) {
List<SysMenu> sysMenus = iSysMenuService.list(new QueryWrapper<SysMenu>()
.select("id,perms")
.in("id", menuIds)
.eq("is_disable", 0));
for (SysMenu sysMenu : sysMenus) {
menuArray.add(sysMenu.getPerms().trim());
}
}
RedisUtil.hSet(SystemConfig.backstageRolesKey, String.valueOf(roleId), ToolsUtil.listStrToString(menuArray, ","));
}
}

View File

@ -7,18 +7,15 @@ 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.ISystemAdminService;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISystemRoleService;
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.SysAdminVo; import com.hxkj.admin.vo.system.SystemAdminVo;
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.SystemAdmin;
import com.hxkj.common.mapper.system.SysAdminMapper; import com.hxkj.common.mapper.system.SystemAdminMapper;
import com.hxkj.common.utils.RedisUtil; import com.hxkj.common.utils.*;
import com.hxkj.common.utils.TimeUtil;
import com.hxkj.common.utils.ToolsUtil;
import com.hxkj.common.utils.UrlUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,10 +23,10 @@ import javax.annotation.Resource;
import java.util.*; import java.util.*;
@Service @Service
public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, SysAdmin> implements ISysAdminService { public class ISystemAdminServiceImpl extends MPJBaseServiceImpl<SystemAdminMapper, SystemAdmin> implements ISystemAdminService {
@Resource @Resource
ISysRoleService iSysRoleService; ISystemRoleService iSystemRoleService;
/** /**
* 根据账号查找管理员 * 根据账号查找管理员
@ -39,8 +36,8 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
* @return SysAdmin * @return SysAdmin
*/ */
@Override @Override
public SysAdmin findByUsername(String username) { public SystemAdmin findByUsername(String username) {
return this.getOne(new QueryWrapper<SysAdmin>() return this.getOne(new QueryWrapper<SystemAdmin>()
.eq("username", username) .eq("username", username)
.last("limit 1")); .last("limit 1"));
} }
@ -53,12 +50,12 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
* @return PageResult<SysAdminListVo> * @return PageResult<SysAdminListVo>
*/ */
@Override @Override
public PageResult<SysAdminVo> lists(PageParam pageParam, Map<String, String> params) { public PageResult<SystemAdminVo> lists(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo(); Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize(); Integer limit = pageParam.getPageSize();
QueryWrapper<SysAdmin> queryWrapper = new QueryWrapper<>(); QueryWrapper<SystemAdmin> queryWrapper = new QueryWrapper<>();
queryWrapper.select(SysAdmin.class, info-> queryWrapper.select(SystemAdmin.class, info->
!info.getColumn().equals("salt") && !info.getColumn().equals("salt") &&
!info.getColumn().equals("password") && !info.getColumn().equals("password") &&
!info.getColumn().equals("is_delete") && !info.getColumn().equals("is_delete") &&
@ -72,15 +69,15 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
"=:role:int" "=:role:int"
}); });
IPage<SysAdmin> iPage = this.page(new Page<>(page, limit), queryWrapper); IPage<SystemAdmin> iPage = this.page(new Page<>(page, limit), queryWrapper);
List<SysAdminVo> adminVoArrayList = new ArrayList<>(); List<SystemAdminVo> adminVoArrayList = new ArrayList<>();
for (SysAdmin sysAdmin : iPage.getRecords()) { for (SystemAdmin sysAdmin : iPage.getRecords()) {
SysAdminVo vo = new SysAdminVo(); SystemAdminVo vo = new SystemAdminVo();
BeanUtils.copyProperties(sysAdmin, vo); BeanUtils.copyProperties(sysAdmin, vo);
vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar())); vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar()));
vo.setRole(iSysRoleService.getRoleNameById(sysAdmin.getRole())); vo.setRole(iSystemRoleService.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()));
vo.setLastLoginTime(TimeUtil.timestampToDate(sysAdmin.getLastLoginTime())); vo.setLastLoginTime(TimeUtil.timestampToDate(sysAdmin.getLastLoginTime()));
@ -98,9 +95,9 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
* @return SysAdmin * @return SysAdmin
*/ */
@Override @Override
public SysAdminVo detail(Integer id) { public SystemAdminVo detail(Integer id) {
SysAdmin sysAdmin = this.getOne(new QueryWrapper<SysAdmin>() SystemAdmin sysAdmin = this.getOne(new QueryWrapper<SystemAdmin>()
.select(SysAdmin.class, info-> .select(SystemAdmin.class, info->
!info.getColumn().equals("salt") && !info.getColumn().equals("salt") &&
!info.getColumn().equals("password") && !info.getColumn().equals("password") &&
!info.getColumn().equals("is_delete") && !info.getColumn().equals("is_delete") &&
@ -111,7 +108,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
Assert.notNull(sysAdmin, "账号已不存在!"); Assert.notNull(sysAdmin, "账号已不存在!");
SysAdminVo vo = new SysAdminVo(); SystemAdminVo vo = new SystemAdminVo();
BeanUtils.copyProperties(sysAdmin, vo); BeanUtils.copyProperties(sysAdmin, vo);
vo.setRole(String.valueOf(sysAdmin.getRole())); vo.setRole(String.valueOf(sysAdmin.getRole()));
@ -132,25 +129,25 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
@Override @Override
public void add(SysAdminParam sysAdminParam) { public void add(SysAdminParam sysAdminParam) {
String[] field = {"id", "username", "nickname"}; String[] field = {"id", "username", "nickname"};
Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.isNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("is_delete", 0) .eq("is_delete", 0)
.eq("username", sysAdminParam.getUsername()) .eq("username", sysAdminParam.getUsername())
.last("limit 1")), "账号已存在换一个吧!"); .last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.isNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("is_delete", 0) .eq("is_delete", 0)
.eq("nickname", sysAdminParam.getNickname()) .eq("nickname", sysAdminParam.getNickname())
.last("limit 1")), "昵称已存在换一个吧!"); .last("limit 1")), "昵称已存在换一个吧!");
Assert.notNull(iSysRoleService.getById(sysAdminParam.getRole()), "角色不存在!"); Assert.notNull(iSystemRoleService.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());
SysAdmin model = new SysAdmin(); SystemAdmin model = new SystemAdmin();
model.setUsername(sysAdminParam.getUsername()); model.setUsername(sysAdminParam.getUsername());
model.setNickname(sysAdminParam.getNickname()); model.setNickname(sysAdminParam.getNickname());
model.setRole(sysAdminParam.getRole()); model.setRole(sysAdminParam.getRole());
@ -173,29 +170,29 @@ 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>() Assert.notNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("id", sysAdminParam.getId()) .eq("id", sysAdminParam.getId())
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")), "账号不存在了!"); .last("limit 1")), "账号不存在了!");
Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.isNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("is_delete", 0) .eq("is_delete", 0)
.eq("username", sysAdminParam.getUsername()) .eq("username", sysAdminParam.getUsername())
.ne("id", sysAdminParam.getId()) .ne("id", sysAdminParam.getId())
.last("limit 1")), "账号已存在换一个吧!"); .last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.isNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("is_delete", 0) .eq("is_delete", 0)
.eq("nickname", sysAdminParam.getNickname()) .eq("nickname", sysAdminParam.getNickname())
.ne("id", sysAdminParam.getId()) .ne("id", sysAdminParam.getId())
.last("limit 1")), "昵称已存在换一个吧!"); .last("limit 1")), "昵称已存在换一个吧!");
Assert.notNull(iSysRoleService.getById(sysAdminParam.getRole()), "角色不存在!"); Assert.notNull(iSystemRoleService.getById(sysAdminParam.getRole()), "角色不存在!");
SysAdmin model = new SysAdmin(); SystemAdmin model = new SystemAdmin();
model.setId(sysAdminParam.getId()); model.setId(sysAdminParam.getId());
model.setNickname(sysAdminParam.getNickname()); model.setNickname(sysAdminParam.getNickname());
model.setUsername(sysAdminParam.getUsername()); model.setUsername(sysAdminParam.getUsername());
@ -205,7 +202,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
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("")) { if (sysAdminParam.getPassword() != null) {
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);
model.setPassword(pwd); model.setPassword(pwd);
@ -214,6 +211,10 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
this.updateById(model); this.updateById(model);
this.cacheAdminUserByUid(sysAdminParam.getId()); this.cacheAdminUserByUid(sysAdminParam.getId());
if (sysAdminParam.getPassword() != null) {
RedisUtil.del(Objects.requireNonNull(HttpUtil.obj()).getHeader("token"));
}
} }
/** /**
@ -225,7 +226,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
@Override @Override
public void del(Integer id) { public void del(Integer id) {
String[] field = {"id", "username", "nickname"}; String[] field = {"id", "username", "nickname"};
Assert.notNull(this.getOne(new QueryWrapper<SysAdmin>() Assert.notNull(this.getOne(new QueryWrapper<SystemAdmin>()
.select(field) .select(field)
.eq("id", id) .eq("id", id)
.eq("is_delete", 0) .eq("is_delete", 0)
@ -233,7 +234,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
Assert.isFalse(id == 1, "系统管理员不允许删除"); Assert.isFalse(id == 1, "系统管理员不允许删除");
SysAdmin model = new SysAdmin(); SystemAdmin model = new SystemAdmin();
model.setId(id); model.setId(id);
model.setIsDelete(1); model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000); model.setDeleteTime(System.currentTimeMillis() / 1000);
@ -246,7 +247,7 @@ public class ISysAdminServiceImpl extends MPJBaseServiceImpl<SysAdminMapper, Sys
*/ */
@Override @Override
public void cacheAdminUserByUid(Integer id) { public void cacheAdminUserByUid(Integer id) {
SysAdmin sysAdmin = this.getById(id); SystemAdmin sysAdmin = this.getById(id);
Map<String, Object> user = new LinkedHashMap<>(); Map<String, Object> user = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map = new LinkedHashMap<>();

View File

@ -1,14 +1,13 @@
package com.hxkj.admin.service.impl; package com.hxkj.admin.service.impl;
import com.hxkj.admin.config.SystemConfig; import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISysAdminService; import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISysLoginService; import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.validate.SysLoginParam; import com.hxkj.admin.validate.SysLoginParam;
import com.hxkj.common.entity.system.SysAdmin; import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.enums.HttpEnum; import com.hxkj.common.enums.HttpEnum;
import com.hxkj.common.exception.LoginException; import com.hxkj.common.exception.LoginException;
import com.hxkj.common.exception.OperateException; import com.hxkj.common.exception.OperateException;
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.ToolsUtil; import com.hxkj.common.utils.ToolsUtil;
@ -19,13 +18,10 @@ import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
@Service @Service
public class ISysLoginServiceImpl implements ISysLoginService { public class ISystemLoginServiceImpl implements ISystemLoginService {
@Resource @Resource
SysAdminMapper sysAdminMapper; ISystemAdminService iSystemAdminService;
@Resource
ISysAdminService iSysAdminService;
/** /**
* 登录 * 登录
@ -39,7 +35,7 @@ public class ISysLoginServiceImpl implements ISysLoginService {
String username = sysLoginParam.getUsername(); String username = sysLoginParam.getUsername();
String password = sysLoginParam.getPassword(); String password = sysLoginParam.getPassword();
SysAdmin sysAdmin = iSysAdminService.findByUsername(username); SystemAdmin sysAdmin = iSystemAdminService.findByUsername(username);
if (sysAdmin == null || sysAdmin.getIsDelete() == 1) { if (sysAdmin == null || sysAdmin.getIsDelete() == 1) {
throw new LoginException(HttpEnum.LOGIN_ACCOUNT_ERROR.getCode(), HttpEnum.LOGIN_ACCOUNT_ERROR.getMsg()); throw new LoginException(HttpEnum.LOGIN_ACCOUNT_ERROR.getCode(), HttpEnum.LOGIN_ACCOUNT_ERROR.getMsg());
} }
@ -57,11 +53,11 @@ public class ISysLoginServiceImpl implements ISysLoginService {
try { try {
sysAdmin.setLastLoginIp(HttpUtil.ip()); sysAdmin.setLastLoginIp(HttpUtil.ip());
sysAdmin.setLastLoginTime(System.currentTimeMillis() / 1000); sysAdmin.setLastLoginTime(System.currentTimeMillis() / 1000);
sysAdminMapper.updateById(sysAdmin); iSystemAdminService.updateById(sysAdmin);
String token = ToolsUtil.makeToken(); String token = ToolsUtil.makeToken();
RedisUtil.set(SystemConfig.backstageTokenKey+token, sysAdmin.getId(), 7200); RedisUtil.set(SystemConfig.backstageTokenKey+token, sysAdmin.getId(), 7200);
iSysAdminService.cacheAdminUserByUid(sysAdmin.getId()); iSystemAdminService.cacheAdminUserByUid(sysAdmin.getId());
Map<String, Object> response = new LinkedHashMap<>(); Map<String, Object> response = new LinkedHashMap<>();
response.put("token", token); response.put("token", token);

View File

@ -0,0 +1,175 @@
package com.hxkj.admin.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.validate.SysMenuParam;
import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.common.entity.system.SystemMenu;
import com.hxkj.common.mapper.system.SystemMenuMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
public class ISystemMenuServiceImpl extends MPJBaseServiceImpl<SystemMenuMapper, SystemMenu> implements ISystemMenuService {
@Resource
ISystemRoleMenuService iSystemRoleMenuService;
/**
* 根据角色ID获取菜单
*
* @author fzr
* @param roleId 角色ID
* @return JSONArray
*/
@Override
public JSONArray selectMenuByRoleId(Integer roleId) {
Integer adminId = LikeAdminThreadLocal.getAdminId();
List<Integer> menuIds = iSystemRoleMenuService.selectMenuIdsByRoleId(roleId);
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.in("menu_type", Arrays.asList("M", "C"));
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
if (adminId != 1 && menuIds.size() > 0) {
queryWrapper.in("id", menuIds);
}
List<SystemMenu> systemMenus = this.list(queryWrapper);
List<SystemMenuVo> lists = new ArrayList<>();
for (SystemMenu systemMenu : systemMenus) {
SystemMenuVo vo = new SystemMenuVo();
BeanUtils.copyProperties(systemMenu, vo);
vo.setUpdateTime(TimeUtil.timestampToDate(systemMenu.getUpdateTime()));
vo.setCreateTime(TimeUtil.timestampToDate(systemMenu.getCreateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 菜单列表
*
* @author fzr
* @return JSONArray
*/
@Override
public JSONArray lists() {
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc(Arrays.asList("menu_sort", "id"));
List<SystemMenu> systemMenus = this.list(queryWrapper);
List<SystemMenuVo> lists = new ArrayList<>();
for (SystemMenu systemMenu : systemMenus) {
SystemMenuVo vo = new SystemMenuVo();
BeanUtils.copyProperties(systemMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemMenu.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemMenu.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 菜单详情
*
* @author fzr
* @param id 主键参数
* @return SysMenu
*/
@Override
public SystemMenuVo detail(Integer id) {
SystemMenu systemMenu = this.getOne(new QueryWrapper<SystemMenu>().eq("id", id));
Assert.notNull(systemMenu, "菜单已不存在!");
SystemMenuVo vo = new SystemMenuVo();
BeanUtils.copyProperties(systemMenu, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemMenu.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemMenu.getUpdateTime()));
return vo;
}
/**
* 新增菜单
*
* @author fzr
* @param sysMenuParam 参数
*/
@Override
public void add(SysMenuParam sysMenuParam) {
SystemMenu model = new SystemMenu();
model.setPid(sysMenuParam.getPid());
model.setMenuType(sysMenuParam.getMenuType());
model.setMenuName(sysMenuParam.getMenuName());
model.setMenuIcon(sysMenuParam.getMenuIcon());
model.setMenuSort(sysMenuParam.getMenuSort());
model.setPerms(sysMenuParam.getPerms());
model.setIsDisable(sysMenuParam.getIsDisable());
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
this.save(model);
}
/**
* 编辑菜单
*
* @author fzr
* @param sysMenuParam 菜单
*/
@Override
public void edit(SysMenuParam sysMenuParam) {
SystemMenu model = this.getOne(new QueryWrapper<SystemMenu>().eq("id", sysMenuParam.getId()));
Assert.notNull(model, "菜单已不存在!");
model.setMenuType(sysMenuParam.getMenuType());
model.setMenuName(sysMenuParam.getMenuName());
model.setMenuIcon(sysMenuParam.getMenuIcon());
model.setMenuSort(sysMenuParam.getMenuSort());
model.setPerms(sysMenuParam.getPerms());
model.setPid(sysMenuParam.getPid());
model.setIsDisable(sysMenuParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000);
this.updateById(model);
RedisUtil.del(SystemConfig.backstageRolesKey);
}
/**
* 删除菜单
*
* @author fzr
* @param id 主键参数
*/
@Override
public void del(Integer id) {
SystemMenu model = this.getOne(new QueryWrapper<SystemMenu>().eq("id", id));
Assert.notNull(model, "菜单已不存在!");
this.removeById(id);
iSystemRoleMenuService.batchDeleteByMenuId(id);
RedisUtil.del(SystemConfig.backstageRolesKey);
}
}

View File

@ -0,0 +1,115 @@
package com.hxkj.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.hxkj.admin.config.SystemConfig;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.common.entity.system.SystemMenu;
import com.hxkj.common.entity.system.SystemRoleMenu;
import com.hxkj.common.mapper.system.SystemRoleMenuMapper;
import com.hxkj.common.utils.RedisUtil;
import com.hxkj.common.utils.ToolsUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@Service
public class ISystemRoleMenuServiceImpl extends MPJBaseServiceImpl<SystemRoleMenuMapper, SystemRoleMenu> implements ISystemRoleMenuService {
@Resource
ISystemMenuService iSystemMenuService;
/**
* 根据角色ID获取菜单ID
*
* @param roleId 角色ID
* @return List<Integer>
*/
@Override
public List<Integer> selectMenuIdsByRoleId(Integer roleId) {
List<Integer> menus = new LinkedList<>();
List<SystemRoleMenu> systemRoleMenus = this.list(new QueryWrapper<SystemRoleMenu>().eq("role_id", roleId));
for (SystemRoleMenu systemRoleMenu : systemRoleMenus) {
menus.add(systemRoleMenu.getMenuId());
}
return menus;
}
/**
* 批量写入角色菜单
*
* @author fzr
* @param roleId 角色ID
* @param menuIds 菜单ID组
*/
@Override
public void batchSaveByMenuIds(Integer roleId, String menuIds) {
if (menuIds != null && !menuIds.equals("")) {
List<SystemRoleMenu> arrayList = new ArrayList<>();
for (String menuId : menuIds.split(",")) {
SystemRoleMenu model = new SystemRoleMenu();
model.setRoleId(roleId);
model.setMenuId(Integer.parseInt(menuId));
arrayList.add(model);
}
this.saveBatch(arrayList);
}
}
/**
* 批量删除角色菜单(根据角色ID)
*
* @author fzr
* @param roleId 角色ID
*/
@Override
public void batchDeleteByRoleId(Integer roleId) {
this.remove(new QueryWrapper<SystemRoleMenu>().eq("role_id", roleId));
}
/**
* 批量删除角色菜单(根据菜单ID)
*
* @author fzr
* @param menuId 菜单ID
*/
@Override
public void batchDeleteByMenuId(Integer menuId) {
this.remove(new QueryWrapper<SystemRoleMenu>().eq("menu_id", menuId));
}
/**
* 缓存角色菜单
*
* @author fzr
* @param roleId 角色ID
*/
@Override
public void cacheRoleMenusByRoleId(Integer roleId) {
List<Integer> menuIds = new LinkedList<>();
List<String> menuArray = new LinkedList<>();
List<SystemRoleMenu> systemRoleMenus = this.list(new QueryWrapper<SystemRoleMenu>().eq("role_id", roleId));
for (SystemRoleMenu systemRoleMenu : systemRoleMenus) {
menuIds.add(systemRoleMenu.getMenuId());
}
if (menuIds.size() > 0) {
List<SystemMenu> systemMenus = iSystemMenuService.list(new QueryWrapper<SystemMenu>()
.select("id,perms")
.in("id", menuIds)
.eq("is_disable", 0));
for (SystemMenu systemMenu : systemMenus) {
menuArray.add(systemMenu.getPerms().trim());
}
}
RedisUtil.hSet(SystemConfig.backstageRolesKey, String.valueOf(roleId), ToolsUtil.listStrToString(menuArray, ","));
}
}

View File

@ -6,16 +6,16 @@ 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.ISystemAdminService;
import com.hxkj.admin.service.ISysRoleMenuService; import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISysRoleService; import com.hxkj.admin.service.ISystemRoleService;
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.SysRoleVo; import com.hxkj.admin.vo.system.SystemRoleVo;
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.SystemAdmin;
import com.hxkj.common.entity.system.SysRole; import com.hxkj.common.entity.system.SystemRole;
import com.hxkj.common.mapper.system.SysRoleMapper; import com.hxkj.common.mapper.system.SystemRoleMapper;
import com.hxkj.common.utils.RedisUtil; 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;
@ -29,13 +29,13 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
@Service @Service
public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService { public class ISystemRoleServiceImpl extends MPJBaseServiceImpl<SystemRoleMapper, SystemRole> implements ISystemRoleService {
@Resource @Resource
ISysAdminService iSysAdminService; ISystemAdminService iSystemAdminService;
@Resource @Resource
ISysRoleMenuService iSysRoleMenuService; ISystemRoleMenuService iSystemRoleMenuService;
/** /**
@ -47,16 +47,16 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
*/ */
@Override @Override
public String getRoleNameById(Integer id) { public String getRoleNameById(Integer id) {
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>(); QueryWrapper<SystemRole> queryWrapper = new QueryWrapper<>();
queryWrapper.select("id", "name") queryWrapper.select("id", "name")
.eq("id", id) .eq("id", id)
.last("limit 1"); .last("limit 1");
SysRole sysRole = this.getOne(queryWrapper, false); SystemRole systemRole = this.getOne(queryWrapper, false);
if (sysRole == null) { if (systemRole == null) {
return ""; return "";
} }
return sysRole.getName(); return systemRole.getName();
} }
/** /**
@ -67,22 +67,23 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
* @return PageResult<SysRoleListVo> * @return PageResult<SysRoleListVo>
*/ */
@Override @Override
public PageResult<SysRoleVo> lists(@Validated PageParam pageParam) { public PageResult<SystemRoleVo> 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<SystemRole> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc(Arrays.asList("sort", "id")); queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
IPage<SysRole> iPage = this.page(new Page<>(page, limit), queryWrapper); IPage<SystemRole> iPage = this.page(new Page<>(page, limit), queryWrapper);
List<SysRoleVo> roleVoArrayList = new ArrayList<>(); List<SystemRoleVo> roleVoArrayList = new ArrayList<>();
for (SysRole sysRole : iPage.getRecords()) { for (SystemRole systemRole : iPage.getRecords()) {
SysRoleVo vo = new SysRoleVo(); SystemRoleVo vo = new SystemRoleVo();
BeanUtils.copyProperties(sysRole, vo); BeanUtils.copyProperties(systemRole, vo);
vo.setCreateTime(TimeUtil.timestampToDate(sysRole.getCreateTime())); vo.setMenus(new ArrayList<>());
vo.setUpdateTime(TimeUtil.timestampToDate(sysRole.getUpdateTime())); vo.setCreateTime(TimeUtil.timestampToDate(systemRole.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemRole.getUpdateTime()));
roleVoArrayList.add(vo); roleVoArrayList.add(vo);
} }
@ -97,14 +98,21 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
* @return SysRole * @return SysRole
*/ */
@Override @Override
public SysRole detail(Integer id) { public SystemRoleVo detail(Integer id) {
SysRole sysRole = this.getOne(new QueryWrapper<SysRole>() SystemRole systemRole = this.getOne(new QueryWrapper<SystemRole>()
.eq("id", id) .eq("id", id)
.last("limit 1")); .last("limit 1"));
Assert.notNull(sysRole, "角色已不存在!"); Assert.notNull(systemRole, "角色已不存在!");
return sysRole; SystemRoleVo vo = new SystemRoleVo();
BeanUtils.copyProperties(systemRole, vo);
vo.setMenus(iSystemRoleMenuService.selectMenuIdsByRoleId(systemRole.getId()));
vo.setCreateTime(TimeUtil.timestampToDate(systemRole.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemRole.getUpdateTime()));
return vo;
} }
/** /**
@ -116,12 +124,12 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
@Override @Override
@Transactional @Transactional
public void add(SysRoleParam sysRoleParam) { public void add(SysRoleParam sysRoleParam) {
Assert.isNull(this.getOne(new QueryWrapper<SysRole>() Assert.isNull(this.getOne(new QueryWrapper<SystemRole>()
.select("id,name") .select("id,name")
.eq("name", sysRoleParam.getName().trim()) .eq("name", sysRoleParam.getName().trim())
.last("limit 1")), "角色名称已存在!"); .last("limit 1")), "角色名称已存在!");
SysRole model = new SysRole(); SystemRole model = new SystemRole();
model.setName(sysRoleParam.getName().trim()); model.setName(sysRoleParam.getName().trim());
model.setRemark(sysRoleParam.getRemark()); model.setRemark(sysRoleParam.getRemark());
model.setIsDisable(sysRoleParam.getIsDisable()); model.setIsDisable(sysRoleParam.getIsDisable());
@ -129,7 +137,7 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
this.save(model); this.save(model);
iSysRoleMenuService.batchSaveByMenuIds(sysRoleParam.getId(), sysRoleParam.getMenuIds()); iSystemRoleMenuService.batchSaveByMenuIds(model.getId(), sysRoleParam.getMenuIds());
} }
/** /**
@ -141,18 +149,18 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
@Override @Override
@Transactional @Transactional
public void edit(SysRoleParam sysRoleParam) { public void edit(SysRoleParam sysRoleParam) {
Assert.notNull(this.getOne(new QueryWrapper<SysRole>() Assert.notNull(this.getOne(new QueryWrapper<SystemRole>()
.select("id,name") .select("id,name")
.eq("id", sysRoleParam.getId()) .eq("id", sysRoleParam.getId())
.last("limit 1")), "角色已不存在!"); .last("limit 1")), "角色已不存在!");
Assert.isNull(this.getOne(new QueryWrapper<SysRole>() Assert.isNull(this.getOne(new QueryWrapper<SystemRole>()
.select("id,name") .select("id,name")
.ne("id", sysRoleParam.getId()) .ne("id", sysRoleParam.getId())
.eq("name", sysRoleParam.getName().trim()) .eq("name", sysRoleParam.getName().trim())
.last("limit 1")), "角色名称已存在!"); .last("limit 1")), "角色名称已存在!");
SysRole model = new SysRole(); SystemRole model = new SystemRole();
model.setId(sysRoleParam.getId()); model.setId(sysRoleParam.getId());
model.setName(sysRoleParam.getName().trim()); model.setName(sysRoleParam.getName().trim());
model.setRemark(sysRoleParam.getRemark()); model.setRemark(sysRoleParam.getRemark());
@ -160,9 +168,9 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
this.updateById(model); this.updateById(model);
iSysRoleMenuService.batchDeleteByRoleId(sysRoleParam.getId()); iSystemRoleMenuService.batchDeleteByRoleId(sysRoleParam.getId());
iSysRoleMenuService.batchSaveByMenuIds(sysRoleParam.getId(), sysRoleParam.getMenuIds()); iSystemRoleMenuService.batchSaveByMenuIds(sysRoleParam.getId(), sysRoleParam.getMenuIds());
iSysRoleMenuService.cacheRoleMenusByRoleId(sysRoleParam.getId()); iSystemRoleMenuService.cacheRoleMenusByRoleId(sysRoleParam.getId());
} }
/** /**
@ -175,21 +183,21 @@ public class ISysRoleServiceImpl extends MPJBaseServiceImpl<SysRoleMapper, SysRo
@Transactional @Transactional
public void del(Integer id) { public void del(Integer id) {
Assert.notNull( Assert.notNull(
this.getOne(new QueryWrapper<SysRole>() this.getOne(new QueryWrapper<SystemRole>()
.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>() Assert.isNull(iSystemAdminService.getOne(new QueryWrapper<SystemAdmin>()
.select("id", "role", "nickname") .select("id", "role", "nickname")
.eq("role", id) .eq("role", id)
.eq("is_delete", 0)), .eq("is_delete", 0)),
"角色已被管理员使用,请先移除"); "角色已被管理员使用,请先移除");
this.removeById(id); this.removeById(id);
iSysRoleMenuService.batchDeleteByRoleId(id); iSystemRoleMenuService.batchDeleteByRoleId(id);
RedisUtil.hDel(SystemConfig.backstageRolesKey, id); RedisUtil.hDel(SystemConfig.backstageRolesKey, String.valueOf(id));
} }
} }

View File

@ -1,15 +1,20 @@
package com.hxkj.admin.validate; package com.hxkj.admin.validate;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin; import javax.validation.constraints.DecimalMin;
import java.io.Serializable;
/** /**
* 分页参数 * 分页参数
*/ */
@Data @Data
public class PageParam { @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PageParam implements Serializable {
// 当前分页 // 当前分页
@DecimalMin(value = "1", message = "pageNo参数必须大于0的数字") @DecimalMin(value = "1", message = "pageNo参数必须大于0的数字")

View File

@ -3,17 +3,22 @@ package com.hxkj.admin.validate;
import com.hxkj.common.validator.annotation.IDMust; import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.StringContains; import com.hxkj.common.validator.annotation.StringContains;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.DecimalMin; import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max; import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable;
/** /**
* 系统菜单参数 * 系统菜单参数
*/ */
@Data @Data
public class SysMenuParam { @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysMenuParam implements Serializable {
public interface create{} public interface create{}
public interface update{} public interface update{}

View File

@ -2,19 +2,25 @@ package com.hxkj.admin.validate;
import com.hxkj.common.validator.annotation.IDMust; import com.hxkj.common.validator.annotation.IDMust;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.DecimalMin; import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max; import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data @Data
public class SysRoleParam { @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysRoleParam implements Serializable {
public interface create{} public interface create{}
public interface update{} public interface update{}
public interface delete{}
@IDMust(message = "id参数必传且需大于0", groups = {update.class}) @IDMust(message = "id参数必传且需大于0", groups = {update.class, delete.class})
private Integer id; private Integer id;
@NotNull(message = "缺少参数name", groups = {create.class, update.class}) @NotNull(message = "缺少参数name", groups = {create.class, update.class})

View File

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

View File

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

View File

@ -5,13 +5,14 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
public class SysRoleVo implements Serializable { public class SystemRoleVo implements Serializable {
private static final long serialVersionUID = 1L; 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 Object menus;
private Integer sort; private Integer sort;
private Integer isDisable; private Integer isDisable;
private String createTime; private String createTime;

View File

@ -1,10 +1,7 @@
package com.hxkj.common.basics; package com.hxkj.common.basics;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SysAdmin;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
* 系统管理员实体 * 系统管理员实体
*/ */
@Data @Data
public class SysAdmin implements Serializable { public class SystemAdmin implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,25 @@
package com.hxkj.common.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 系统配置实体
*/
@Data
public class SystemConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Integer id;
private String type;
private String name;
private String value;
private Long createTime;
private Long updateTime;
}

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
* 系统菜单实体 * 系统菜单实体
*/ */
@Data @Data
public class SysMenu implements Serializable { public class SystemMenu implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
* 系统角色实体 * 系统角色实体
*/ */
@Data @Data
public class SysRole implements Serializable { public class SystemRole implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -14,12 +14,12 @@ import java.io.Serializable;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
public class SysRoleMenu implements Serializable { public class SystemRoleMenu implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId(type = IdType.NONE) @TableId(type = IdType.ASSIGN_UUID)
private Integer id; private String id;
private Integer roleId; private Integer roleId;
private Integer menuId; private Integer menuId;

View File

@ -1,12 +1,12 @@
package com.hxkj.common.mapper.system; package com.hxkj.common.mapper.system;
import com.hxkj.common.basics.BaseMapper; import com.hxkj.common.basics.BaseMapper;
import com.hxkj.common.entity.system.SysAdmin; import com.hxkj.common.entity.system.SystemAdmin;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 系统管理员 * 系统管理员
*/ */
@Mapper @Mapper
public interface SysAdminMapper extends BaseMapper<SysAdmin> { public interface SystemAdminMapper extends BaseMapper<SystemAdmin> {
} }

View File

@ -0,0 +1,12 @@
package com.hxkj.common.mapper.system;
import com.hxkj.common.basics.BaseMapper;
import com.hxkj.common.entity.system.SystemConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* 系统配置
*/
@Mapper
public interface SystemConfigMapper extends BaseMapper<SystemConfig> {
}

View File

@ -1,12 +1,12 @@
package com.hxkj.common.mapper.system; package com.hxkj.common.mapper.system;
import com.hxkj.common.basics.BaseMapper; import com.hxkj.common.basics.BaseMapper;
import com.hxkj.common.entity.system.SysMenu; import com.hxkj.common.entity.system.SystemMenu;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 系统菜单 * 系统菜单
*/ */
@Mapper @Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> { public interface SystemMenuMapper extends BaseMapper<SystemMenu> {
} }

View File

@ -1,12 +1,12 @@
package com.hxkj.common.mapper.system; package com.hxkj.common.mapper.system;
import com.hxkj.common.basics.BaseMapper; import com.hxkj.common.basics.BaseMapper;
import com.hxkj.common.entity.system.SysRole; import com.hxkj.common.entity.system.SystemRole;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 系统角色 * 系统角色
*/ */
@Mapper @Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> { public interface SystemRoleMapper extends BaseMapper<SystemRole> {
} }

View File

@ -1,12 +1,12 @@
package com.hxkj.common.mapper.system; package com.hxkj.common.mapper.system;
import com.hxkj.common.basics.BaseMapper; import com.hxkj.common.basics.BaseMapper;
import com.hxkj.common.entity.system.SysRoleMenu; import com.hxkj.common.entity.system.SystemRoleMenu;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 角色菜单 * 角色菜单
*/ */
@Mapper @Mapper
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> { public interface SystemRoleMenuMapper extends BaseMapper<SystemRoleMenu> {
} }

View File

@ -1,7 +1,134 @@
package com.hxkj.common.utils; package com.hxkj.common.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.common.entity.system.SystemConfig;
import com.hxkj.common.mapper.system.SystemConfigMapper;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/** /**
* 数据库配置操作工具 * 数据库配置操作工具
*/ */
public class ConfigUtil { public class ConfigUtil {
/**
* 根据类型获取配置
*
* @author fzr
* @param type 类型
* @return Map<String, String>
*/
public static Map<String, String> get(String type) {
SystemConfigMapper model = SpringUtil.getBean(SystemConfigMapper.class);
List<SystemConfig> configs = model.selectList(
new QueryWrapper<SystemConfig>()
.select("id", "type", "name", "value")
.eq("type", type));
Map<String, String> map = new LinkedHashMap<>();
for (SystemConfig config : configs) {
map.put(config.getName(), config.getValue());
}
return map;
}
/**
* 根据类型和名称获取配置
*
* @author fzr
* @param type 类型
* @param name 名称
* @return String
*/
public static String get(String type, String name) {
SystemConfigMapper model = SpringUtil.getBean(SystemConfigMapper.class);
SystemConfig config = model.selectOne(
new QueryWrapper<SystemConfig>()
.select("id", "type", "name", "value")
.eq("type", type)
.eq("name", name));
return config.getValue();
}
/**
* 根据类型和名称获取配置
*
* @author fzr
* @param type 类型
* @param name 名称
* @return String
*/
public static String get(String type, String name, String defaults) {
SystemConfigMapper model = SpringUtil.getBean(SystemConfigMapper.class);
SystemConfig config = model.selectOne(
new QueryWrapper<SystemConfig>()
.select("id", "type", "name", "value")
.eq("type", type)
.eq("name", name));
if (config == null) {
return defaults;
}
return config.getValue();
}
/**
* 根据类型和名称获取配置(JSON自定转Map)
*
* @author fzr
* @param type 类型
* @param name 名称
* @return String
*/
public static Map<String, Object> getMap(String type, String name) {
SystemConfigMapper model = SpringUtil.getBean(SystemConfigMapper.class);
SystemConfig config = model.selectOne(
new QueryWrapper<SystemConfig>()
.select("id", "type", "name", "value")
.eq("type", type)
.eq("name", name));
return ToolsUtil.jsonToMap(config.getValue());
}
/**
* 设置配置的值
*
* @author fzr
* @param type 类型
* @param name 名称
* @param val
*/
public static void set(String type, String name, String val) {
SystemConfigMapper model = SpringUtil.getBean(SystemConfigMapper.class);
SystemConfig config = model.selectOne(
new QueryWrapper<SystemConfig>()
.eq("type", type)
.eq("name", name));
if (config != null) {
config.setValue(val);
config.setUpdateTime(System.currentTimeMillis() / 1000);
model.updateById(config);
} else {
SystemConfig systemConfig = new SystemConfig();
systemConfig.setType(type);
systemConfig.setName(name);
systemConfig.setValue(val);
systemConfig.setCreateTime(System.currentTimeMillis() / 1000);
systemConfig.setUpdateTime(System.currentTimeMillis() / 1000);
model.insert(systemConfig);
}
}
} }