From 77d00b3450a6b24a1571631343a8a7742d3b2691 Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Sun, 12 Apr 2026 16:07:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=8B=BC=E5=9B=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MallDeliveryOrderController.java | 34 +++++++++++ .../mybatis/MallDeliveryOrderService.java | 17 ++++++ .../mybatis/MallDeliveryOrderServiceImpl.java | 56 +++++++++++++++++++ 3 files changed, 107 insertions(+) diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java index 41a85fb7..0c7ad296 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java @@ -247,4 +247,38 @@ public class MallDeliveryOrderController { return ResultUtil.error(e.getMessage()); } } + + /** + * 用户增加配送费(在现有配送费基础上追加) + */ + @PostMapping("/addFee") + @ApiOperation(value = "增加配送费", notes = "抢单大厅的订单,用户可以在现有配送费基础上追加配送费") + public Result addDeliveryFee(@RequestParam String orderId,@RequestParam String deliveryId, + @RequestParam BigDecimal additionalFee,@RequestParam BigDecimal olditionalFee) { + try { + mallDeliveryOrderService.addDeliveryFee(orderId,deliveryId, additionalFee,olditionalFee); + return ResultUtil.success("配送费增加成功"); + } catch (Exception e) { + log.error("增加配送费失败: {}", e.getMessage(), e); + return ResultUtil.error(e.getMessage()); + } + } + + /** + * 重新指定配送员 + */ + @PostMapping("/reassignWorker") + @ApiOperation(value = "重新指定配送员", notes = "待接单状态的订单,用户可以重新指定配送员") + public Result reassignWorker(@RequestParam String deliveryId, + @RequestParam String newWorkerId, + @RequestParam String newWorkerName, + @RequestParam String newWorkerPhone) { + try { + mallDeliveryOrderService.reassignWorker(deliveryId, newWorkerId, newWorkerName, newWorkerPhone); + return ResultUtil.success("重新指定配送员成功"); + } catch (Exception e) { + log.error("重新指定配送员失败: {}", e.getMessage(), e); + return ResultUtil.error(e.getMessage()); + } + } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java index 32896493..0f265c75 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java @@ -5,6 +5,7 @@ import cc.hiver.mall.pojo.query.MallDeliveryOrderPageQuery; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -63,5 +64,21 @@ public interface MallDeliveryOrderService extends IService { List> countOrdersByStatus(String workerId); + /** + * 用户增加配送费(在现有 deliveryFee 基础上追加) + * @param deliveryId 配送单ID + * @param additionalFee 追加的配送费金额 + */ + void addDeliveryFee(String orderId,String deliveryId, BigDecimal additionalFee,BigDecimal olditionalFee); + + /** + * 重新指定配送员(仅待接单状态可操作) + * @param deliveryId 配送单ID + * @param newWorkerId 新配送员ID + * @param newWorkerName 新配送员名称 + * @param newWorkerPhone 新配送员电话 + */ + void reassignWorker(String deliveryId, String newWorkerId, String newWorkerName, String newWorkerPhone); + MallDeliveryOrder selectByGroupId(String orderId); } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java index 22f41397..cb6a9b20 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java @@ -396,6 +396,62 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl uwOrder = new LambdaUpdateWrapper<>(); + uwOrder.eq(MallOrder::getId, orderId) + .set(MallOrder::getDeliveryFee, newOrderFee); + mallOrderService.update(uwOrder); + + LambdaUpdateWrapper uw = new LambdaUpdateWrapper<>(); + uw.eq(MallDeliveryOrder::getId, deliveryId) + .set(MallDeliveryOrder::getDeliveryFee, newFee); + this.update(uw); + log.info("配送单 {} 配送费增加 {},更新后为 {}", deliveryId, additionalFee, newFee); + } + + /** + * 重新指定配送员(仅待接单状态可操作) + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void reassignWorker(String deliveryId, String newWorkerId, String newWorkerName, String newWorkerPhone) { + MallDeliveryOrder delivery = this.getById(deliveryId); + if (delivery == null) { + throw new RuntimeException("配送单不存在"); + } + if (delivery.getStatus() != STATUS_WAIT_ACCEPT) { + throw new RuntimeException("只有待接单状态的配送单才能重新指定配送员"); + } + + LambdaUpdateWrapper uw = new LambdaUpdateWrapper<>(); + uw.eq(MallDeliveryOrder::getId, deliveryId) + .set(MallDeliveryOrder::getWorkerId, newWorkerId) + .set(MallDeliveryOrder::getWorkerName, newWorkerName) + .set(MallDeliveryOrder::getWorkerPhone, newWorkerPhone); + this.update(uw); + log.info("配送单 {} 重新指定配送员: workerId={}, workerName={}", deliveryId, newWorkerId, newWorkerName); + } + @Override public MallDeliveryOrder selectByGroupId(String orderId) { return this.baseMapper.selectByGroupId(orderId);