Merge branch 'feature/admin-auth-satoken' into future/admin-auth-springsecurity

# Conflicts:
#	pom.xml
This commit is contained in:
xiongfeng
2025-08-27 20:47:08 +08:00
37 changed files with 859 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ import java.util.Map;
/**
* @Author: xiongfeng
* @CreateTime: 2023-11-08 11:48
* @Description: TODO 全局异常捕获类
* @Description: TODO 全局异常捕获类(仅 Controller 层异常)
* @Version: 1.0
*/
@Slf4j
@@ -59,7 +59,7 @@ public class GlobalExceptionHandler extends ResponseEntityExceptionHandler{
* @return
*/
@ExceptionHandler(LoginException.class)
public GenericResponse tokenExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
public GenericResponse tokenExceptionHandler(HttpServletRequest request, final LoginException e, HttpServletResponse response) {
log.error("token exception", e);
LoginException exception = (LoginException) e;
response.setStatus(HttpStatus.FORBIDDEN.value());
@@ -95,6 +95,7 @@ public class GlobalExceptionHandler extends ResponseEntityExceptionHandler{
public ResponseEntity exceptionHandler(jakarta.servlet.http.HttpServletRequest request, final Exception e, jakarta.servlet.http.HttpServletResponse response) {
Map<String, String> errors = new HashMap<>();
errors.put("message", e.getMessage());
log.error("error------{}", e);
return ResponseEntity.status(SystemStatus.ERROR.getCode()).body(errors);
}

View File

@@ -15,22 +15,18 @@ import org.springframework.stereotype.Component;
@Component
public class ApplicationContextUtils implements ApplicationContextAware {
//放置在获取bean的时候提示空指针将其定义为静态变量
private static ApplicationContext context;
private static ApplicationContext applicationContext;
//类初始化完成之后调用setApplicationContext()方法进行操作
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtils.context = applicationContext;
ApplicationContextUtils.applicationContext = applicationContext;
}
public static ApplicationContext geteContext(){
return context;
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
public static Object getBean(String beanName){
//在这一步的时候一定要注意,此时可调用这个方法的时候
//context可能为空会提示空指针异常需要将其定义成静态的这样类加载的时候
//context就已经存在了
return context.getBean(beanName);
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
}

View File

@@ -0,0 +1,23 @@
package cn.xf.basedemo.config;
import cn.dev33.satoken.interceptor.SaInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @Description: sa token拦截器注册类
* @ClassName: SaTokenConfigure
* @Author: xiongfeng
* @Date: 2025/8/24 20:30
* @Version: 1.0
*/
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
// 注册 Sa-Token 拦截器,打开注解式鉴权功能
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器,打开注解式鉴权功能
registry.addInterceptor(new SaInterceptor()).addPathPatterns("/**");
}
}

View File

@@ -1,5 +1,8 @@
package cn.xf.basedemo.controller.business;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.stp.StpUtil;
import cn.xf.basedemo.common.model.LoginUser;
import cn.xf.basedemo.common.model.RetObj;
import cn.xf.basedemo.interceptor.SessionContext;
@@ -34,12 +37,14 @@ public class UserController {
@Operation(summary = "用户信息", description = "用户信息")
@PostMapping("/info")
@SaCheckPermission("user:info") //权限校验
public RetObj info(){
LoginUser loginUser = SessionContext.getInstance().get();
return RetObj.success(loginUser);
}
@Operation(summary = "es同步用户信息", description = "用户信息")
@SaCheckRole("admin") //角色校验
@GetMapping("/syncEs")
public RetObj syncEs(Long userId){
return userService.syncEs(userId);
@@ -51,4 +56,10 @@ public class UserController {
return userService.getEsId(userId);
}
@Operation(summary = "获取用户权限数据", description = "用户信息")
@GetMapping("/getPermission")
public RetObj getPermission(){
return RetObj.success(StpUtil.getPermissionList());
}
}

View File

@@ -1,5 +1,6 @@
package cn.xf.basedemo.interceptor;
import cn.dev33.satoken.interceptor.SaInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

View File

@@ -0,0 +1,36 @@
package cn.xf.basedemo.interceptor;
import cn.dev33.satoken.stp.StpInterface;
import cn.xf.basedemo.common.utils.ApplicationContextUtils;
import cn.xf.basedemo.mappers.SysPermissionMapper;
import cn.xf.basedemo.mappers.SysRoleMapper;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description: 权限加载组件类
* @ClassName: StpInterfaceImpl
* @Author: xiongfeng
* @Date: 2025/8/18 22:51
* @Version: 1.0
*/
@Component
public class StpInterfaceImpl implements StpInterface {
private SysPermissionMapper sysPermissionMapper = ApplicationContextUtils.getBean(SysPermissionMapper.class);
private SysRoleMapper sysRoleMapper = ApplicationContextUtils.getBean(SysRoleMapper.class);
@Override
public List<String> getPermissionList(Object userId, String s) {
//获取登录用户权限数据
Long aLong = Long.valueOf(userId.toString());
List<String> permissionList = sysPermissionMapper.getPermissionListByRoleId(aLong);
return permissionList;
}
@Override
public List<String> getRoleList(Object userId, String s) {
//获取用户角色数据
return sysRoleMapper.getRoleListByUserId((Long) userId);
}
}

View File

@@ -0,0 +1,15 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author xiongfeng
* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysMenu
*/
public interface SysMenuMapper extends BaseMapper<SysMenu> {
}

View File

@@ -0,0 +1,20 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysPermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author xiongfeng
* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysPermission
*/
@Mapper
public interface SysPermissionMapper extends BaseMapper<SysPermission> {
List<String> getPermissionListByRoleId(Long useId);
}

View File

@@ -0,0 +1,21 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author xiongfeng
* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysRole
*/
@Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> {
List<String> getRoleListByUserId(Long userId);
}

View File

@@ -0,0 +1,15 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysRoleMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author xiongfeng
* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysRoleMenu
*/
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
}

View File

@@ -0,0 +1,15 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysRolePermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author xiongfeng
* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysRolePermission
*/
public interface SysRolePermissionMapper extends BaseMapper<SysRolePermission> {
}

View File

@@ -0,0 +1,15 @@
package cn.xf.basedemo.mappers;
import cn.xf.basedemo.model.domain.SysUserRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author xiongfeng
* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Mapper
* @createDate 2025-08-19 21:22:03
* @Entity cn.xf.basedemo.model.domain.SysUserRole
*/
public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
}

View File

@@ -0,0 +1,67 @@
package cn.xf.basedemo.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 系统菜单表 sys_menu
* @TableName sys_menu
*/
@TableName(value ="sys_menu")
@Data
public class SysMenu implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 菜单名称sys_menu.name
*/
private String name;
/**
* 前端路由路径sys_menu.path
*/
private String path;
/**
* 父菜单IDsys_menu.parent_id树结构
*/
private Long parent_id;
/**
* 菜单类型sys_menu.type0=目录,1=菜单,2=按钮
*/
private Integer type;
/**
* 菜单图标sys_menu.icon
*/
private String icon;
/**
* 创建时间sys_menu.create_time
*/
private Date create_time;
/**
* 创建人sys_menu.create_by
*/
private String create_by;
/**
* 更新时间sys_menu.update_time
*/
private Date update_time;
/**
* 更新人sys_menu.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,57 @@
package cn.xf.basedemo.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 系统权限表 sys_permission
* @TableName sys_permission
*/
@TableName(value ="sys_permission")
@Data
public class SysPermission implements Serializable {
/**
* 主键IDsys_permission
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 权限标识sys_permission.code如 user:add、order:delete
*/
private String code;
/**
* 权限名称sys_permission.name
*/
private String name;
/**
* 所属菜单IDsys_permission.menu_id
*/
private Long menu_id;
/**
* 创建时间sys_permission.create_time
*/
private Date create_time;
/**
* 创建人sys_permission.create_by
*/
private String create_by;
/**
* 更新时间sys_permission.update_time
*/
private Date update_time;
/**
* 更新人sys_permission.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,58 @@
package cn.xf.basedemo.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 系统角色表 sys_role
* @TableName sys_role
*/
@TableName(value ="sys_role")
@Data
public class SysRole implements Serializable {
/**
* 主键IDsys_role
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 角色名称sys_role.name
*/
private String name;
/**
* 角色标识sys_role.code如 ADMIN、OPERATOR
*/
private String code;
/**
* 角色状态sys_role.status1=启用0=禁用
*/
private Integer status;
/**
* 创建时间sys_role.create_time
*/
private Date create_time;
/**
* 创建人sys_role.create_by
*/
private String create_by;
/**
* 更新时间sys_role.update_time
*/
private Date update_time;
/**
* 更新人sys_role.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,53 @@
package cn.xf.basedemo.model.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 角色菜单关联表 sys_role_menu
* @TableName sys_role_menu
*/
@TableName(value ="sys_role_menu")
@Data
public class SysRoleMenu implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 角色IDsys_role_menu.role_id
*/
private Long role_id;
/**
* 菜单IDsys_role_menu.menu_id
*/
private Long menu_id;
/**
* 创建时间sys_role_menu.create_time
*/
private Date create_time;
/**
* 创建人sys_role_menu.create_by
*/
private String create_by;
/**
* 更新时间sys_role_menu.update_time
*/
private Date update_time;
/**
* 更新人sys_role_menu.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,53 @@
package cn.xf.basedemo.model.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 角色权限关联表 sys_role_permission
* @TableName sys_role_permission
*/
@TableName(value ="sys_role_permission")
@Data
public class SysRolePermission implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 角色IDsys_role_permission.role_id
*/
private Long role_id;
/**
* 权限IDsys_role_permission.permission_id
*/
private Long permission_id;
/**
* 创建时间sys_role_permission.create_time
*/
private Date create_time;
/**
* 创建人sys_role_permission.create_by
*/
private String create_by;
/**
* 更新时间sys_role_permission.update_time
*/
private Date update_time;
/**
* 更新人sys_role_permission.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,54 @@
package cn.xf.basedemo.model.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 用户角色关联表 sys_user_role
* @TableName sys_user_role
*/
@TableName(value ="sys_user_role")
@Data
public class SysUserRole implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 用户IDsys_user_role.user_id
*/
private Long user_id;
/**
* 角色IDsys_user_role.role_id
*/
private Long role_id;
/**
* 创建时间sys_user_role.create_time
*/
private Date create_time;
/**
* 创建人sys_user_role.create_by
*/
private String create_by;
/**
* 更新时间sys_user_role.update_time
*/
private Date update_time;
/**
* 更新人sys_user_role.update_by
*/
private String update_by;
}

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysMenuService extends IService<SysMenu> {
}

View File

@@ -0,0 +1,14 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysPermission;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysPermissionService extends IService<SysPermission> {
}

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysRoleMenu;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysRoleMenuService extends IService<SysRoleMenu> {
}

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysRolePermission;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysRolePermissionService extends IService<SysRolePermission> {
}

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysRoleService extends IService<SysRole> {
}

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
import cn.xf.basedemo.model.domain.SysUserRole;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author xiongfeng
* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Service
* @createDate 2025-08-19 21:22:03
*/
public interface SysUserRoleService extends IService<SysUserRole> {
}

View File

@@ -0,0 +1,18 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysMenu;
import cn.xf.basedemo.service.SysMenuService;
import cn.xf.basedemo.mappers.SysMenuMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_menu(系统菜单表 sys_menu)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
implements SysMenuService{
}

View File

@@ -0,0 +1,18 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysPermission;
import cn.xf.basedemo.service.SysPermissionService;
import cn.xf.basedemo.mappers.SysPermissionMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_permission(系统权限表 sys_permission)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysPermission>
implements SysPermissionService{
}

View File

@@ -0,0 +1,17 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysRoleMenu;
import cn.xf.basedemo.service.SysRoleMenuService;
import cn.xf.basedemo.mappers.SysRoleMenuMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_role_menu(角色菜单关联表 sys_role_menu)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
}

View File

@@ -0,0 +1,18 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysRolePermission;
import cn.xf.basedemo.service.SysRolePermissionService;
import cn.xf.basedemo.mappers.SysRolePermissionMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_role_permission(角色权限关联表 sys_role_permission)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysRolePermissionServiceImpl extends ServiceImpl<SysRolePermissionMapper, SysRolePermission>
implements SysRolePermissionService{
}

View File

@@ -0,0 +1,18 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysRole;
import cn.xf.basedemo.service.SysRoleService;
import cn.xf.basedemo.mappers.SysRoleMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_role(系统角色表 sys_role)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole>
implements SysRoleService{
}

View File

@@ -0,0 +1,18 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.model.domain.SysUserRole;
import cn.xf.basedemo.service.SysUserRoleService;
import cn.xf.basedemo.mappers.SysUserRoleMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author xiongfeng
* @description 针对表【sys_user_role(用户角色关联表 sys_user_role)】的数据库操作Service实现
* @createDate 2025-08-19 21:22:03
*/
@Service
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole>
implements SysUserRoleService{
}

View File

@@ -1,5 +1,6 @@
package cn.xf.basedemo.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.xf.basedemo.common.model.EsBaseModel;
import cn.xf.basedemo.common.model.LoginInfo;
import cn.xf.basedemo.common.model.LoginUser;
@@ -90,7 +91,8 @@ public class UserServiceImpl implements UserService {
redisTemplate.opsForValue().set("token:" + token, JSONObject.toJSONString(loginUser), 3600, TimeUnit.SECONDS);
redisTemplate.opsForValue().set("user_login_token:" + user.getId(), token, 3600, TimeUnit.SECONDS);
//登录成功 写入sa-token中
StpUtil.login(user.getId());
return RetObj.success(loginUser);
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysMenuMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysMenu">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="path" column="path" jdbcType="VARCHAR"/>
<result property="parent_id" column="parent_id" jdbcType="BIGINT"/>
<result property="type" column="type" jdbcType="TINYINT"/>
<result property="icon" column="icon" jdbcType="VARCHAR"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,name,path,
parent_id,type,icon,
create_time,create_by,update_time,
update_by
</sql>
</mapper>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysPermissionMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysPermission">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="menu_id" column="menu_id" jdbcType="BIGINT"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,code,name,
menu_id,create_time,create_by,
update_time,update_by
</sql>
<select id="getPermissionListByRoleId" resultType="java.lang.String">
select code
from sys_permission p
left join sys_role_permission rp on p.id = rp.permission_id
left join sys_user_role ur on rp.role_id = ur.role_id
where ur.user_id = #{userId}
</select>
</mapper>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysRoleMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysRole">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,name,code,
status,create_time,create_by,
update_time,update_by
</sql>
<select id="getRoleListByUserId" resultType="java.lang.String">
select r.code
from sys_user_role ur
left join sys_role r on ur.role_id = r.id
where ur.user_id = #{userId}
</select>
</mapper>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysRoleMenuMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysRoleMenu">
<id property="role_id" column="role_id" jdbcType="BIGINT"/>
<id property="menu_id" column="menu_id" jdbcType="BIGINT"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
role_id,menu_id,create_time,
create_by,update_time,update_by
</sql>
</mapper>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysRolePermissionMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysRolePermission">
<id property="role_id" column="role_id" jdbcType="BIGINT"/>
<id property="permission_id" column="permission_id" jdbcType="BIGINT"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
role_id,permission_id,create_time,
create_by,update_time,update_by
</sql>
</mapper>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.xf.basedemo.mappers.SysUserRoleMapper">
<resultMap id="BaseResultMap" type="cn.xf.basedemo.model.domain.SysUserRole">
<id property="user_id" column="user_id" jdbcType="BIGINT"/>
<id property="role_id" column="role_id" jdbcType="BIGINT"/>
<result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
<result property="create_by" column="create_by" jdbcType="VARCHAR"/>
<result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
<result property="update_by" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
user_id,role_id,create_time,
create_by,update_time,update_by
</sql>
</mapper>