Эх сурвалжийг харах

feat: 降序排序null最后

weijianghai 9 сар өмнө
parent
commit
4acae70fad

+ 23 - 0
src/main/java/com/nokia/financeapi/config/DescNullsLastInterceptor.java

@@ -0,0 +1,23 @@
+package com.nokia.financeapi.config;
+
+import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
+public class DescNullsLastInterceptor implements InnerInterceptor {
+    @Override
+    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds,
+                            ResultHandler resultHandler, BoundSql boundSql) {
+        String sql = boundSql.getSql();
+        if (!StringUtils.containsIgnoreCase(sql, "desc")) {
+            return;
+        }
+        String sqlNew = sql.replaceAll("(?i)(\\bdesc\\b(?!\\s+nulls\\s+last\\b))(?=[^a-z]|$)", "$1 nulls last");
+        PluginUtils.mpBoundSql(boundSql).sql(sqlNew);
+    }
+}

+ 2 - 0
src/main/java/com/nokia/financeapi/config/MybatisPlusConfig.java

@@ -17,6 +17,8 @@ public class MybatisPlusConfig {
         MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
         // 添加分页拦截器
         interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
+        // 添加desc nulls last拦截器
+        interceptor.addInnerInterceptor(new DescNullsLastInterceptor());
         return interceptor;
     }
 }

+ 1 - 1
src/main/java/com/nokia/financeapi/service/car/CarReportService.java

@@ -32,7 +32,7 @@ public class CarReportService {
     private R<GetCarReportVo> getReport(GetCarReportDto dto) {
         GetCarReportVo vo = new GetCarReportVo();
         vo.setUrl("");
-        String object ="word".equals(dto.getFileType()) ? "oss/reports/car/default.doc"
+        String object ="word".equals(dto.getFileType()) ? "oss/reports/car/default.docx"
                 : "oss/reports/car/default.pdf";
         if (dto.getEndDate() == null) {
             CarReportsPo po = carReportDao.getLatest(dto);

+ 1 - 1
src/main/java/com/nokia/financeapi/service/house/HouseReportService.java

@@ -52,7 +52,7 @@ public class HouseReportService {
     private R<GetHouseReportVo> getReport(GetHouseReportDto dto) {
         GetHouseReportVo vo = new GetHouseReportVo();
         vo.setUrl("");
-        String object ="word".equals(dto.getFileType()) ? "oss/reports/house/default.doc"
+        String object ="word".equals(dto.getFileType()) ? "oss/reports/house/default.docx"
                 : "oss/reports/house/default.pdf";
         if (dto.getEndDate() == null) {
             HouseReportsPo po = houseReportDao.getLatest(dto);