Charles7c
9def265af6
docs: 完善代码生成相关接口文档信息
2023-08-12 23:33:58 +08:00
Charles7c
72399d9226
feat: 新增生成代码接口(后端代码)
2023-08-12 17:52:39 +08:00
Charles7c
76c65463c2
refactor: 移除所有的 @Accessors(chain = true),并全局配置禁止使用
2023-08-11 23:59:44 +08:00
Charles7c
2d0e1f42d4
refactor: 优化代码生成配置相关表名、 API 地址及相关描述
...
1、列映射表重命名为字段配置表
2023-08-10 23:39:06 +08:00
Charles7c
a265a84f80
refactor: 重构查询列映射信息列表接口,支持对已保存的列映射配置同步最新表结构
2023-08-09 23:19:47 +08:00
Charles7c
0fae13e779
feat: 新增保存代码生成配置信息接口
2023-08-08 23:59:57 +08:00
Charles7c
abae964970
feat: 新增查询生成配置信息接口
2023-08-07 23:34:15 +08:00
Charles7c
f4c6d83ff5
feat: 新增查询列映射信息列表接口
...
提取 QueryTypeEnum 枚举
2023-08-06 23:32:01 +08:00
Charles7c
bb6f47cfd2
feat: 新增系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等)
2023-08-05 00:08:41 +08:00
Charles7c
d12b0c21ab
Merge branch '1.0.x' into dev
...
# Conflicts:
# continew-admin-ui/components.d.ts
# continew-admin-ui/src/components/footer/index.vue
2023-06-28 22:55:08 +08:00
Charles7c
78a5d5ec7a
refactor: 优化分组校验
2023-05-07 19:51:14 +08:00
Charles7c
9376d6fd5f
style: 优化启动程序打印日志
2023-04-20 22:59:30 +08:00
Charles7c
b1c0ac1998
Merge branch '1.0.x' into dev
2023-04-13 22:32:11 +08:00
Charles7c
165effedb9
chore: 优化生产环境接口文档配置
2023-04-13 21:03:17 +08:00
Charles7c
f3fabea7dd
chore: 优化数据库表结构中部分类型长度
2023-04-13 20:51:49 +08:00
Charles7c
ae8d294705
refactor: 优化 springdoc-openapi 对象型参数处理
...
1.使用 default-flat-param-object 全局设置对象型参数展示形式。此设置是在 springdoc-openapi v1.6.11 版本开始添加的新特性(详情请参阅:https://github.com/springdoc/springdoc-openapi/pull/1805),在此之前,只能在所有需要处理的对象型参数类上使用 @ParameterObject,工作量较大。
2.作者在使用上方这个配置时还遇到了一个 Bug,那就是只要在对象型参数前使用了注解,例如:@Validated PageQuery pageQuery,这个配置就不会生效了。此问题已在 GitHub 提交了相应 issue(详情请参阅:https://github.com/springdoc/springdoc-openapi/issues/2181),并且 springdoc-openapi 社区某个小伙伴儿已在当前最新发布的 v2.1.0 和 v1.7.0 中修复。
注意:由于当前使用的 Knife4j 版本其内部引入的 springdoc-openapi 相关依赖非最新版本,所以为了解决配置不生效问题,暂时将部分对象型参数移除了 @Validated 注解(除了 PageQuery,其他类当前也未实际添加校验,所以直接移除了)。当然如果不想移除的话,也可以从依赖上功夫,即移除 Knife4j 内引入的 springdoc-openapi 相关依赖,然后自行添加 springdoc-openapi 相关依赖并指定最新版本即可。
2023-04-09 01:13:23 +08:00
Charles7c
6bb15d782e
Merge branch '1.0.x' into dev
...
# Conflicts:
# README.md
2023-04-03 21:34:42 +08:00
Charles7c
18c54a74fc
fix: 完善事务注解
2023-04-03 21:31:29 +08:00
Charles7c
e964c4cc4b
Merge branch '1.0.x' into dev
2023-03-31 21:53:09 +08:00
Charles7c
5968f402ed
fix: 修复邮箱健康检查报错问题并优化部分配置写法
...
关于邮箱健康检查的问题,作者一直忽略了这部分,倒不是诚心如此,而是作者没遇到过这个检查报错。原因是作者虽然没在本地单独调整配置文件,但作者在 IDEA 中给启动程序配置了 Program arguments:--spring.mail.username=xxx --spring.mail.password=xxx,所以实际配置也没问题,但各位小伙伴拉下代码后没注意到邮箱配置的话,那可就没那么友好了。所以作为一个非核心服务,干脆关闭邮箱的健康检查,如果哪个小伙伴真的有需要自行再打开就可以。
2023-03-31 21:50:41 +08:00
Charles7c
9f25925d46
fix: 调整 BaseController API 方法的访问权限修饰符
2023-03-31 21:17:55 +08:00
Charles7c
9217f5079f
修复:修正版本号
2023-03-30 21:08:00 +08:00
Charles7c
114333361c
Merge branch '1.0.x' into dev
...
# Conflicts:
# README.md
2023-03-30 20:31:53 +08:00
Charles7c
fe9201427e
修复:修正版本号
2023-03-30 20:29:05 +08:00
Charles7c
3b7021e88c
Merge branch '1.0.x' into dev
2023-03-29 23:48:44 +08:00
Charles7c
8b955a0b1b
修复:补充校验
2023-03-29 23:47:48 +08:00
Charles7c
0f49d7b810
Merge branch '1.0.x' into dev
2023-03-27 21:37:16 +08:00
Charles7c
d4aedaabc8
优化:使用变量优化配置
2023-03-27 21:36:31 +08:00
Charles7c
51a82d8f4e
升级:升级后端依赖
...
1.Spring Boot 2.7.8 => 2.7.10
2.Redisson 3.19.0 => 2.20.0
3.Easy Excel 3.2.0 => 3.2.1
4.Knife4j 4.0.0 => 4.1.0(此版本已内置了 springdoc-openapi-ui 依赖)
5.Hutool 5.8.11 => 5.8.16
2023-03-27 21:22:14 +08:00
Charles7c
405d40e19d
release: v1.0.0
2023-03-26 21:10:30 +08:00
Charles7c
bc54acd60b
重构:重构获取登录用户信息的代码逻辑
...
1.用户基本信息调整为实时获取
2.登录用户不再保存基本信息,降低维护成本
3.移除冗余的维护登录用户基本信息的代码
2023-03-26 10:58:23 +08:00
Charles7c
267ad9be13
优化:优化修改角色的代码逻辑
...
1.变更角色编码、功能权限或数据权限后,关联在线用户会自动下线
2.优化角色和菜单关联、角色和部门关联、用户和角色关联的业务代码(增加返回结果)
3.重构在线用户功能,抽取在线用户业务实现
2023-03-26 00:14:05 +08:00
Charles7c
c5b748fe52
完善:发版前配置梳理
2023-03-24 00:40:49 +08:00
Charles7c
069104c598
优化:优化部分常量命名及使用
2023-03-23 21:56:37 +08:00
Charles7c
8591a24730
优化:优化跨域配置,可支持配置允许跨域的具体域名或 *
2023-03-23 19:54:15 +08:00
Charles7c
2600fe22a3
优化:移除 devtools 依赖
2023-03-21 20:22:29 +08:00
Charles7c
a09711c04e
完善:完善菜单相关代码逻辑,优化部分细节
2023-03-20 21:56:20 +08:00
Charles7c
6d3ba478e9
优化:优化校验工具类的使用及部分模板文本写法
...
1.优化校验工具类,支持传入 {} 模板文本
2.校验工具类增加 throwIf 重载方法,适合于 boolean 类型参数的情况
3.优化一些模板文本的写法
4.优化一些其他细节
2023-03-20 20:44:52 +08:00
Charles7c
139cb337d7
优化:用户新增类型字段,用于标识用户是系统内置或自定义
...
1.系统内置用户不允许禁用、删除、变更所属角色
2.删除用户时,自动删除用户和角色关联
2023-03-19 23:39:32 +08:00
Charles7c
ff24f3ba78
优化:角色新增类型字段,用于标识角色是系统内置或自定义
...
1.系统内置角色不允许禁用、删除、修改角色编码和角色数据权限
2.删除角色时,自动删除角色和菜单关联、自动删除角色和部门关联
2023-03-19 22:58:51 +08:00
Charles7c
b345e4450d
优化:部门新增类型字段,用于标识部门是系统内置或自定义
...
1.系统内置部门不允许禁用、删除、修改上级部门
2.抽取 getAncestors 方法,用于复用获取祖级列表
3.删除部门时,自动删除角色和部门关联
2023-03-19 22:10:37 +08:00
Charles7c
9bbff7f22c
优化:优化日志引擎记录登录日志
2023-03-13 23:01:12 +08:00
Charles7c
25e11ad9bc
优化:优化后端公共 CRUD 组件-修改接口,将 id 从请求体提取到路径变量,更符合 RESTful 风格
2023-03-11 00:26:18 +08:00
Charles7c
0d3f1ae633
优化:优化表结构语法
2023-03-11 00:22:03 +08:00
Charles7c
d8ceda4654
新增:新增获取路由信息 API(默认前端动态路由处于关闭状态,可通过[页面配置]>[菜单来源于后台]开启)
...
1.在页面导航栏中通过[页面配置]>[菜单来源于后台]临时启用,刷新后配置失效
2.在前端项目 src/config/setting.json 中,可通过 menuFromServer 配置永久启用
2023-03-09 00:06:02 +08:00
Charles7c
fb0effed9a
新增:新增角色数据权限功能(基于 MyBatis Plus DataPermissionInterceptor 插件实现)
...
1.基于 MyBatis Plus DataPermissionInterceptor 插件实现的数据权限功能
2.通过在指定 Mapper 接口层方法添加 @DataPermission 注解实现数据权限
2023-03-07 23:55:24 +08:00
Charles7c
405c821e2a
重构: 🔥 基于阿里巴巴 Java 开发手册(黄山版)重构各表基本结构(简化列名)
...
1.MySQL数据库>建表规约>第9条:
【强制】表必备三字段:id,create_time,update_time。
说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time,update_time 的类型均为datetime 类型,如果要记录时区信息,那么类型设置为 timestamp。
个人理解:简化列名的目的是为了后续能抽取更多公共能力
2.MySQL数据库>SQL语句>第10条:
【推荐】SQL 语句中表的别名前加 as,并且以 t1、t2、t3、...的顺序依次命名。
说明:
1)别名可以是表的简称,或者是依照表在 SQL 语句中出现的顺序,以 t1、t2、t3 的方式命名。
2)别名前加 as 使别名更容易识别。
正例:select t1.name from first_table as t1 , second_table as t2 where t1.id = t2.id;
2023-03-06 00:09:11 +08:00
Charles7c
926aa06bb5
优化:优化项目启动类命名
2023-03-05 12:59:59 +08:00
Charles7c
39f267699a
优化:优化成员变量相关注释及部分操作写法
...
成员变量有时候会被称为 Field 有时候会被称为 Property,它们的区别如下:
1.Field:Field 是 Java 反射中描述类的属性信息的类。成员变量(Instance Variable)就是定义的字段(Field),例如 private String name;。Field 可以获取当前对象的成员变量的类型,对成员变量重新设值等。使用 Field 可以直接操作类的属性,不需要通过 getter 和 setter 方法,但是需要了解反射机制。
2.Property:Property 是成员变量的 getter 和 setter 方法。例如,public String getName() { return name; } 和 public void setName(String name) { this.name = name; } 分别是获取和设置 MyField 类中的实例变量 name 的 getter 和 setter 方法。使用 Property 可以在类的外部访问和修改类的属性,但是需要注意访问权限和数据类型的正确性。
综上所述,Field 和 Property 都可以用来表示 Java 类中的成员变量,选择哪种方式取决于具体的应用场景和需求。如果需要直接操作类的属性,可以使用 Field;如果需要在类的外部访问和修改类的属性,可以使用 Property。
个人理解:从 MyBatis 的映射角度来说,column 表示数据库表列/字段,property 表示 Java 对象属性/字段,所以此前在涉及到 MyBatis 操作时,尽可能多的用了 Property 而不是 Field。但除了 MyBatis 之外还有很多地方也需要用到成员变量,与其纠结 Field 还是 Property,那就用 Field,简单粗暴一点。
2023-03-05 12:59:10 +08:00
Charles7c
44fa7266b6
优化:基于阿里巴巴 Java 开发手册(黄山版)优化日志配置
...
1.异常日志>日志规约>第2条:
【强制】日志文件至少保存 15 天,因为有些异常具备以“周”为频次发生的特点。对于当天日志,以“应用名.log”来保存,保存在/{统一目录}/{应用名}/logs/目录下,过往日志格式为:{logname}.log.{保存日期},日期格式:yyyy-MM-dd
正例:以 mppserver 应用为例,日志保存/home/admin/mppserver/logs/mppserver.log,历史日志名称为 mppserver.log.2021-11-28
2.异常日志>日志规约>第3条:
【强制】根据国家法律,网络运行状态、网络安全事件、个人敏感信息操作等相关记录,留存的日志不少于六个月,并且进行网络多机备份。
3.异常日志>日志规约>第9条:
【强制】异常信息应该包括两类信息:案发现场信息和异常堆栈信息。如果不处理,那么通过关键字throws 往上抛出。
正例:logger.error("inputParams: {} and errorMessage: {}", 各类参数或者对象 toString(), e.getMessage(), e);
4.异常日志>日志规约>第12条:
【推荐】可以使用 warn 日志级别来记录用户输入参数错误的情况,避免用户投诉时,无所适从。如非必要,请不要在此场景打出 error 级别,避免频繁报警。
说明:注意日志输出的级别,error 级别只记录系统逻辑出错、异常或者重要的错误信息。
2023-03-05 00:15:01 +08:00