- 11 8月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 10 8月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 09 8月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 06 8月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
提取 QueryTypeEnum 枚举
-
- 05 8月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 19 7月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 05 7月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 01 7月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 07 5月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 13 4月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 09 4月, 2023 2 次提交
-
-
由 查尔斯-BUG万象集 提交于
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 相关依赖并指定最新版本即可。
-
由 查尔斯-BUG万象集 提交于
Spring MVC 对于对象型参数的属性赋值,如果属性值为 null 则不会调用其对应 set 方法,所以在 set 方法中添加默认处理逻辑无效
-
- 31 3月, 2023 4 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
-
- 29 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 27 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
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
-
- 26 3月, 2023 3 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
1.用户基本信息调整为实时获取 2.登录用户不再保存基本信息,降低维护成本 3.移除冗余的维护登录用户基本信息的代码
-
由 查尔斯-BUG万象集 提交于
1.变更角色编码、功能权限或数据权限后,关联在线用户会自动下线 2.优化角色和菜单关联、角色和部门关联、用户和角色关联的业务代码(增加返回结果) 3.重构在线用户功能,抽取在线用户业务实现
-
- 24 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 23 3月, 2023 2 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
-
- 22 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 20 3月, 2023 2 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
1.优化校验工具类,支持传入 {} 模板文本 2.校验工具类增加 throwIf 重载方法,适合于 boolean 类型参数的情况 3.优化一些模板文本的写法 4.优化一些其他细节
-
- 19 3月, 2023 2 次提交
-
-
由 查尔斯-BUG万象集 提交于
1.系统内置部门不允许禁用、删除、修改上级部门 2.抽取 getAncestors 方法,用于复用获取祖级列表 3.删除部门时,自动删除角色和部门关联
-
由 查尔斯-BUG万象集 提交于
-
- 11 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
- 07 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
1.基于 MyBatis Plus DataPermissionInterceptor 插件实现的数据权限功能 2.通过在指定 Mapper 接口层方法添加 @DataPermission 注解实现数据权限
-
- 06 3月, 2023 1 次提交
-
-
由 查尔斯-BUG万象集 提交于
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;
-
- 05 3月, 2023 5 次提交
-
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
1.编程规约>前后端规约>第6条: 【强制】对于需要使用超大整数的场景,服务端一律使用 String 字符串类型返回,禁止使用 Long 类型。 说明:Java 服务端如果直接返回 Long 整型数据给前端,Javascript 会自动转换为 Number 类型(注:此类型为双精度浮点数,表示原理与取值范围等同于 Java 中的 Double)。Long 类型能表示的最大值是 263-1,在取值范围之内,超过 253(9007199254740992)的数值转化为Javascript 的 Number 时,有些数值会产生精度损失。 扩展说明,在 Long 取值范围内,任何 2 的指数次的整数都是绝对不会存在精度损失的,所以说精度损失是一个概率问题。若浮点数尾数位与指数位空间不限,则可以精确表示任何整数,但很不幸,双精度浮点数的尾数位只有 52 位。 反例:通常在订单号或交易号大于等于 16 位,大概率会出现前后端订单数据不一致的情况。比如,后端传输的 "orderId":362909601374617692,前端拿到的值却是:362909601374617660
-
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
成员变量有时候会被称为 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,简单粗暴一点。
-
由 查尔斯-BUG万象集 提交于
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 级别只记录系统逻辑出错、异常或者重要的错误信息。
-
- 04 3月, 2023 3 次提交
-
-
由 查尔斯-BUG万象集 提交于
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(根据用户名查询用户) -
由 查尔斯-BUG万象集 提交于
-
由 查尔斯-BUG万象集 提交于
-