Charles7c
3440aa4faa
feat: 完善仪表盘总计区块内容
2023-09-09 00:20:50 +08:00
Charles7c
a91ddeefc3
Merge branch '1.1.x' into dev
2023-09-08 21:18:32 +08:00
Charles7c
d5138e1e43
fix: 修复初始数据缺失字段列表的问题
2023-09-08 20:37:20 +08:00
Charles7c
ac43833721
fix: 修复系统日志表索引缺失导致查询耗时较长的问题
2023-09-08 20:03:11 +08:00
Charles7c
9b60ce0bd9
Merge branch '1.1.x' into dev
2023-09-08 00:13:51 +08:00
Charles7c
11ea072d60
fix: 修复部分菜单数据 component 信息配置错误
...
在尝试完全动态路由的过程中发现此问题
2023-09-08 00:11:56 +08:00
Charles7c
13d2afff37
Merge branch '1.1.x' into dev
2023-09-07 21:10:50 +08:00
Charles7c
63228598d9
chore: 优化后端程序启动成功输出内容
2023-09-07 21:08:26 +08:00
Charles7c
55448364a3
refactor: 配置子级菜单图标
2023-09-07 21:00:00 +08:00
Charles7c
e679abfccc
ci: 👷 调整项目打包结构,分离依赖、配置文件
...
1.调整 Spring Boot 配置文件到 config 目录
2.移除 Maven Profiles 配置
3.调整项目打包结构,分离依赖、配置文件。如无依赖调整,部署时仅需拷贝程序包,且更方便进行配置修改
4.调整后的项目打包结构,更贴合部署安装程序结构,例如:Tomcat 安装包、Maven 安装包
5.建议在 bin 目录上一级执行程序,以使日志文件能正确生成在 logs 目录下,参考 Dockerfile
2023-09-07 00:41:18 +08:00
Charles7c
8b024b3ee3
release: v1.1.1
2023-09-06 20:56:05 +08:00
Charles7c
609c49bced
Merge branch '1.1.x' into dev
2023-09-05 23:44:08 +08:00
Charles7c
3fc7adb1e2
fix: 🐛 修复刷新页面后,选中菜单无法保持展开状态的问题
...
1.父级菜单也必须存在 name 属性,父级菜单 name 属性,在很早之前曾考虑过移除,后来发现会引起
Bug,于是没有改动。但前段时间调整动态路由时没有想起该情况,一时疏忽移除了,所幸发现问题不晚,现在及时恢复回来
2.优化实时监控示例的相关变量命名
2023-09-05 23:27:07 +08:00
Charles7c
be394f3de4
style: 优化登录用户信息角色相关信息命名
...
1.roles => roleCodes
2.roleSet => roles
2023-09-02 00:12:45 +08:00
Charles7c
5049e1e312
chore: 升级后端依赖
...
1.Spring Boot 2.7.10 => 2.7.15
2.Sa-Token 1.34.0 => 1.35.0.RC
3.MyBatis Plus 3.5.3.1 => 3.5.3.2
4.Easy Excel 3.2.1 => 3.3.2
5.Hutool 5.8.16 => 5.8.20
6.Knife4j 4.1.0 => 4.3.0
7.Redisson 3.20.0 => 3.20.1
8.ip2region 2.7.6 => 2.7.15
9.spotless 2.28.0 => 2.30.0
2023-09-01 22:55:10 +08:00
Charles7c
520cdad61e
chore: 更新版本号
2023-09-01 21:29:52 +08:00
Charles7c
8fac2680f9
release: v1.1.0
2023-09-01 00:45:03 +08:00
Charles7c
4639d13ba6
perf: 对获取路由信息接口增加缓存处理
...
1.优化 Spring Cache 配置
2.暂时移除 Jackson 针对数值类型:Long、BigInteger、BigDecimal 的 toString 处理(TreeUtil 疑似在字符串类型 parentId 时会出现转换异常)
2023-08-31 22:05:35 +08:00
Charles7c
9baf341013
refactor: 适配及启用 Arco Design Pro Vue 动态路由
...
Resolves #1
2023-08-30 21:19:13 +08:00
Charles7c
88d6118693
fix: 完善部分数据库表的唯一索引
...
1.sys_menu 增加 uk_title_parent_id 唯一索引
2.sys_dept 增加 uk_name_parent_id 唯一索引
3.sys_role 增加 uk_name、uk_code 唯一索引
4.sys_user 增加 uk_phone 唯一索引
2023-08-26 20:33:18 +08:00
Charles7c
df77e574cc
refactor: 💥 更新信息调整为仅在更新数据时自动填充
2023-08-24 22:14:06 +08:00
Charles7c
58e838d5f9
docs: 完善接口文档信息
2023-08-23 21:44:12 +08:00
Charles7c
315c059713
feat: 完善仪表盘公告区块内容
2023-08-23 00:12:35 +08:00
Charles7c
46e125d8c9
feat: 新增系统管理/公告管理(列表、查看详情、新增、修改、删除、导出)
2023-08-23 00:00:41 +08:00
Charles7c
54ea41048a
chore: 使用属性变量消除配置文件中分散的 ContiNew Admin 品牌元素
...
1.项目配置属性前缀由 continew-admin 改为 project(暂时未发现属性前缀 project 冲突)
2.配置文件中涉及到项目元素信息使用的,统一通过变量引用项目配置属性(如此改动之后,仅需要修改项目配置即可快速调整大量项目配置信息)
2023-08-20 10:23:12 +08:00
Charles7c
cd3ac8a120
refactor: 优化代码生成 POJO 逻辑及部分 freemarker 模板变量命名
2023-08-19 22:34:56 +08:00
Bull-BCLS
72df45e9b3
chore: 拆分 Swagger 接口文档分组
2023-08-19 22:02:54 +08:00
Charles7c
94f88bad22
fix: 修复访问 doc.html 接口文档,控制台报 No mapping for GET /favicon.ico 警告的问题
2023-08-15 23:02:11 +08:00
Charles7c
b23b00d02a
perf: 集成 Spring Cache,优化查询用户昵称性能
2023-08-15 22:58:44 +08:00
Charles7c
a61196cd62
refactor: 将验证码唯一标识格式从无符号 UUID 调整为带符号 UUID
2023-08-15 00:26:05 +08:00
Charles7c
190385ed36
docs: 完善公共模块相关接口文档信息
2023-08-15 00:23:58 +08:00
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
3738fa4872
Merge branch 'dev' into 2.0.x
...
# Conflicts:
# continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/SortQuery.java
# continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
# continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
# continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DeptQuery.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MenuQuery.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/RoleQuery.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
2023-04-13 22:36:57 +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
0f2f35d608
Merge branch 'dev' into 2.0.x
...
# Conflicts:
# README.md
2023-04-03 21:37:38 +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
5a5bd1681e
style: 适配 Java 11 新 API
...
1.对 Optional 的 isPresent() 取反用法 => isEmpty()
2.集合 toArray(new String[0]) 用法 => toArray(String[]::new)
2023-03-31 22:46:14 +08:00
Charles7c
74e61a0111
style: 优化 Redis 配置写法
2023-03-31 22:33:03 +08:00
Charles7c
7dda38d2b8
Merge branch 'dev' into 2.0.x
...
# Conflicts:
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/UserRequest.java
# continew-admin-webapi/src/main/resources/application.yml
2023-03-31 22:22:50 +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
40e11a7a25
fix: 修复部分配置错误
2023-03-30 23:40:30 +08:00
Charles7c
0aafcc015c
Merge branch 'pr_2' into 2.0.x
...
# Conflicts:
# continew-admin-common/pom.xml
# continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java
# continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/DeptRequest.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/MenuRequest.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/RoleRequest.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/UpdateBasicInfoRequest.java
# continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/UserRequest.java
# pom.xml
2023-03-30 22:59:43 +08:00
Charles7c
65401d0219
chore: 1.1.0-SNAPSHOT => 2.0.0-SNAPSHOT
2023-03-30 22:52:04 +08:00
dlj
dea160a7b2
chore: Spring Boot 2.7.8 => 3.0.3
...
1.Spring Boot 2.7.8 => 3.0.3
2.Knife4j 适配 Spring Boot 3.x
3.ServletUtil => JakartaServletUtil
4.javax.* => jakarta.*
2023-03-30 22:28:02 +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
Charles7c
47fa1422bb
优化:基于阿里巴巴 Java 开发手册(黄山版)优化部分变量和方法命名
...
1.编程规约>命名风格>第14条:
【推荐】在常量与变量命名时,表示类型的名词放在词尾,以提升辨识度。
正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
反例:startedAt / QueueOfWork / listName / COUNT_TERMINATED_THREAD
2.编程规约>命名风格>第19条:
【参考】各层命名规约:
A)Service / DAO 层方法命名规约:
1)获取单个对象的方法用 get 做前缀。
2)获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects
3)获取统计值的方法用 count 做前缀。
4)插入的方法用 save / insert 做前缀。
5)删除的方法用 remove / delete 做前缀。
6)修改的方法用 update 做前缀。
个人理解及应用 🔥 :
1)在变量命名方面:
a)方法体内局部变量,命名时表示类型的名词放在词尾,以提升辨识度;
正例:nameList、nameArr。
b)方法声明上参数(局部变量),命名时尽量采用复数形式,以和方法名保持一致;
正例:List<String> listNameByIds(List<Long> ids);
c)成员变量,命名时尽量采用复数形式。
2)在方法命名方面:
a)CRUD 类方法可以简化命名;
正例:UserService:page、list、add、update、delete...;
说明:UserService 是围绕 User 为核心的业务接口,简化命名的方法也很容易理解操作的是什么。
b)其他方法,查询信息名词采用单数(与其纠结单数、复数,那就用单数,简单粗暴一点),以上述第2条要求为命名前缀。
正例:RoleService:listNameByIds(根据 ID 查询名称列表)
RoleService:listRoleCodeByUserId(根据用户 ID 查询角色编码列表)
UserRoleService:listRoleIdByUserId(根据用户 ID 查询角色 ID 列表)
UserService:getByUsername(根据用户名查询用户)
2023-03-04 23:03:33 +08:00
Charles7c
4779d77265
优化:基于阿里巴巴 Java 开发手册(黄山版)优化方法排序及访问权限修饰符
...
1.编程规约>OOP规约>第20条:
【推荐】当一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起,便于阅读,
此条规则优先于下一条。
2.编程规约>OOP规约>第21条:
【推荐】类内方法定义的顺序依次是:公有方法或保护方法 > 私有方法 > getter / setter 方法。
说明:公有方法是类的调用者和维护者最关心的方法,首屏展示最好;保护方法虽然只是子类关心,也可能是“模板设
计模式”下的核心方法;而私有方法外部一般不需要特别关心,是一个黑盒实现;因为承载的信息价值较低,所有
Service 和 DAO 的 getter / setter 方法放在类体最后。
3.编程规约>OOP规约>第26条:
【推荐】类成员与方法访问控制从严:
1)如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
2)工具类不允许有 public 或 default 构造方法。
3)类非 static 成员变量并且与子类共享,必须是 protected。
4)类非 static 成员变量并且仅在本类使用,必须是 private。
5)类 static 成员变量如果仅在本类使用,必须是 private。
6)若是 static 成员变量,考虑是否为 final。
7)类成员方法只供类内部调用,必须是 private。
8)类成员方法只对继承类公开,那么限制为 protected。
说明:任何类、方法、参数、变量,严控访问范围。过于宽泛的访问范围,不利于模块解耦。思考:如果是一个
private 的方法,想删除就删除,可是一个 public 的 service 成员方法或成员变量,删除一下,不得手心冒点汗吗?
变量像自己的小孩,尽量在自己的视线内,变量作用域太大,无限制的到处跑,那么你会担心的。
2023-03-04 10:41:43 +08:00
Charles7c
1257a4bc35
优化:基于阿里巴巴 Java 开发手册(黄山版)优化常量及包命名
...
1.编程规约>常量定义>第4条:
【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
说明:大而全的常量类,杂乱无章,使用查找功能才能定位到要修改的常量,不利于理解,也不利于维护。
正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 SystemConfigConsts 下。
2.编程规约>常量定义>第5条:
【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常
量、类内共享常量。
1)跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
2)应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
反例:易懂常量也要统一定义成应用内共享常量,两个程序员在两个类中分别定义了表示“是”的常量:
类 A 中:public static final String YES = "yes";
类 B 中:public static final String YES = "y";
A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
3)子工程内部共享常量:即在当前子工程的 constant 目录下。
4)包内共享常量:即在当前包下单独的 constant 目录下。
5)类内共享常量:直接在类内部 private static final 定义。
2023-03-03 22:34:19 +08:00
Charles7c
94be1f9553
新增:新增功能权限适配及校验
...
1.后端 API 注解鉴权使用方式:@SaCheckPermission("system:user:add")
2.前端全局指令函数使用方式:v-permission="['system:user:add']"
3.前端权限判断函数使用方式:checkPermission(['system:user:add'])
2023-03-02 23:39:22 +08:00
Charles7c
ac6d2918d9
删除:删除系统管理/岗位管理(过于偏向行政业务向)
2023-02-27 22:53:36 +08:00
Charles7c
8eb82d4c72
修复:修复初始菜单数据错误
2023-02-27 22:21:20 +08:00
Charles7c
d4fd76dcc1
重构: 🔥 重构查询树列表相关 API,并抽取到后端 CRUD 公共组件中
...
1.基于 Hutool TreeUtil 重构查询树列表相关 API
2.抽取查询树列表 API 到后端 CRUD 公共组件中,大大简化部门管理和菜单管理部分代码
2023-02-27 22:03:27 +08:00
Charles7c
72e5522952
优化:优化新增关键词 create => add
2023-02-26 22:26:17 +08:00
Charles7c
a79b3e0e96
新增:新增公共查询枚举字典 API,优化前端获取枚举数据的方式
2023-02-26 21:49:03 +08:00
Charles7c
8200ea822f
新增:新增系统管理/岗位管理(列表、查看详情、新增、修改、删除、导出)
2023-02-26 00:19:56 +08:00
Charles7c
5519c209b1
新增:新增系统管理/用户管理重置密码、分配角色功能
2023-02-25 14:21:46 +08:00
Charles7c
91165e63e5
重构:重构查询角色树 API 为查询角色字典列表
...
1.新增 LabelValueVO 通用字典数据结构
2023-02-24 22:24:25 +08:00
Charles7c
efa8f4fcf5
新增:新增系统管理/用户管理(列表、查看详情、新增、修改、删除、导出)
2023-02-22 23:58:28 +08:00
Charles7c
297fbd3675
重构:重构系统管理/角色管理功能
...
1. 使用抽屉代替对话框
2. 优化数据权限权限范围存储,新增角色和部门关联表
3. 新增角色和菜单关联表
4. 部分细节优化
2023-02-20 00:14:14 +08:00
Charles7c
510f86031f
新增:新增系统管理/菜单管理(列表、创建、修改、删除、导出)
2023-02-16 23:01:26 +08:00
Charles7c
148a98371f
优化:优化 Hikari 连接池配置
2023-02-14 23:17:08 +08:00
Charles7c
68a1da687f
优化:生产环境打印日志到控制台去除颜色格式
2023-02-14 21:16:05 +08:00
Charles7c
03b57fb021
优化: 🔥 深度优化后端 CRUD 公共组件,并抽取前端下载功能到 CRUD 公共组件
...
1. 后端抽取导出功能到 CRUD 公共组件
2. 查询列表及导出接口支持排序参数
3. 深度优化 BaseServiceImpl 中的 CRUD 公共实现
4. 前端抽取公共下载组件
5. 优化部分细节并修复部分错误
2023-02-13 21:15:06 +08:00
Charles7c
ebc7c2b3b0
优化:基于 ESLint 和阿里编码规约插件对部分代码规范进行优化
2023-02-10 20:45:15 +08:00
Charles7c
5251a484f2
新增:新增系统管理/角色管理(分页、查看详情、创建、修改、删除)
2023-02-09 23:15:16 +08:00
Charles7c
2bc68528a4
优化:优化 Hikari 连接池配置
2023-02-08 22:00:58 +08:00
Charles7c
c44503b7ea
新增:部门管理对接用户信息(新增所属部门),并完善查看部门详情(增加上级部门显示)
2023-02-07 22:04:22 +08:00
Charles7c
ceba8e9e53
新增:新增系统管理/部门管理/导出功能(引入 Easy Excel 依赖用于导出 Excel,详情可见 README 介绍。另请注意:测试导出功能时,前端需要关闭 mockjs,否则 responseType 会被 mockjs 设置为 '',导致导出的文件无法打开)
2023-02-06 23:02:23 +08:00
Charles7c
d035d5a362
重构:重构系统日志前端代码
2023-02-04 00:38:22 +08:00
Charles7c
f2f23e6a17
优化:优化 Hikari 连接池配置
2023-02-03 23:47:58 +08:00
Charles7c
754a09fa08
重构:重构登录日志前端代码
2023-02-02 22:41:17 +08:00
Charles7c
c5d4e8ae21
重构:重构部门管理前端代码;新增修改部门、批量删除部门、查看部门详情功能(后端主要基于 CRUD 通用组件提供 API)
2023-02-01 23:25:36 +08:00
Charles7c
21fe29b56f
优化:优化日志表结构(新增 module 所属模块字段);优化日志引擎部分代码;使用 defaultIfNull() 和 blankToDefault 替换部分三元运算符代码(便于阅读及理解);将 BaseEntity 重命名为 BaseDO
2023-01-31 20:29:48 +08:00
Charles7c
83b01c2e4f
优化:优化后端 CRUD 公共组件(移除 BaseService 中无用的默认实现,抽取 BaseRequest 基类来方便使用分组校验),并同步调整部门管理 API
2023-01-30 22:35:17 +08:00
Charles7c
3075038067
优化:优化模型类命名(为数据模型类添加 DO 后缀),并优化所有模型相关变量命名
2023-01-30 21:00:30 +08:00
Charles7c
d7851bc811
重构:初步封装后端 CRUD 公共组件(BaseController、BaseService、BaseServiceImpl)
2023-01-29 23:40:29 +08:00
Charles7c
dab3e597c2
优化:优化部分校验类型(业务验证迁移到 Service 层,使用 CheckUtils 来验证)
2023-01-25 23:07:25 +08:00
Charles7c
693e825144
新增:新增系统管理/部门管理/修改状态及删除功能(后续几天开始对现有代码进行优化,尤其要开始初步封装前后端 CRUD 组件,并针对现在使用的部分规范发起长期投票)
2023-01-25 12:59:30 +08:00
Charles7c
922b28126b
新增:新增系统管理/部门管理/新增功能
2023-01-24 01:14:48 +08:00
Charles7c
bdf8eeb1b4
新增:新增系统管理/部门管理/查询列表功能,并将所有描述字段名从 notes 调整为 description,将部分前端方法名前缀从 query 调整为 get,以及去除部分冗余代码
2023-01-23 19:00:47 +08:00
Charles7c
3116fd3eae
新增:新增系统监控/在线用户功能,并优化部分注释规范
2023-01-21 14:15:00 +08:00
Charles7c
185b79320f
优化:优化校验器相关方法名
2023-01-21 12:09:49 +08:00
Charles7c
8cf15fd4a8
优化:聚合日志相关 API,封装 date-range-picker 组件并优化部分细节
2023-01-20 14:44:03 +08:00
Charles7c
d8debf5481
新增:新增系统监控/系统日志功能,优化日志表结构
2023-01-18 23:46:50 +08:00
Charles7c
c57383abad
新增:新增系统监控/登录日志功能,优化日志表结构,并新增记录错误信息(非未知异常不记录异常详情,只记录错误信息)
2023-01-17 23:16:37 +08:00
Charles7c
aa726fc6b6
新增:新增系统监控/操作日志功能,优化日志表结构
2023-01-16 23:00:54 +08:00
Charles7c
f4ea2d44d6
新增:个人中心新增查询操作日志功能,优化日志表结构,并支持关闭记录内网 IP 操作
2023-01-16 00:18:53 +08:00
Charles7c
8b82557883
新增:新增修改邮箱功能,并优化部分以往代码(引入 spring-boot-starter-mail 用于发送邮件验证码)
2023-01-14 01:05:39 +08:00
Charles7c
73fadb8315
优化:优化表单校验相关代码,拆分安全设置组件,完善登录页面 slogan 和插图
2023-01-11 21:24:57 +08:00
Charles7c
a08fd7773e
新增:新增修改密码功能,并优化部分以往代码
2023-01-10 23:25:58 +08:00
Charles7c
76fb698a37
新增:新增修改基础信息 API(优化 Jackson 针对通用枚举接口 IEnum 的序列化和反序列化)
2023-01-09 22:41:09 +08:00
Charles7c
5252c54c48
新增:新增上传头像 API,采用本地存储方式存储头像
2023-01-05 22:32:23 +08:00
Charles7c
88755ab720
新增:新增获取用户信息 API,未设置头像时,前端将根据用户性别显示对应默认头像
2023-01-02 10:23:19 +08:00
Charles7c
1d21019813
修复:解决 Jackson2ObjectMapperBuilderCustomizer 配置不生效的问题,同时优化所有 Date 类型为对应 Java 8 日期、时间类型
2022-12-29 21:48:50 +08:00
Charles7c
9064d06ff5
新增:新增前端项目模块(基于 Vue3、TypeScript、Arco Design Pro Vue 技术栈),已对接现有 API
2022-12-28 22:44:57 +08:00
Charles7c
6a7ad96fa3
优化:优化跨域配置
2022-12-26 23:23:33 +08:00
Charles7c
727850933f
新增:新增系统监控模块(存放系统监控模块相关功能,例如:日志管理、服务监控等),新增操作日志引擎,记录 HTTP 请求信息
2022-12-25 13:16:15 +08:00
Charles7c
78e84e8941
完善:完善用户登录 API,优化部分包结构(引入 MyBatis Plus、多数据源、P6Spy、Liquibase 等依赖,详情可见 README 介绍)
2022-12-25 12:35:35 +08:00
Charles7c
00e2b44d0e
新增:新增用户登录和退出 API(引入 Sa-Token 依赖,详情可见 README 介绍)
2022-12-22 19:39:27 +08:00
Charles7c
d54c93aebc
升级:升级 Knife4j 为 4.0.0 正式版,并完善接口文档配置
2022-12-22 18:05:06 +08:00
Charles7c
79891e8b5a
新增:新增接口文档配置(基于 Spring Doc OpenAPI,使用 Knife4j 作为增强解决方案)
2022-12-11 22:32:18 +08:00
Charles7c
1e5eaab9d3
新增:新增获取图片验证码 API(引入 Redisson、Hutool、Easy Captcha 依赖,详情可见 README 介绍)
2022-12-11 15:06:21 +08:00
Charles7c
c46379f6a8
优化:参照 alibaba/easyexcel 配置 P3C(阿里巴巴 Java 开发手册代码规范)代码格式,重新对现有代码执行了格式优化
2022-12-10 22:54:30 +08:00
Charles7c
12b839f297
重构:按功能初步拆分模块
2022-12-10 21:25:14 +08:00