Commit Graph

65 Commits

Author SHA1 Message Date
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
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
9f25925d46 fix: 调整 BaseController API 方法的访问权限修饰符 2023-03-31 21:17:55 +08:00
Charles7c
8b955a0b1b 修复:补充校验 2023-03-29 23:47:48 +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
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
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
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
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
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
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
03b57fb021 优化:🔥 深度优化后端 CRUD 公共组件,并抽取前端下载功能到 CRUD 公共组件
1. 后端抽取导出功能到 CRUD 公共组件
2. 查询列表及导出接口支持排序参数
3. 深度优化 BaseServiceImpl 中的 CRUD 公共实现
4. 前端抽取公共下载组件
5. 优化部分细节并修复部分错误
2023-02-13 21:15:06 +08:00
Charles7c
5251a484f2 新增:新增系统管理/角色管理(分页、查看详情、创建、修改、删除) 2023-02-09 23:15:16 +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
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