fix: XML 分页 #{qwSql} 参数补充逻辑删除等参数。https://gitee.com/mybatis-flex/mybatis-flex/issues/I9DUP1

This commit is contained in:
Suomm 2024-04-06 19:58:36 +08:00
parent b45fe81bed
commit dc9c7217cb
2 changed files with 16 additions and 4 deletions

View File

@ -21,11 +21,19 @@ import com.mybatisflex.core.field.FieldQueryBuilder;
import com.mybatisflex.core.mybatis.MappedStatementTypes;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.provider.EntitySqlProvider;
import com.mybatisflex.core.query.*;
import com.mybatisflex.core.query.CPI;
import com.mybatisflex.core.query.FunctionQueryColumn;
import com.mybatisflex.core.query.Join;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryCondition;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.row.Row;
import com.mybatisflex.core.table.TableInfo;
import com.mybatisflex.core.table.TableInfoFactory;
import com.mybatisflex.core.util.*;
import com.mybatisflex.core.util.ClassUtil;
import com.mybatisflex.core.util.CollectionUtil;
import com.mybatisflex.core.util.ConvertUtil;
import com.mybatisflex.core.util.MapperUtil;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
@ -1187,7 +1195,7 @@ public interface BaseMapper<T> {
ExecutorType executorType = FlexGlobalConfig.getDefaultConfig().getConfiguration().getDefaultExecutorType();
String mapperClassName = ClassUtil.getUsefulClass(this.getClass()).getName();
Map<String, Object> preparedParams = MapperUtil.preparedParams(page, queryWrapper, otherParams);
Map<String, Object> preparedParams = MapperUtil.preparedParams(this, page, queryWrapper, otherParams);
if (!dataSelectId.contains(".")) {
dataSelectId = mapperClassName + "." + dataSelectId;
}

View File

@ -33,6 +33,8 @@ import com.mybatisflex.core.query.QueryCondition;
import com.mybatisflex.core.query.QueryTable;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.relation.RelationManager;
import com.mybatisflex.core.table.TableInfo;
import com.mybatisflex.core.table.TableInfoFactory;
import org.apache.ibatis.exceptions.TooManyResultsException;
import org.apache.ibatis.session.defaults.DefaultSqlSession;
@ -300,7 +302,7 @@ public class MapperUtil {
}
public static Map<String, Object> preparedParams(Page<?> page, QueryWrapper queryWrapper, Map<String, Object> params) {
public static Map<String, Object> preparedParams(BaseMapper<?> baseMapper, Page<?> page, QueryWrapper queryWrapper, Map<String, Object> params) {
Map<String, Object> newParams = new HashMap<>();
if (params != null) {
@ -315,6 +317,8 @@ public class MapperUtil {
newParams.put("dbType", dbType != null ? dbType : FlexGlobalConfig.getDefaultConfig().getDbType());
if (queryWrapper != null) {
TableInfo tableInfo = TableInfoFactory.ofMapperClass(baseMapper.getClass());
tableInfo.appendConditions(null, queryWrapper);
preparedQueryWrapper(newParams, queryWrapper);
}