项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Knife4j等构建后端,基于Vue 3、Element-Plus 、TypeScript等构建前端的分离单体权限管理系统。
项目地址:
后端:https://gitee.com/harry-tech/harry
前端:https://gitee.com/harry-tech/harry-vue.git
后端
下载harry,导入idea
harry3_0106_all.sql
这个文件是最新的全量脚本。前端
下载harry-vue
# 克隆代码
git clone https://gitee.com/harry-tech/harry-vue.git
# 进入项目目录
cd harry-vue
# 安装 pnpm
npm install pnpm -g
# 设置镜像源(可忽略)
pnpm config set registry https://registry.npmmirror.com
# 安装依赖
pnpm install
# 启动运行
pnpm run dev
创建一个demo表
CREATETABLE`demo` (
`id`bigintNOTNULL AUTO_INCREMENT COMMENT'书籍ID',
`title`varchar(255) NOTNULLCOMMENT'标题',
`author`varchar(255) DEFAULTNULLCOMMENT'作者',
`isbn`varchar(13) DEFAULTNULLCOMMENT'ISBN',
`description`textCOMMENT'简介',
`available`tinyint(1) DEFAULT'1'COMMENT'是否可借',
`create_time` datetime DEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间',
`create_by`varchar(64) DEFAULTNULLCOMMENT'创建人',
`modify_time` datetime DEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT'修改时间',
`modify_by`varchar(64) DEFAULTNULLCOMMENT'修改人',
`valid`intDEFAULT'1'COMMENT'有效状态,0:无效 1:有效',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5DEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='书籍表';
id
, create_time
,create_by
,modify_time
, modify_by
,valid
建议每张表中都有这几个公共字段
配合后端BaseEntity
使用,方便后续对创建人、修改人使用插件自动导入
package cn.harry.common.base;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
* 抽象实体
*
* @author harry
* @公众号 Harry技术
*/
@Getter
@Setter
publicclassBaseEntityimplementsSerializable{
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 创建时间
*/
@Schema(description = "创建时间")
@JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String modifyBy;
/**
* 修改时间
*/
@Schema(description = "修改时间")
@JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date modifyTime;
}
运行前端,点击代码生成菜单,生成代码
image-20250106141813871
包名:建议都放在
cn.harry.modular
下,方便模块化维护项目
这里可以配置页面上列表显示/表单显示/以及查询方式等格式
微信截图_20250106134546
这里可以看到前后端代码生成的情况,如需调整可以返回上一步进行调整,然后下载代码,这里会生成一个压缩包,将压缩包中的代码复制到项目相应位置,根据项目情况配置菜单即可。
image-20250106143826952
重新启动后页面展示
开发过程中不能完全依赖代码生成器,这里页面上需要稍微手动调整一下,如:新增的时候会存在ID,创建时间等字段,这里需要手动删除代码 后端生成的mapper xml 路径 demo.mapper,可以调整为 mapper.demo ,后续会继续完善代码生成器,争取减少开发过程中的手动修改