From 3ee313b1a3fe1dd8f96b8832f6cd70f83b930c96 Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 21 Jul 2025 15:02:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(DeadlineOrderJob):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=80=BE=E6=9C=9F=E5=95=86=E5=93=81=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E5=A7=93?= =?UTF-8?q?=E5=90=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用 UpdateWrapper 替代直接更新实体来清除商品关联,确保字段正确设置为 null 在逾期通知和日志中添加用户姓名信息,提高可追溯性 --- .../customize/service/job/DeadlineOrderJob.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/customize/service/job/DeadlineOrderJob.java b/agileboot-admin/src/main/java/com/agileboot/admin/customize/service/job/DeadlineOrderJob.java index 8ebb34b..9e84ab6 100644 --- a/agileboot-admin/src/main/java/com/agileboot/admin/customize/service/job/DeadlineOrderJob.java +++ b/agileboot-admin/src/main/java/com/agileboot/admin/customize/service/job/DeadlineOrderJob.java @@ -19,6 +19,7 @@ import com.agileboot.domain.shop.order.db.ShopOrderService; import com.agileboot.domain.shop.paymentOperationLog.PaymentOperationLogApplicationService; import com.agileboot.domain.shop.paymentOperationLog.command.AddPaymentOperationLogCommand; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -136,9 +137,12 @@ public class DeadlineOrderJob { shopOrderGoodsService.updateById(orderGoods); // 更新数据库 // 2. 将商品从智能柜格口下架 - cabinetCell.setGoodsId(null); // 清除关联商品ID - cabinetCell.setUsageStatus(1); // 使用状态改为1-空闲 - cabinetCellService.updateById(cabinetCell); // 更新数据库 + // 使用 UpdateWrapper 更新字段为 null + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("cell_id", cabinetCell.getCellId()); // 根据格口 ID 确定更新记录 + updateWrapper.set("goods_id", null); // 设置商品 ID 为 null + updateWrapper.set("usage_status", 1); // 设置使用状态为 1-空闲 + cabinetCellService.update(updateWrapper); // 执行更新操作 log.info("成功处理逾期商品:订单商品ID[{}]状态更新为已逾期,并从格口ID[{}]下架。", orderGoods.getOrderGoodsId(), cabinetCell.getCellId()); @@ -175,7 +179,7 @@ public class DeadlineOrderJob { paymentOperationLogCommand.setOperationType("DeadlineOrder"); paymentOperationLogCommand.setStatus(1); paymentOperationLogCommand.setRemark( - String.format("逾期订单商品:订单号[%s], 商品ID[%s], 名称[%s]。创建时间[%s], 归还期限[%s天], 截止日期[%s].", + String.format("逾期订单商品:用户姓名[%s], 订单号[%s], 商品ID[%s], 名称[%s]。创建时间[%s], 归还期限[%s天], 截止日期[%s].", order.getName(), order.getOrderId(), orderGoods.getOrderGoodsId(), orderGoods.getGoodsName(), DateUtil.formatDateTime(order.getCreateTime()), returnDeadlineDays, DateUtil.formatDateTime(deadlineDate))); paymentOperationLogCommand.initBaseEntity(); paymentOperationLogApplicationService.addPaymentOperationLog(paymentOperationLogCommand); @@ -196,7 +200,7 @@ public class DeadlineOrderJob { List articles = new ArrayList<>(); NewsArticle article = new NewsArticle(); article.setTitle("逾期商品自动下架通知"); - article.setDescription(String.format("订单号: %s, 商品名称: %s, 创建时间: %s, 归还期限: %s天, 截止日期: %s", + article.setDescription(String.format("用户姓名: %s, 订单号: %s, 商品名称: %s, 创建时间: %s, 归还期限: %s天, 截止日期: %s", order.getName(), order.getOrderId(), orderGoods.getGoodsName(), DateUtil.formatDateTime(order.getCreateTime()), returnDeadlineDays, DateUtil.formatDateTime(deadlineDate))); article.setPicurl(orderGoods.getCoverImg()); article.setUrl("http://wxshop.ab98.cn/shop-api/api/shop/qy/wechatAuth");