首先创建项目,在pom文件中导入相关依赖,集成mybatis plus,刷新依赖,
4.0.0 org.springframework.boot spring-boot-starter-parent2.1.3.RELEASE com.qcby.boot jiucai0.0.1-SNAPSHOT jiucai boot项目框架演示 1.8 org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-loggingorg.springframework.boot spring-boot-starter-log4j2org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest mysql mysql-connector-javaruntime com.baomidou mybatis-plus-boot-starter3.4.2 org.projectlombok lomboktrue org.springframework.boot spring-boot-maven-plugin
创建yml文件或者编写properties文件
yml编写
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:/
@Service("sysUserService")
public class SysUserServiceImpl extends ServiceImpl implements SysUserService {
@Resource
private RefUserRoleDao refUserRoleDao;
@Override
public ResultJson listAll(PageWeb pageWeb) {
Page page = new Page<>(pageWeb.getPageNum(), pageWeb.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper<>();
IPage pageInfo = this.page(page, queryWrapper);
return ResultJson.ok(PageWeb.build(pageInfo));
}
@Override
public ResultJson login(SysUser sysUser) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name", sysUser.getUserName());
queryWrapper.eq("password", sysUser.getPassword());
List userList = this.baseMapper.selectList(queryWrapper);
if (userList.size() == 1) {
return ResultJson.ok("登录成功", userList);
}
return ResultJson.error("登陆失败");
}
@Override
public boolean register(SysUser sysUser) {
if (sysUser.getAgainPassword().equals(sysUser.getPassword())) {
return this.save(sysUser);
}
return false;
}
@Override
public boolean setRole(Long userId, List roleIdList) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
this.refUserRoleDao.delete(queryWrapper);
int flag = 0;
for (Long roleId : roleIdList) {
RefUserRole refUserRole = new RefUserRole();
refUserRole.setRoleId(roleId);
refUserRole.setUserId(userId);
flag = this.refUserRoleDao.insert(refUserRole);
}
return flag == 1;
}
@Override
public ResultJson selectByUserId(Long userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
List
SysRoleServiceimpl
package com.qcby.jiucai_rbac.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qcby.jiucai_rbac.common.web.PageWeb;
import com.qcby.jiucai_rbac.common.web.ResultJson;
import com.qcby.jiucai_rbac.entity.RefRoleMenu;
import com.qcby.jiucai_rbac.entity.SysRole;
import com.qcby.jiucai_rbac.mapper.RefRoleMenuDao;
import com.qcby.jiucai_rbac.mapper.SysRoleDao;
import com.qcby.jiucai_rbac.service.SysRoleService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@Service("sysRoleService")
public class SysRoleServiceImpl extends ServiceImpl implements SysRoleService {
@Resource
private RefRoleMenuDao refRoleMenuDao;
@Override
public ResultJson listAll(PageWeb pageWeb) {
Page page = new Page<>(pageWeb.getPageNum(), pageWeb.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper<>();
IPage pageInfo = this.page(page, queryWrapper);
return ResultJson.ok(PageWeb.build(pageInfo));
}
@Override
public boolean setMenu(Long roleId, List menuIdList) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id", roleId);
this.refRoleMenuDao.delete(queryWrapper);
int flag = 0;
for (Long menuId : menuIdList) {
RefRoleMenu refRloeMenu = new RefRoleMenu();
refRloeMenu.setRoleId(roleId);
refRloeMenu.setMenuId(menuId);
flag = this.refRoleMenuDao.insert(refRloeMenu);
}
return flag == 1;
}
@Override
public ResultJson selectByRoleId(Long roleId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id", roleId);
List
SysMenuServiceimpl
package com.qcby.jiucai_rbac.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qcby.jiucai_rbac.common.web.PageWeb;
import com.qcby.jiucai_rbac.common.web.ResultJson;
import com.qcby.jiucai_rbac.entity.SysMenu;
import com.qcby.jiucai_rbac.mapper.SysMenuDao;
import com.qcby.jiucai_rbac.service.SysMenuService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("sysMenuService")
public class SysMenuServiceImpl extends ServiceImpl implements SysMenuService {
@Override
public ResultJson listAll(PageWeb pageWeb) {
Page page = new Page<>(pageWeb.getPageNum(), pageWeb.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper<>();
IPage pageInfo = this.page(page, queryWrapper);
return ResultJson.ok(PageWeb.build(pageInfo));
}
@Override
public ResultJson menuTree() {
List menuList=this.list();
QueryWrapper queryWrapper=new QueryWrapper<>();
queryWrapper.eq("menu_parent_id",0);
List firstLevelMenuList=this.baseMapper.selectList(queryWrapper);
for (SysMenu sysMenu : firstLevelMenuList) {
getChildList(sysMenu,menuList);
}
return ResultJson.ok(firstLevelMenuList);
}
private SysMenu getChildList(SysMenu sysMenu, List menuList) {
for (SysMenu menu : menuList) {
if (menu.getMenuParentId().equals(sysMenu.getId())) {
sysMenu.getChildList().add(getChildList(menu, menuList));
}
}
return sysMenu;
}
}
利用递归实现菜单树
public ResultJson menuTree() {
List menuList=this.list();
QueryWrapper queryWrapper=new QueryWrapper<>();
queryWrapper.eq("menu_parent_id",0);
List firstLevelMenuList=this.baseMapper.selectList(queryWrapper);
for (SysMenu sysMenu : firstLevelMenuList) {
getChildList(sysMenu,menuList);
}
return ResultJson.ok(firstLevelMenuList);
}
private SysMenu getChildList(SysMenu sysMenu, List menuList) {
for (SysMenu menu : menuList) {
if (menu.getMenuParentId().equals(sysMenu.getId())) {
sysMenu.getChildList().add(getChildList(menu, menuList));
}
}
return sysMenu;
}
}
忘记讲了项目中用到的的统一返回结构封装---ResultJson的编写,以及项目中的权限验证和登录拦截器的介绍,下期文章讲解



