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
|
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
|
332bd6cd2a
|
docs: 修复接口文档中 LocalDateTime 类型数据的示例信息不显示的问题
|
2023-08-29 19:43:48 +08:00 |
|
Bull-BCLS
|
a9ed02bf4f
|
docs: 将额外请求参数在 Swagger 文档中隐藏
|
2023-08-23 23:47:28 +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
|
487fa82306
|
style: 优化 == 及 != 表达式格式
1.将 null 或常量值调整到符号左侧
2.将无特殊意义的方法判空写法改为表达式判断写法
|
2023-08-15 23:31:50 +08:00 |
|
Charles7c
|
b23b00d02a
|
perf: 集成 Spring Cache,优化查询用户昵称性能
|
2023-08-15 22:58:44 +08:00 |
|
Bull-BCLS
|
0ac0213628
|
docs: 完善系统监控模块相关接口文档信息
|
2023-08-15 22:43:28 +08:00 |
|
Charles7c
|
a61196cd62
|
refactor: 将验证码唯一标识格式从无符号 UUID 调整为带符号 UUID
|
2023-08-15 00:26:05 +08:00 |
|
Bull-BCLS
|
ad7d6995ba
|
docs: 完善系统管理模块相关接口文档信息
|
2023-08-14 21:38:12 +08:00 |
|
Charles7c
|
76c65463c2
|
refactor: 移除所有的 @Accessors(chain = true),并全局配置禁止使用
|
2023-08-11 23:59:44 +08:00 |
|
Charles7c
|
241a9cf85b
|
refactor: 使用 DatePattern 中的日期格式常量替代字符串常量中的日期格式
|
2023-08-10 23:38:20 +08:00 |
|
Charles7c
|
f4c6d83ff5
|
feat: 新增查询列映射信息列表接口
提取 QueryTypeEnum 枚举
|
2023-08-06 23:32:01 +08:00 |
|
Charles7c
|
668124591e
|
Merge branch '1.0.x' into dev
# Conflicts:
# continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java
|
2023-07-19 23:17:39 +08:00 |
|
Charles7c
|
4a8af1f72d
|
perf: 优化根据 ID 查询用户昵称方法
|
2023-07-19 23:11:00 +08:00 |
|
Charles7c
|
c1fbabaaa7
|
Merge branch '1.0.x' into dev
|
2023-07-01 17:05:56 +08:00 |
|
Charles7c
|
026247f677
|
fix: 完善查询用户数据权限
1、暂时对用户 Mapper 的 selectList 和 selectPage 进行了数据权限过滤;
2、由于对用户 Mapper 的 selectList 添加了数据权限过滤,请小心使用 selectOne 因为其底层使用的也是 selectList;
3、tips:如需在查询时进行数据权限过滤,尽量不要对 MyBatis Plus 原生查询进行过滤,而是单独声明一个查询方法来使用,以避免不需要过滤数据权限查询数据的场景受到较大影响。
|
2023-06-30 00:38:25 +08:00 |
|
Charles7c
|
78a5d5ec7a
|
refactor: 优化分组校验
|
2023-05-07 19:51:14 +08:00 |
|
Charles7c
|
b1c0ac1998
|
Merge branch '1.0.x' into dev
|
2023-04-13 22:32:11 +08:00 |
|
Charles7c
|
efbcb9b39d
|
style: 优化业务实现注释
|
2023-04-13 22:29:53 +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
|
18c54a74fc
|
fix: 完善事务注解
|
2023-04-03 21:31:29 +08:00 |
|
Charles7c
|
e6f7429fa3
|
style: 使用常量优化部分魔法值
|
2023-03-31 23:31:30 +08:00 |
|
Charles7c
|
331491dd5d
|
fix: 完善创建用户参数校验
|
2023-03-31 21:13:30 +08:00 |
|
Charles7c
|
8b955a0b1b
|
修复:补充校验
|
2023-03-29 23:47:48 +08:00 |
|
Charles7c
|
8a843ad94c
|
修复:修复在线用户缺失昵称信息的问题
|
2023-03-26 20:50:17 +08:00 |
|
Charles7c
|
d88d712d18
|
完善:完善用户相关业务验证
|
2023-03-26 14:18:36 +08:00 |
|
Charles7c
|
d5a398b7ad
|
优化:优化部分变量命名
|
2023-03-26 13:57:14 +08:00 |
|
Charles7c
|
28334f6c9a
|
优化:优化删除部门的代码逻辑
1.如果存在下级部门,不允许删除
|
2023-03-26 13:51:43 +08:00 |
|
Charles7c
|
59d9fd33e4
|
优化:优化修改部门的代码逻辑
1.启用部门,其所有上级部门需要处于启用状态;禁用部门,其所有下级部门需要处于禁用状态
2.新增部门时,默认为禁用状态
|
2023-03-26 11:46:26 +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
|
f57d15793a
|
优化:优化部分工具方法的使用
|
2023-03-23 23:40:45 +08:00 |
|
Charles7c
|
2e215ab320
|
优化:调整部门、菜单、角色、用户删除的代码逻辑顺序,先删除关联再删除主体
|
2023-03-23 22:20:51 +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
|
25e11ad9bc
|
优化:优化后端公共 CRUD 组件-修改接口,将 id 从请求体提取到路径变量,更符合 RESTful 风格
|
2023-03-11 00:26:18 +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
|
5f4a9abec6
|
修复:修复根据用户 ID 查询权限码报 ParseException 的问题(参考 GitHub:baomidou/mybatis-plus#5159)
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "ur" <K_ISOLATION>
|
2023-03-07 23:48:25 +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
|
95784e5c7d
|
修复:不再查询父 ID 为 0 的记录的父名称
|
2023-03-05 13:10:28 +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 |
|