optimize logic delete

This commit is contained in:
开源海哥 2023-04-18 09:58:29 +08:00
parent 4738bacd85
commit c26a4d4965

View File

@ -439,8 +439,8 @@ public class CommonsDialectImpl implements IDialect {
StringBuilder sql = new StringBuilder();
String[] primaryKeys = tableInfo.getPrimaryKeys();
sql.append("UPDATE ").append(wrap(tableInfo.getTableName())).append(" SET ");
sql.append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicDeletedValue()));
sql.append("UPDATE ").append(wrap(tableInfo.getTableName()));
sql.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicDeletedValue());
sql.append(" WHERE ");
for (int i = 0; i < primaryKeys.length; i++) {
if (i > 0) {
@ -449,7 +449,7 @@ public class CommonsDialectImpl implements IDialect {
sql.append(wrap(primaryKeys[i])).append(" = ?");
}
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicNormalValue()));
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicNormalValue());
//租户ID
if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
@ -460,8 +460,6 @@ public class CommonsDialectImpl implements IDialect {
}
@Override
public String forDeleteEntityBatchByIds(TableInfo tableInfo, Object[] primaryValues) {
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
@ -482,7 +480,7 @@ public class CommonsDialectImpl implements IDialect {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE ");
sql.append(wrap(tableInfo.getTableName()));
sql.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicDeletedValue()));
sql.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicDeletedValue());
sql.append(" WHERE ");
sql.append("(");
@ -514,7 +512,7 @@ public class CommonsDialectImpl implements IDialect {
}
}
sql.append(") AND ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicNormalValue()));
sql.append(") AND ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicNormalValue());
if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
sql.append(" AND ").append(wrap(tableInfo.getTenantIdColumn())).append(" IN ").append(buildQuestion(tenantIdArgs.length, true));
@ -542,7 +540,7 @@ public class CommonsDialectImpl implements IDialect {
//ignore selectColumns
StringBuilder sqlBuilder = new StringBuilder("UPDATE ");
sqlBuilder.append(wrap(tableInfo.getTableName()));
sqlBuilder.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicDeletedValue()));
sqlBuilder.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicDeletedValue());
buildJoinSql(sqlBuilder, queryWrapper, allTables);
@ -597,7 +595,7 @@ public class CommonsDialectImpl implements IDialect {
//逻辑删除条件已删除的数据不能被修改
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicNormalValue()));
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicNormalValue());
}
@ -679,7 +677,7 @@ public class CommonsDialectImpl implements IDialect {
//逻辑删除的情况下需要添加逻辑删除的条件
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicNormalValue()));
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicNormalValue());
}
//多租户
@ -737,7 +735,7 @@ public class CommonsDialectImpl implements IDialect {
if (StringUtil.isNotBlank(logicDeleteColumn)) {
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(wrap(getLogicNormalValue()));
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(getLogicNormalValue());
}
if (ArrayUtil.isNotEmpty(tenantIdArgs)) {
@ -838,13 +836,21 @@ public class CommonsDialectImpl implements IDialect {
}
protected String getLogicNormalValue() {
return FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete().toString();
protected Object getLogicNormalValue() {
Object normalValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete();
if (normalValueOfLogicDelete instanceof Number) {
return normalValueOfLogicDelete;
}
return "\"" + normalValueOfLogicDelete.toString() + "\"";
}
protected String getLogicDeletedValue(){
return FlexGlobalConfig.getDefaultConfig().getDeletedValueOfLogicDelete().toString();
protected Object getLogicDeletedValue() {
Object deletedValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getDeletedValueOfLogicDelete();
if (deletedValueOfLogicDelete instanceof Number) {
return deletedValueOfLogicDelete;
}
return "\"" + deletedValueOfLogicDelete.toString() + "\"";
}
}