Pārlūkot izejas kodu

springboot版本升级3.1.1->3.2.4

skyline 2 mēneši atpakaļ
vecāks
revīzija
0bac9e3c2c

+ 6 - 0
entity/pom.xml

@@ -24,6 +24,12 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>${mybatis-plus-boot-starter.version}</version>
         </dependency>
+        <!-- 显式指定 mybatis-spring 版本以支持 Spring Boot 3.2.x -->
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis-spring</artifactId>
+            <version>3.0.3</version>
+        </dependency>
         <!-- 联表查询插件 -->
         <dependency>
             <groupId>com.github.yulichang</groupId>

+ 1 - 1
entity/src/main/java/com/kym/entity/typehandle/InvoiceDetailBuyerInformationTypeHandle.java

@@ -17,7 +17,7 @@ public class InvoiceDetailBuyerInformationTypeHandle extends JacksonTypeHandler
     }
 
     @Override
-    protected Object parse(String json) {
+    public Object parse(String json) {
         try {
             return getObjectMapper().readValue(json, new TypeReference<FaPiao.BuyerInformation>() {
             });

+ 1 - 1
entity/src/main/java/com/kym/entity/typehandle/InvoiceDetailItemsTypeHandle.java

@@ -19,7 +19,7 @@ public class InvoiceDetailItemsTypeHandle extends JacksonTypeHandler {
     }
 
     @Override
-    protected Object parse(String json) {
+    public Object parse(String json) {
         try {
             return getObjectMapper().readValue(json, new TypeReference<List<FapiaoApplications.FapiaoItem>>() {
             });

+ 1 - 1
entity/src/main/java/com/kym/entity/typehandle/InvoiceDetailSellerInformationTypeHandle.java

@@ -17,7 +17,7 @@ public class InvoiceDetailSellerInformationTypeHandle extends JacksonTypeHandler
     }
 
     @Override
-    protected Object parse(String json) {
+    public Object parse(String json) {
         try {
             return getObjectMapper().readValue(json, new TypeReference<InvoiceBaseInfo.SellerInfo>() {
             });

+ 1 - 1
entity/src/main/java/com/kym/entity/typehandle/InvoiceOrderDetailListTypeHandle.java

@@ -19,7 +19,7 @@ public class InvoiceOrderDetailListTypeHandle extends JacksonTypeHandler {
     }
 
     @Override
-    protected Object parse(String json) {
+    public Object parse(String json) {
         try {
             return getObjectMapper().readValue(json, new TypeReference<List<InvoiceOrderDetail>>() {
             });

+ 10 - 6
pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.1</version>
+        <version>3.2.4</version>
         <relativePath/> <!-- lookup parent from repository -->
     </parent>
     <groupId>com.kym</groupId>
@@ -27,15 +27,19 @@
 
         <spring-boot.version>${project.parent.version}</spring-boot.version>
         <project.version>0.0.1-SNAPSHOT</project.version>
-        <!-- MyBatis-Plus: 3.5.3.2 -> 3.5.5 (bug修复和性能优化) -->
-        <mybatis-plus-boot-starter.version>3.5.5</mybatis-plus-boot-starter.version>
-        <mybatis-plus-generator.version>3.5.5</mybatis-plus-generator.version>
-        <mybatis-plus-join-boot-starter.version>1.5.2</mybatis-plus-join-boot-starter.version>
+        <!-- MyBatis-Plus: 3.5.5 -> 3.5.16 (Spring Boot 3.2.x 兼容性支持) -->
+        <mybatis-plus-boot-starter.version>3.5.16</mybatis-plus-boot-starter.version>
+        <mybatis-plus-generator.version>3.5.16</mybatis-plus-generator.version>
+        <!-- mybatis-plus-join: 1.5.2 -> 1.5.5 (修复 FieldStrategy.IGNORED 兼容性问题) -->
+        <mybatis-plus-join-boot-starter.version>1.5.5</mybatis-plus-join-boot-starter.version>
+        <!-- MyBatis-Plus JSqlParser: 3.5.9+ 分页插件独立依赖 -->
+        <mybatis-plus-jsqlparser.version>3.5.16</mybatis-plus-jsqlparser.version>
         <!-- WeChat Pay: 0.2.11 -> 0.2.14 (bug修复) -->
         <wechatpay.version>0.2.14</wechatpay.version>
         <!-- FastJSON2: 2.0.35 -> 2.0.52 (安全补丁和性能优化) -->
         <fastjson2.version>2.0.52</fastjson2.version>
-        <pagehelper-spring-boot-starter.version>1.4.7</pagehelper-spring-boot-starter.version>
+        <!-- PageHelper: 1.4.7 -> 2.1.0 (Spring Boot 3.2.x 兼容性支持) -->
+        <pagehelper-spring-boot-starter.version>2.1.0</pagehelper-spring-boot-starter.version>
         <!-- Freemarker: 2.3.32 -> 2.3.33 (bug修复) -->
         <freemarker.version>2.3.33</freemarker.version>
         <!-- Dynamic DataSource: 4.1.3 -> 4.3.1 (性能优化和bug修复) -->

+ 7 - 0
service/pom.xml

@@ -31,6 +31,13 @@
             <version>${project.version}</version>
         </dependency>
 
+        <!-- MyBatis-Plus JSqlParser: 3.5.9+ 分页插件独立依赖 -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-jsqlparser</artifactId>
+            <version>${mybatis-plus-jsqlparser.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>com.github.wechatpay-apiv3</groupId>
             <artifactId>wechatpay-java</artifactId>

+ 8 - 1
service/src/main/java/com/kym/service/miniapp/impl/UserServiceImpl.java

@@ -240,7 +240,14 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
             carsService.updateBatchById(cars);
             var wrapper = new QueryWrapper<Cars>();
             wrapper.eq("plate_no", userVo.getDefaultPlateNo());
-            carsService.saveOrUpdate(car, wrapper);
+            // MyBatis-Plus 3.5.9+ saveOrUpdate(T, Wrapper) 方法已移除,改为先查询再保存或更新
+            var existCar = carsService.getOne(wrapper);
+            if (existCar != null) {
+                car.setId(existCar.getId());
+                carsService.updateById(car);
+            } else {
+                carsService.save(car);
+            }
         }
     }
 

+ 2 - 1
service/src/main/java/com/kym/service/mybatisplus/MyBaseServiceImpl.java

@@ -71,7 +71,8 @@ public class MyBaseServiceImpl<M extends MyBaseMapper<T>, T> extends ServiceImpl
     }
 
     protected String getSqlStatement(MySqlMethod sqlMethod) {
-        return getSqlStatement(mapperClass, sqlMethod);
+        // MyBatis-Plus 3.5.9+ mapperClass 字段变为 private,使用 baseMapper.getClass() 替代
+        return getSqlStatement(this.baseMapper.getClass(), sqlMethod);
     }
 
     public static String getSqlStatement(Class<?> mapper, MySqlMethod sqlMethod) {