关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 9835|回复: 0

doMultiFieldsOrder多字段排序方法存在问题

[复制链接]
发表于 2022-6-17 13:57:30 | 显示全部楼层 |阅读模式
# 版本号:3.2.0

# 问题描述:
[size=13.0667px]org.jeecg.common.system.query.QueryGenerator 对象[size=13.0667px]doMultiFieldsOrder();多字段排序方法存在问题[size=13.0667px]没有读取注解 @TableField 里 value 的值。
# 截图&代码:

/**多字段排序 TODO 需要修改前端*/
private static void doMultiFieldsOrder(QueryWrapper<?> queryWrapper,Map<String, String[]> parameterMap) {
   String column=null,order=null;
   if(parameterMap!=null&& parameterMap.containsKey(ORDER_COLUMN)) {
      column = parameterMap.get(ORDER_COLUMN)[0];
   }
   if(parameterMap!=null&& parameterMap.containsKey(ORDER_TYPE)) {
      order = parameterMap.get(ORDER_TYPE)[0];
   }
       log.debug("排序规则>>:" + column + ",排序方式:" + order);
   if (oConvertUtils.isNotEmpty(column) && oConvertUtils.isNotEmpty(order)) {
      //字典字段,去掉字典翻译文本后缀
      if(column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
         column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
      }
      //SQL注入check
      SqlInjectionUtil.filterContent(column);

      //update-begin--Author:scott  Date:20210531 for36 多条件排序无效问题修正-------
      // 排序规则修改
      // 将现有排序 _ 前端传递排序条件{....,column: 'column1,column2',order: 'desc'} 翻译成sql "column1,column2 desc"
      // 修改为 _ 前端传递排序条件{....,column: 'column1,column2',order: 'desc'} 翻译成sql "column1 desc,column2 desc"
      if (order.toUpperCase().indexOf(ORDER_TYPE_ASC)>=0) {
         //queryWrapper.orderByAsc(oConvertUtils.camelToUnderline(column));
         String columnStr = oConvertUtils.camelToUnderline(column);
         String[] columnArray = columnStr.split(",");
         queryWrapper.orderByAsc(Arrays.asList(columnArray));
      } else {
         //queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
         String columnStr = oConvertUtils.camelToUnderline(column);
         String[] columnArray = columnStr.split(",");
         queryWrapper.orderByDesc(Arrays.asList(columnArray));
      }
      //update-end--Author:scott  Date:20210531 for36 多条件排序无效问题修正-------
   }
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表