Bull-BCLS
cbc652de77
feat: 新增头像上传前裁剪功能
2023-11-02 14:53:17 +08:00
Bull-BCLS
9217166e9d
feat: 新增系统管理/消息管理(列表、查看详情、标记已读、全部已读、删除)
2023-10-30 12:15:37 +08:00
Charles7c
4d70bc84db
feat: 支持手机号登录(演示环境不开放)
...
1.在个人中心-安全设置中绑手机号后,才支持手机号登录
2.SMS4J(短信聚合框架,轻松集成多家短信服务,解决接入多个短信 SDK 的繁琐流程)
2023-10-27 21:32:25 +08:00
Charles7c
5bb35a13d6
fix: 用户邮箱信息增加脱敏处理
2023-10-25 23:36:45 +08:00
Charles7c
f5e8b0943c
style: 枚举接口 BaseEnum => IBaseEnum
2023-10-25 23:12:03 +08:00
Charles7c
f25de2d7f8
style: 优化校验相关方法命名
...
1.check 作为开头的方法名称,不设置返回值,对于 check 不通过的情况以异常的形式抛出(提升代码可读性,无需考虑是 check
通过了返回 true,还是 check 失败的情况下返回 true)
2.返回布尔值的方法,名称以 is 作为起始
2023-10-25 21:40:22 +08:00
Charles7c
51f552892c
style: 优化后端部分参数模型命名
...
模型命名规则遵循:名词+动作+后缀,例如:UserPasswordUpdateRequest
2023-10-25 21:27:39 +08:00
Charles7c
17b169eb0e
feat: 支持邮箱登录
...
在个人中心-安全设置中绑定邮箱后,才支持邮箱登录
2023-10-24 21:39:38 +08:00
Charles7c
d9af44f9fa
style: 优化社交身份认证注释为三方账号认证
2023-10-20 22:24:41 +08:00
Charles7c
a1ccc421c4
fix: 修复重载校验方法定义及使用错误
2023-10-20 00:24:05 +08:00
Charles7c
efe455736c
feat: 个人中心-安全设置,支持绑定、解绑三方账号
2023-10-19 23:44:56 +08:00
Charles7c
063343565d
fix: 修复第三方账号登录时,新用户昵称不符合规则的问题
2023-10-16 21:49:53 +08:00
Charles7c
b04a228a1a
fix: 修复个人中心密码设置状态显示错误的问题
2023-10-16 21:25:02 +08:00
Charles7c
05cb609780
feat: 支持第三方账号登录
...
Just Auth(开箱即用的整合第三方登录的开源组件,脱离繁琐的第三方登录 SDK,让登录变得 So easy!)
2023-10-14 23:58:13 +08:00
Charles7c
3a176ac5ef
style: 优化部分代码格式及注释
2023-10-10 22:37:24 +08:00
Charles7c
8e506dc6e6
fix: 修复昵称正则不一致问题
2023-09-24 20:22:46 +08:00
Charles7c
e947312f24
refactor: 前端表单重置优化
2023-09-24 11:45:14 +08:00
Charles7c
243ac0104a
perf: 对查询参数信息接口增加缓存处理
2023-09-24 10:58:24 +08:00
Charles7c
adf7ec5dda
style: 优化系统参数相关命名为参数
2023-09-22 23:09:59 +08:00
Bull-BCLS
dcc87cb63b
feat: 新增网站配置修改功能
2023-09-22 21:51:09 +08:00
Charles7c
c344bceb3f
refactor: 优化系统配置页面样式
...
1.优化系统配置页面样式
2.修复部分错误及遗漏
2023-09-21 22:53:20 +08:00
Bull-BCLS
42996a7317
feat: 新增查询参数列表接口
2023-09-21 22:38:06 +08:00
Charles7c
90d825a02f
refactor: 完善前后端校验
2023-09-18 22:21:25 +08:00
Charles7c
3fd0c08b80
refactor: 优化字典选中效果
2023-09-18 20:07:41 +08:00
Charles7c
8a02401a24
refactor: 💥 优化系统内置类型数据标识
...
1.系统内置类型数据标识由 type 调整为 is_system
2.优化部分表的非空字段
2023-09-17 23:53:25 +08:00
Charles7c
1f73aa732d
refactor: 优化枚举字典处理,增加颜色类型
...
1.重构 useDict 方法,同时支持枚举和查询字典,对应后端接口增加缓存处理
2.优化 BaseEnum 处理,增加 color 字段可用于设置对应枚举背景颜色(同字典背景颜色)
2023-09-17 18:03:14 +08:00
Charles7c
3a3a5d6b71
refactor: 公告类型适配字典数据
...
1.新增 <dict-tag> 自定义组件,用于回显字典标签
2.重构 useDict 方法,支持查询字典数据
3.优化部分字典相关数据类型
2023-09-17 13:26:14 +08:00
Charles7c
8529af8eca
refactor: 优化字典导出数据和格式
2023-09-16 22:29:28 +08:00
Charles7c
ca51702035
feat: 新增系统管理/字典管理(列表、新增、修改、删除、导出、查询字典项列表、新增字典项、修改字典项、删除字典项)
2023-09-16 00:36:42 +08:00
Charles7c
375810772a
refactor: 优化通用查询注解多字段模糊查询
2023-09-12 22:33:36 +08:00
Charles7c
a3082e72a9
style: 部分代码优化
...
1.格式优化:去除部分多余空行(较少代码段区分尽量不添加空行)、注释(代码尽量自解释)
2.完善部分 Swagger 注解信息
3.修复部分前后端警告
2023-09-10 18:01:44 +08:00
Charles7c
dc1691f019
feat: 完善仪表盘访客地域分布区块内容
2023-09-09 15:09:05 +08:00
Charles7c
83b2e2a7c0
feat: 完善仪表盘热门模块区块内容
...
1.完善仪表盘热门模块区块内容
2.sys_log 表增加 module 字段索引
3.优化总计区块图标
2023-09-09 11:28:44 +08:00
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
883dbecb1b
refactor: 优化部分代码
2023-09-08 21:17:30 +08:00
Charles7c
32904b54ef
refactor: 升级 MyBatis Plus 3.5.3.1 => 3.5.3.2,并优化数据权限处理
...
1.解决升级到 MyBatis Plus 3.5.3.2 后,由于 BaseMapper 接口变化导致部分数据权限处理报 Invalid bound statement (not found) 错误的问题(处理思路来源于:https://github.com/baomidou/mybatis-plus/issues/5630)
2.提取 DataPermissionMapper(数据权限 Mapper 基类),如需处理通用 Mapper 方法的数据权限,继承该 Mapper 即可
2023-09-04 22:18:28 +08:00
Charles7c
c6ae5db826
Merge branch '1.1.x' into dev
2023-09-02 00:23:15 +08:00
Charles7c
be394f3de4
style: 优化登录用户信息角色相关信息命名
...
1.roles => roleCodes
2.roleSet => roles
2023-09-02 00:12:45 +08:00
Bull-BCLS
46cc4c9307
fix: 修复针对于还未到发布时间的公告状态
2023-09-01 23:08:55 +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
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
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
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
0f2f35d608
Merge branch 'dev' into 2.0.x
...
# Conflicts:
# README.md
2023-04-03 21:37:38 +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
cf3044312c
style: 适配 Java 16 新特性
...
1.instanceof 模式匹配(Java 14 预览特性 => Java 16 标准特性)
详情请参阅:https://docs.oracle.com/en/java/javase/16/language/pattern-matching-instanceof-operator.html
2023-03-31 23:08:50 +08:00
Charles7c
38f52aaafa
style: 适配 Java 14 新特性
...
1.增强 switch(Java 12 预览特性 => Java 14 标准特性)
详情请参阅:https://docs.oracle.com/en/java/javase/14/language/switch-expressions.html
2.@Serial(类似于 @Override 的检查注解,用于检查序列化)
2023-03-31 23:00:57 +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
331491dd5d
fix: 完善创建用户参数校验
2023-03-31 21:13:30 +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
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
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
2d71af9efb
优化:优化 SQL 语句风格
...
1.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
个人理解:使用 t1、t2、t3... 的表别名命名方式,在很多类似业务查询的场景会更方便复用;使用 AS 而不是 as 更容易阅读。
2023-03-10 23:17:25 +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
Charles7c
25f6e3402b
优化:优化使用 MyBatis Plus ChainWrapper 的方式
2023-03-04 17:38:10 +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
6da85463c9
优化:基于阿里巴巴 Java 开发手册(黄山版)优化部分空集合处理
...
1.编程规约>集合处理>第7条:(个人理解:emptyList() 固然可以减少资源浪费,但未来由于不确定的需求变更,一旦增删元素必然会引发异常)
【强制】Collections 类返回的对象,如:emptyList() / singletonList() 等都是 immutable list,不可
对其进行添加或者删除元素的操作。
反例:如果查询无结果,返回 Collections.emptyList() 空集合对象,调用方一旦在返回的集合中进行了添加元素的操
作,就会触发 UnsupportedOperationException 异常。
2.编程规约>集合处理>第17条:
【推荐】集合初始化时,指定集合初始值大小。
说明:HashMap 使用构造方法 HashMap(int initialCapacity) 进行初始化时,如果暂时无法确定集合大小,那么指
定默认值(16)即可。
正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即 loaderfactor)默认为 0.75,如果
暂时无法确定初始值大小,请设置为 16(即默认值)。
反例:HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素增加而被迫不断扩容,resize() 方法
总共会调用 8 次,反复重建哈希表和数据迁移。当放置的集合元素个数达千万级时会影响程序性能。
2023-03-03 23:41:01 +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
d4fd76dcc1
重构: 🔥 重构查询树列表相关 API,并抽取到后端 CRUD 公共组件中
...
1.基于 Hutool TreeUtil 重构查询树列表相关 API
2.抽取查询树列表 API 到后端 CRUD 公共组件中,大大简化部门管理和菜单管理部分代码
2023-02-27 22:03:27 +08:00
Charles7c
6723903c62
优化:优化部分空集合返回
2023-02-26 23:39:41 +08:00
Charles7c
72e5522952
优化:优化新增关键词 create => add
2023-02-26 22:26:17 +08:00
Charles7c
8200ea822f
新增:新增系统管理/岗位管理(列表、查看详情、新增、修改、删除、导出)
2023-02-26 00:19:56 +08:00
Charles7c
4071bb7f67
优化:优化部分 equals() 用法为 Objects.equals()
2023-02-25 14:26:15 +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
1319cb3264
优化:使用 MyBatis Plus ChainWrapper 优化部分 QueryWrapper 的写法
2023-02-16 21:00:12 +08:00
Charles7c
56449263d3
优化:优化校验注解提示信息的写法
2023-02-16 20:54:17 +08:00
Charles7c
fb740f2938
修复:删除部门及角色时,新增检测是否存在关联用户
2023-02-14 21:27:26 +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
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
c5d4e8ae21
重构:重构部门管理前端代码;新增修改部门、批量删除部门、查看部门详情功能(后端主要基于 CRUD 通用组件提供 API)
2023-02-01 23:25:36 +08:00
Charles7c
d27339ef3b
修复:修复分组校验导致无分组字段校验失效的问题
2023-02-01 20:54:57 +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
2c6bef91e8
优化:将列表排序由按修改时间降序调整为按创建时间降序(避免修改后数据记录移动),将列表中的审计信息由“修改人”、“修改时间”调整展示为“创建人”、“创建时间”,后续涉及完整审计信息将在详情中统一展示
2023-01-30 21:28:00 +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
185b79320f
优化:优化校验器相关方法名
2023-01-21 12:09:49 +08:00
Charles7c
c57383abad
新增:新增系统监控/登录日志功能,优化日志表结构,并新增记录错误信息(非未知异常不记录异常详情,只记录错误信息)
2023-01-17 23:16:37 +08:00
Charles7c
8b82557883
新增:新增修改邮箱功能,并优化部分以往代码(引入 spring-boot-starter-mail 用于发送邮件验证码)
2023-01-14 01:05:39 +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
21f5aceccf
优化:使用枚举存储性别、状态等信息(采用 MyBatis Plus#通用枚举扩展),常量类则专注于存储全局变量,例如:缓存键、默认值等
2023-01-02 00:19:56 +08:00
Charles7c
1d21019813
修复:解决 Jackson2ObjectMapperBuilderCustomizer 配置不生效的问题,同时优化所有 Date 类型为对应 Java 8 日期、时间类型
2022-12-29 21:48:50 +08:00
Charles7c
d9a48f7a95
修复:修复生产环境报 java.lang.NoClassDefFoundError: org/springframework/data/redis/connection/zset/Tuple 的错误问题(移除 Sa-Token 集成 Redis 依赖,改为本地 Redis 适配 SaTokenDao)
2022-12-28 23:32:05 +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
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
12b839f297
重构:按功能初步拆分模块
2022-12-10 21:25:14 +08:00