优化 CommonsDialectImpl.java 提取 buildLogicNormalCondition 和 buildLogicDeletedSet 方法,方便用户自定义构建逻辑删除条件

This commit is contained in:
开源海哥 2023-06-19 19:14:11 +08:00
parent ba43579c68
commit 42240f0c20

View File

@ -509,7 +509,7 @@ public class CommonsDialectImpl implements IDialect {
String[] primaryKeys = tableInfo.getPrimaryKeys(); String[] primaryKeys = tableInfo.getPrimaryKeys();
sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this)); sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this));
sql.append(SET).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicDeletedValue()); sql.append(SET).append(buildLogicDeletedSet(logicDeleteColumn));
sql.append(WHERE); sql.append(WHERE);
for (int i = 0; i < primaryKeys.length; i++) { for (int i = 0; i < primaryKeys.length; i++) {
if (i > 0) { if (i > 0) {
@ -518,7 +518,8 @@ public class CommonsDialectImpl implements IDialect {
sql.append(wrap(primaryKeys[i])).append(EQUALS_PLACEHOLDER); sql.append(wrap(primaryKeys[i])).append(EQUALS_PLACEHOLDER);
} }
sql.append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue()); // sql.append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue());
sql.append(AND).append(buildLogicNormalCondition(logicDeleteColumn));
//租户ID //租户ID
if (ArrayUtil.isNotEmpty(tenantIdArgs)) { if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
@ -549,7 +550,7 @@ public class CommonsDialectImpl implements IDialect {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append(UPDATE); sql.append(UPDATE);
sql.append(tableInfo.getWrapSchemaAndTableName(this)); sql.append(tableInfo.getWrapSchemaAndTableName(this));
sql.append(SET).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicDeletedValue()); sql.append(SET).append(buildLogicDeletedSet(logicDeleteColumn));
sql.append(WHERE); sql.append(WHERE);
sql.append(BRACKET_LEFT); sql.append(BRACKET_LEFT);
@ -581,7 +582,7 @@ public class CommonsDialectImpl implements IDialect {
} }
} }
sql.append(BRACKET_RIGHT).append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue()); sql.append(BRACKET_RIGHT).append(AND).append(buildLogicNormalCondition(logicDeleteColumn));
if (ArrayUtil.isNotEmpty(tenantIdArgs)) { if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
sql.append(AND).append(wrap(tableInfo.getTenantIdColumn())).append(IN).append(buildQuestion(tenantIdArgs.length)); sql.append(AND).append(wrap(tableInfo.getTenantIdColumn())).append(IN).append(buildQuestion(tenantIdArgs.length));
@ -609,7 +610,7 @@ public class CommonsDialectImpl implements IDialect {
//ignore selectColumns //ignore selectColumns
StringBuilder sqlBuilder = new StringBuilder(UPDATE).append(forHint(CPI.getHint(queryWrapper))); StringBuilder sqlBuilder = new StringBuilder(UPDATE).append(forHint(CPI.getHint(queryWrapper)));
sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this)); sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this));
sqlBuilder.append(SET).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicDeletedValue()); sqlBuilder.append(SET).append(buildLogicDeletedSet(logicDeleteColumn));
buildJoinSql(sqlBuilder, queryWrapper, allTables); buildJoinSql(sqlBuilder, queryWrapper, allTables);
@ -664,7 +665,7 @@ public class CommonsDialectImpl implements IDialect {
//逻辑删除条件已删除的数据不能被修改 //逻辑删除条件已删除的数据不能被修改
String logicDeleteColumn = tableInfo.getLogicDeleteColumn(); String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
if (StringUtil.isNotBlank(logicDeleteColumn)) { if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue()); sql.append(AND).append(buildLogicNormalCondition(logicDeleteColumn));
} }
@ -815,7 +816,7 @@ public class CommonsDialectImpl implements IDialect {
//逻辑删除的情况下需要添加逻辑删除的条件 //逻辑删除的情况下需要添加逻辑删除的条件
String logicDeleteColumn = tableInfo.getLogicDeleteColumn(); String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
if (StringUtil.isNotBlank(logicDeleteColumn)) { if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue()); sql.append(AND).append(buildLogicNormalCondition(logicDeleteColumn));
} }
//多租户 //多租户
@ -873,7 +874,7 @@ public class CommonsDialectImpl implements IDialect {
if (StringUtil.isNotBlank(logicDeleteColumn)) { if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(AND).append(wrap(logicDeleteColumn)).append(EQUALS).append(getLogicNormalValue()); sql.append(AND).append(buildLogicNormalCondition(logicDeleteColumn));
} }
if (ArrayUtil.isNotEmpty(tenantIdArgs)) { if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
@ -975,6 +976,16 @@ public class CommonsDialectImpl implements IDialect {
} }
protected String buildLogicNormalCondition(String logicColumn) {
return wrap(logicColumn) + EQUALS + getLogicNormalValue();
}
protected String buildLogicDeletedSet(String logicColumn) {
return wrap(logicColumn) + EQUALS + getLogicDeletedValue();
}
protected Object getLogicNormalValue() { protected Object getLogicNormalValue() {
Object normalValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete(); Object normalValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete();
if (normalValueOfLogicDelete instanceof Number if (normalValueOfLogicDelete instanceof Number