现在接着来创建用户角色表和用户角色关联表
CREATETABLElibrary.`sys_role`(`id`bigintNOTNULLAUTO_INCREMENTcomment'角色ID',`role_name`varchar(50)comment'角色名',`role`varchar(50)comment'角色',PRIMARYKEY(`id`));CREATETABLElibrary.`sys_user_role`(`user_id`bigintdefaultnullcomment'用户id',`role_id`bigintdefaultnullcomment'角色id');在角色表中插入三个角色:
insertintolibrary.sys_rolevalues('1','普通用户','ROLE_USER');insertintolibrary.sys_rolevalues('2','普通管理员','ROLE_ADMIN');insertintolibrary.sys_rolevalues('3','超级管理员','ROLE_SUPERADMIN');二、正式工作
1.接口分别给到不同的用户角色
controller层
UserController:这里给用户角色分配了五个接口
/***@authoryeyuting*@create2021/3/2*/@RestController@RequestMapping("sys/admin")publicclassAdminController{@AutowiredUserServiceuserService;//管理员登陆@RequestMapping("/login")publicResultLogin(@RequestBodySysUsersysUser){Resultresult=Results.successWithData(userService.Login(sysUser),BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc());returnresult;}//管理员权限查看借阅记录@GetMapping("/selectAllBorrowingRecords")publicResultselectAllBorrowingRecords(){Resultresult=Results.successWithData(userService.selectAllBorrowingRecords());returnresult;}}SuperAdminController:这里超级管理员获得三个接口访问权限
/***@authoryeyuting*@create2021/3/2*/@RestController@RequestMapping("sys/superAdmin")publicclassSuperAdminController{@AutowiredUserServiceuserService;//用户登陆@RequestMapping("/login")publicResultLogin(@RequestBodySysUsersysUser){Resultresult=Results.successWithData(userService.Login(sysUser),BaseEnums.SUCCESS.code(),BaseEnums.SUCCESS.desc());returnresult;}//超级管理员权限新增一本书本@PostMapping("/insertOneBook")publicResultinsertOneBook(@RequestBodyBookbook){Resultresult=Results.successWithData(userService.insertOneBook(book));returnresult;}//超级管理员新增若干本书本@PostMapping("insertManyBooks")publicResultinsertManyBooks(@RequestBodyList
userServiceImpl实现UserDetailsService接口中方法loadUserByUsername方法:
@OverridepublicUserDetailsloadUserByUsername(Stringusername)throwsUsernameNotFoundException{SysUseruser=userMapper.selectUserAndRoleByUserName(username);if(user.equals(null)){thrownewUsernameNotFoundException("用户不存在");}List