mybatisPlus 对字符串字段转数字然后进行排序
示例代码:
@Override public IPage<DeviceAlarmSignalConfigVO> findPage(DeviceAlarmSignalConfigQueryRO query, CurrentUser user) { query.setFirmCode(user.getFirmCode()); IPage<DeviceAlarmSignalConfig> requestPage = new Page<>(query.getPage(), query.getLimit()); QueryWrapper<DeviceAlarmSignalConfig> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(StrUtil.isNotEmpty(query.getConfigName()), DeviceAlarmSignalConfig::getConfigName, query.getConfigName()) .eq(StrUtil.isNotEmpty(query.getFirmCode()), DeviceAlarmSignalConfig::getFirmCode, query.getFirmCode()) .like(StrUtil.isNotEmpty(query.getSignalName()), DeviceAlarmSignalConfig::getSignalName, query.getSignalName()) .eq(Objects.nonNull(query.getSignalType()), DeviceAlarmSignalConfig::getSignalType, query.getSignalType()); // 设置排序情况 if (StrUtil.isEmpty(query.getDescs()) && StrUtil.isEmpty(query.getAscs())) { // 默认排序 queryWrapper.lambda().orderByAsc(DeviceAlarmSignalConfig::getConfigName); queryWrapper.orderByAsc("IFNULL(CAST(signal_code AS SIGNED), 999999)"); } else { // 自定义排序 IcpQuery.sortByDiy(query, queryWrapper, DeviceAlarmSignalConfig.class); } IPage<DeviceAlarmSignalConfig> page = this.page(requestPage, queryWrapper); IPage<DeviceAlarmSignalConfigVO> voPage = DeviceAlarmSignalConfigConverter.INSTANCE.vo(page); return voPage; }
主要使用此行代码实现:queryWrapper.orderByAsc("IFNULL(CAST(signal_code AS SIGNED), 999999)");
⎛⎝官萧何⎠⎞一只快乐的爪哇程序猿;邮箱:1570608034@qq.com

浙公网安备 33010602011771号