Sfoglia il codice sorgente

fix: rejectRefund 用 LambdaUpdateWrapper 显式设 null,修复 MyBatis-Plus 跳过 null 字段

MyBatis-Plus 默认 FieldStrategy.NOT_NULL,updateById 遇到 null 字段
不生成 SET 子句。rejectRefund 设 refundStatus=null 实际没写入数据库,
导致前端仍显示"退款审核中"。改用 lambdaUpdate().set(col, null) 强制更新。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 2 settimane fa
parent
commit
0e9b106da7

+ 7 - 8
haha-service/src/main/java/com/haha/service/impl/RefundServiceImpl.java

@@ -308,14 +308,13 @@ public class RefundServiceImpl extends ServiceImpl<RefundMapper, Refund> impleme
         refund.setUpdateTime(LocalDateTime.now());
         this.updateById(refund);
 
-        // 清除订单退款状态(refundAmount 保留,因为它记录的是累计已成功退款金额)
-        Order order = orderService.getById(refund.getOrderId());
-        if (order != null) {
-            order.setRefundStatus(null);
-            order.setCurrentRefundId(null);
-            order.setRefundReason(null);
-            orderService.updateById(order);
-        }
+        // 清除订单退款状态(用 LambdaUpdateWrapper 显式设 null,MyBatis-Plus 默认忽略 null 字段)
+        orderService.lambdaUpdate()
+                .set(Order::getRefundStatus, null)
+                .set(Order::getCurrentRefundId, null)
+                .set(Order::getRefundReason, null)
+                .eq(Order::getId, refund.getOrderId())
+                .update();
 
         log.info("退款申请已拒绝 - refundId: {}", refundId);
         return true;