【权限管理平台】项目开发Day—01
🏡 博客首页:派 大 星
⛳️ 欢迎关注 🐳 点赞 🎒 收藏 ✏️ 留言
🎢 本文由派大星原创编撰
🚧 系列专栏:项目从0搭建
🎈 本系列项目从设计到实现源码全部开源免费学习使用,一起追向理想,欢迎各位大佬监督打卡开发!
🎄 项目开发背景及其介绍
💐 项目开发背景:
在此之前开发项目时,也是使用的现有框架如:JeecgBoot、若依 。在开发项目时,基本上都是要求短时间内去交付一个项目,如果是自己团队从0
开始搭建项目的话,项目周期相对来说会很长,很不划算,如果项目很大,在前期的项目搭建,一些框架的配置也是相当繁琐的,基于框架进行二次开发的话,可以明显缩短开发周期,大大减少一个团队的人员数量,对于团队来说:少而精
才是最重要的!如果每次都换不同的框架使用的话,如果不同框架的技术选型不同,则同时又会徒增较长的学习时间,如果是学习时期可以增加自己的项目逻辑经验,又可以学到这些框架里的技术点,优势远远大于劣势 ✅。如果是接手商业项目,则劣势远远大于优势❌。
由于懒😋,同时又想通过开发项目总结前面学习的知识 ,所以就决定自己亲手搭建一个权限管理的平台,再使用时也不用去研究某个框架是否发布了新的版本,是不是优化了某些旧版本出现的问题。自从我做了这个决定,妈妈再也不用担心我因为研究新的框架而掉头发了✌️。
🍀 项目介绍:
项目名称:【 派大星 】又名【 Patrick-star 】,是基于SpringBoot—Shiro
搭建的一个权限管理平台。为了把自己的基础打扎实,这里就不使用Mybatis-Plus(MP)
❌ ,而是原始的Mybatis
全部功能由自己手写SQL实现操作,加深自己的SQL基础。MP极其好用
🌴 开发步骤:
- 🍎 项目搭建
- 🍏 数据库设计
- 🍊 权限数据设计
- 🍋 接口设计
- 🍇 数据添加
- 🍑 实际编码
- 🍍 单元测试
- 🌽 接口测试
🌵 初步功能设计:
- 🍔 用户登录登出
- 🍟(添加|冻结|删除|修改)用户信息
- 🍣(添加|冻结|删除|修改)角色信息
- 🍛(添加|冻结|删除|修改)权限信息
- 🍞(添加|删除|冻结|修改)部门信心
- 🍩 对日志的管理
- 🍰 暂时设计如上功能,后续会继续添加
🌳 技术选型:
- 🚴 SpringBoot
- 🏇 Mybatis 编写对接数据库的SQL语句
- 🏂 MySQL 数据库驱动
- 🏊 Lombok
- 🏄 Swagger2 文档
- 🎿 Shiro 安全框架实现用户的鉴权
- 🎯 Redis NoSQL缓存
- 🎸 pageHelper 分页插件
- 🎷 FastJson
- 🎺 Jwt(Token)令牌
🎡 数据库设计
用户表 (部分属性)
CREATE TABLE `sys_user` (
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户id',
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '账户名称',
`salt` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '加密盐值',
`password` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户密码密文',
`phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码',
`dept_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门id',
`real_name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '真实名称',
`nick_name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '昵称',
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱(唯一)',
`status` tinyint(4) DEFAULT '1' COMMENT '账户状态(1.正常 2.锁定 )',
PRIMARY KEY (`id`) USING BTREE
);
角色表(部分属性)
CREATE TABLE `sys_role` (
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色名称',
`description` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`status` tinyint(4) DEFAULT '1' COMMENT '状态(1:正常0:弃用)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
);
权限表(部分属性)
CREATE TABLE `sys_permission` (
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',
`code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单权限编码',
`name` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单权限名称',
`perms` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '授权(如:sys:user:add)',
PRIMARY KEY (`id`) USING BTREE
);
用户角色表
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',
`user_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户id',
`role_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ;
角色权限表
CREATE TABLE `sys_role_permission` (
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',
`role_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色id',
`permission_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单权限id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ;
数据库全部表以及表中属性,将在Gitee
开源
IDEA中创建项目的过程相比就不需要演示了!有需要的请移步链接: 派大星的Gitee仓库
今天的工作量就进行到这里!希望大佬们可以监督派大星一步步从0搭建该平台!