Skip to content

该项目基于lamp-cloud 的3.x 版本,4.x 版本无需使用此项目

Notifications You must be signed in to change notification settings

zuihou/lamp-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

lamp 快速开发平台

AUR GitHub stars star GitHub forks fork

lamp 项目名字由来

叙事版:

在一个夜黑风高的晚上,小孩吵着要出去玩,于是和程序员老婆一起带小孩出去放风,路上顺便讨论起项目要换个什么名字,在各自想出的名字都被对方一一否决后,大家陷入了沉思。 走着走着,在一盏路灯下,孩砸盯着路灯打破宁静,喊出:灯灯~ 我和媳妇愣了一下,然后对视着一起说:哈哈,这个名字好~

解释版:

灯灯: 是我小孩学说话时会说的第一个词,也是我在想了很多项目名后,小孩一语点破的一个名字,灯灯象征着光明,给困境的我们带来希望,给加班夜归的程序员们指引前方~

灯灯(简称灯, 英文名:lamp),他是一个项目的统称,包含以下几个子项目

lamp 项目组成

注意: 请先下载lamp-util 代码并编译(mvn install) 到本地仓库,然后在编译(mvn install)lamp-cloud或lamp-boot项目, 最后编译(mvn install)lamp-job项目!!!

工具集 (lamp-util 项目必备,其他2个可选)

项目 gitee github 备注
工具集 lamp-util lamp-util 业务无关的工具集,cloud 和 boot 项目都依赖它
代码生成器 lamp-generator lamp-generator 给开发人员使用
定时调度器 lamp-job lamp-job 尚未开发

后端 (下面2个项目功能一致,任选其一即可)

项目 gitee github 备注
微服务版(后端) lamp-cloud lamp-cloud SpringCloud 版
单体版(后端) lamp-boot lamp-boot SpringBoot 版(和 lamp-cloud 功能基本一致)

前端 (下面3个项目功能一致,任选其一即可)

项目 gitee github 备注 演示地址
中后台管理系统 lamp-web lamp-web (全部功能已完成)基于 vue-admin-element http://tangyh.top/lamp-web
中后台管理系统 (强烈推荐!👏👏👏) lamp-web-beautiful lamp-web-beautiful (正在开发...)基于 vue-vben-admin (vue 3 + vite 2) http://tangyh.top
中后台管理系统 lamp-web-beautiful lamp-web-beautiful (正在开发...)基于 vue-admin-beautiful -

lamp-generator 简介

lamp-generator 的前身是 zuihou-generator,在3.0.0版本之后,改名为lamp-generator,它是lamp项目的其中一员。

lamp-generator是基于 mybatis-plus-generator 自定义的代码生成器,专门为 lamp-cloudlamp-cloud 项目量身定做的代码生成器。 自定义的代码规范、可读性差了一些,但还能凑合着用。因为主角是:lamp-cloud

快速上手

使用规则

- 暂时只支持生成MySQL表,Oracle需要微调代码,有需要的可以留言提交上来
- 参考 TestGenerator 类
- 每次执行前需配置参数,含代码生成目录(本地绝对目录),数据库连接,项目名、模块名,表列表等。目前已提供模板。
- 如果表有前缀,务必配置 tablePrefix 属性。
    例如:表名为f_file,则需要进行下列配置,生成的类会自动排除掉f_前缀。
    new CodeGeneratorConfig().setTablePrefix("f_");
- serviceName、childModuleName、childPackageName的区别
    serviceName: 表示`服务名` ,如 zuihou-file 服务,就填 file  
    childModuleName: 表示`模块名` ,如 zuihou-msgs 服务下面分为  zuihou-msgs、zuihou-sms、zuihou-email等, 在生成sms、email等模块时,就需要指定为 sms、email  
    childPackageName的区别: 表示`子包名` ,用于在服务下,进行分包。如 zuihou-authority 项目下有 auth、common、core等子包
- 支持枚举类型改变存储路径。 参考CodeGeneratorConfig.setFiledTypes
- 支持controller、service、dao、xml等各个模块 自定义生成策略: 覆盖、新增、忽略。参考:FileCreateConfig config = new FileCreateConfig(GenerateType.OVERRIDE);

数据库设计原则

