Commit a110ec2de3ec4e76c7cf45fd9670620500d15f2b

Authored by 芋道源码
Committed by Gitee
2 parents fc9fe221 b84db7c1

!1486 perf: 优化数据库兼容性

Merge pull request !1486 from 半栈幼儿员/hotfix/db
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java
... ... @@ -136,7 +136,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
136 136 JsonUtils.toJsonString(loginUser), tableName, tableAlias, JsonUtils.toJsonString(deptDataPermission));
137 137 // throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 构建的条件为空",
138 138 // loginUser.getId(), tableName, tableAlias.getName()));
139   - return EXPRESSION_NULL;
  139 + return new EqualsTo(null, null); // WHERE null = null,可以保证返回的数据为空
140 140 }
141 141 if (deptExpression == null) {
142 142 return userExpression;
... ...
yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/chat/AiChatMessageDO.java
... ... @@ -27,7 +27,7 @@ import java.util.List;
27 27 * @since 2024/4/14 17:35
28 28 */
29 29 @TableName(value = "ai_chat_message", autoResultMap = true)
30   -@KeySequence("ai_chat_conversation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  30 +@KeySequence("ai_chat_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
31 31 @Data
32 32 @Builder
33 33 @NoArgsConstructor
... ...
yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.java
... ... @@ -14,7 +14,7 @@ import lombok.*;
14 14 * @author 芋道源码
15 15 */
16 16 @TableName("ai_api_key")
17   -@KeySequence("ai_chat_conversation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  17 +@KeySequence("ai_api_key_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
18 18 @Data
19 19 @Builder
20 20 @NoArgsConstructor
... ...
yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/knowledge/AiKnowledgeSegmentMapper.java
... ... @@ -51,8 +51,7 @@ public interface AiKnowledgeSegmentMapper extends BaseMapperX<AiKnowledgeSegment
51 51 MPJLambdaWrapper<AiKnowledgeSegmentDO> wrapper = new MPJLambdaWrapperX<AiKnowledgeSegmentDO>()
52 52 .selectAs(AiKnowledgeSegmentDO::getDocumentId, AiKnowledgeSegmentProcessRespVO::getDocumentId)
53 53 .selectCount(AiKnowledgeSegmentDO::getId, "count")
54   - .select("COUNT(CASE WHEN vector_id > '" + AiKnowledgeSegmentDO.VECTOR_ID_EMPTY
55   - + "' THEN 1 ELSE NULL END) AS embeddingCount")
  54 + .select("COUNT(CASE WHEN vector_id IS NOT NULL AND vector_id <> '" + AiKnowledgeSegmentDO.VECTOR_ID_EMPTY + "' THEN 1 ELSE NULL END) AS embeddingCount")
56 55 .in(AiKnowledgeSegmentDO::getDocumentId, documentIds)
57 56 .groupBy(AiKnowledgeSegmentDO::getDocumentId);
58 57 return selectJoinList(AiKnowledgeSegmentProcessRespVO.class, wrapper);
... ...
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java
... ... @@ -28,6 +28,6 @@ public class FileCreateReqVO {
28 28 private String type;
29 29  
30 30 @Schema(description = "文件大小", example = "2048", requiredMode = Schema.RequiredMode.REQUIRED)
31   - private Integer size;
  31 + private Long size;
32 32  
33 33 }
... ...
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java
... ... @@ -28,7 +28,7 @@ public class FileRespVO {
28 28 private String type;
29 29  
30 30 @Schema(description = "文件大小", example = "2048", requiredMode = Schema.RequiredMode.REQUIRED)
31   - private Integer size;
  31 + private Long size;
32 32  
33 33 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
34 34 private LocalDateTime createTime;
... ...
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java
... ... @@ -52,6 +52,6 @@ public class FileDO extends BaseDO {
52 52 /**
53 53 * 文件大小
54 54 */
55   - private Integer size;
  55 + private Long size;
56 56  
57 57 }
... ...
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
... ... @@ -59,9 +59,9 @@ public class DatabaseTableServiceImpl implements DatabaseTableService {
59 59 strategyConfig.addInclude(name);
60 60 } else {
61 61 // 移除工作流和定时任务前缀的表名
62   - strategyConfig.addExclude("ACT_[\\S\\s]+|QRTZ_[\\S\\s]+|FLW_[\\S\\s]+");
  62 + strategyConfig.addExclude("ACT_[\\S\\s]+|QRTZ_[\\S\\s]+|FLW_[\\S\\s]+|act_[\\S\\s]+|qrtz_[\\S\\s]+|flw_[\\S\\s]+");
63 63 // 移除 ORACLE 相关的系统表
64   - strategyConfig.addExclude("IMPDP_[\\S\\s]+|ALL_[\\S\\s]+|HS_[\\S\\\s]+");
  64 + strategyConfig.addExclude("IMPDP_[\\S\\s]+|ALL_[\\S\\s]+|HS_[\\S\\s]+|impdp_[\\S\\s]+|all_[\\S\\s]+|hs_[\\S\s]+");
65 65 strategyConfig.addExclude("[\\S\\s]+\\$[\\S\\s]+|[\\S\\s]+\\$"); // 表里不能有 $,一般有都是系统的表
66 66 }
67 67  
... ...
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java
... ... @@ -88,7 +88,7 @@ public class FileServiceImpl implements FileService {
88 88 // 3. 保存到数据库
89 89 fileMapper.insert(new FileDO().setConfigId(client.getId())
90 90 .setName(name).setPath(path).setUrl(url)
91   - .setType(type).setSize(content.length));
  91 + .setType(type).setSize((long) content.length));
92 92 return url;
93 93 }
94 94  
... ...