- 必须显式指定`主键`
- 任何表至少包含3个字段: bigint id、 datetime createTime、bigint createUpdate (可以自行修改 EntityType)
- 表、字段 必须加注释
- 表名注释支持换行,第一行会被视为表名。 表的介绍请换行填写。
- 字段的第一行视为字段简介,详细介绍和枚举类型请换行
- 所有字段尽量根据业务设置合理的`缺省值`,尽量避免表中出现 NULL值
- 当字段为外键时,字段名为: 关联表_id, 注释需要在字段注释基础上,换行加上 `#关联表表名` 来说明关联的哪张表。(注意英文#号)
- 当字段为枚举时,需按照模板配置:
```
    (注意: 注释内容 需要替换成当前字段的具体注释)
    
    注释模板1: 注释内容 #枚举类名{枚举值英文名:"枚举值英文注释";  ...}
    注释模板2: 注释内容 #枚举类名{枚举值英文名:val,"枚举值英文注释";  ...}
    注释模板3: 注释内容 #枚举类名{枚举值英文名:val,"枚举值英文注释",val2;  ...}
    注释模板4: 注释内容 #{枚举值英文名:"枚举值英文注释";  ...}
    其中枚举类名可以没有,如果没有,则生成的枚举值名为:表对应的实体名 + 当前字段对应的属性名(首字母大写) + Enum 
    枚举值例子:
        文件类型 #FileType{PAN:云盘数据;API:接口数据}
        数据类型 #DataType{DIR:1,目录;IMAGE:2,图片;VIDEO:3,视频;AUDIO:4,音频;DOC:5,文档;OTHER:6,其他}
        数据类型 #{DIR:目录;IMAGE:图片;VIDEO:视频;AUDIO:音频;DOC:文档;OTHER:其他}
```

完整例子:
```
CREATE TABLE `zuihou_file_dev`.`f_file`  (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `data_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'IMAGE' COMMENT '数据类型\n#DataType{DIR:目录;IMAGE:图片;VIDEO:视频;AUDIO:音频;DOC:文档;OTHER:其他}',
  `submitted_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '原始文件名',
  `tree_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT ',' COMMENT '父目录层级关系',
  `grade` int(11) NULL DEFAULT 1 COMMENT '层级等级\n从1开始计算',
  `is_delete` bit(1) NULL DEFAULT b'0' COMMENT '是否删除\n#BooleanStatus{TRUE:1,已删除;FALSE:0,未删除}',
  `folder_id` bigint(20) NULL DEFAULT 0 COMMENT '父文件夹ID',
  `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件访问链接\n需要通过nginx配置路由,才能访问',
  `size` bigint(20) NULL DEFAULT 0 COMMENT '文件大小\n单位字节',
  `folder_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '父文件夹名称',
  `group_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'FastDFS组\n用于FastDFS',
  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'FastDFS远程文件名\n用于FastDFS',
  `relative_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件的相对路径 ',
  `file_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'md5值',
  `context_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件类型\n取上传文件的值',
  `filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '唯一文件名',
  `ext` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件名后缀 \n(没有.)',
  `icon` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件图标\n用于云盘显示',
  `create_month` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年月\n格式:yyyy-MM 用于统计',
  `create_week` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年周\nyyyy-ww 用于统计',
  `create_day` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年月日\n格式: yyyy-MM-dd 用于统计',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
  PRIMARY KEY (`id`) USING BTREE,
  FULLTEXT INDEX `FU_TREE_PATH`(`tree_path`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件表' ROW_FORMAT = Dynamic;
```

如果觉得对您有任何一点帮助,请点右上角 "Star" 支持一下吧,谢谢!

ps: gitee捐献 或者 二维码打赏(本页最下方): 45元及以上 并 备注邮箱,可得开发文档一份(支持后续更新)
打赏或者捐献后直接加群:1039545140 并备注打赏时填写的邮箱,可以持续的获取最新的文档。 

会员版

本项目分为开源版、会员版,github和gitee上能搜索到的为开源版本,遵循Apache协议。 会员版源码在私有gitlab托管,购买后开通账号。

会员版和会员版区别请看:会员版

lamp 会员版项目演示地址

友情链接 & 特别鸣谢

About

该项目基于lamp-cloud 的3.x 版本,4.x 版本无需使用此项目

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published