From 1b0c2c1b1fbf11c8ce9f2101e26146f58ea39612 Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Mon, 22 Jun 2026 18:22:20 +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 --- hiver-admin/test-output/test-report.html | 16 ++-- .../core/common/constant/SettingConstant.java | 4 + .../mall/controller/WorkerController.java | 13 ++++ .../dao/mapper/WorkerRelaPriceMapper.java | 2 + .../cc/hiver/mall/mq/OrderAsyncProducer.java | 7 ++ .../cc/hiver/mall/mq/OrderDelayConsumer.java | 47 +++++++++++- .../mybatis/MallDeliveryOrderServiceImpl.java | 66 +++++++++++++++- .../mybatis/MallOrderGroupServiceImpl.java | 11 ++- .../mybatis/MallOrderServiceImpl.java | 25 ++++-- .../mybatis/MallRefundRecordServiceImpl.java | 76 +++++++++++++++++-- .../mapper/WorkerRelaPriceMapper.xml | 3 + 11 files changed, 241 insertions(+), 29 deletions(-) diff --git a/hiver-admin/test-output/test-report.html b/hiver-admin/test-output/test-report.html index 2c238866..163ca56c 100644 --- a/hiver-admin/test-output/test-report.html +++ b/hiver-admin/test-output/test-report.html @@ -35,7 +35,7 @@ Hiver
  • -ÁùÔÂ 21, 2026 16:41:05 +ÁùÔÂ 22, 2026 17:45:41
  • @@ -84,7 +84,7 @@

    passTest

    -

    16:41:06 ÏÂÎç / 0.024 secs

    +

    17:45:43 ÏÂÎç / 0.031 secs

    @@ -92,9 +92,9 @@
    #test-id=1
    passTest
    -06.21.2026 16:41:06 -06.21.2026 16:41:06 -0.024 secs +06.22.2026 17:45:43 +06.22.2026 17:45:43 +0.031 secs
    @@ -104,7 +104,7 @@ Pass - 16:41:06 + 17:45:43 Test passed @@ -128,13 +128,13 @@

    Started

    -

    ÁùÔÂ 21, 2026 16:41:05

    +

    ÁùÔÂ 22, 2026 17:45:41

    Ended

    -

    ÁùÔÂ 21, 2026 16:41:06

    +

    ÁùÔÂ 22, 2026 17:45:43

    diff --git a/hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java b/hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java index 052a47f2..1c20eaf6 100644 --- a/hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java +++ b/hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java @@ -109,6 +109,10 @@ public interface SettingConstant { SMS_TIMEOUT, // 中转å•商家é€è¾¾åŽæ ¡å†…å–è´§è¶…æ—¶æé†’ SMS_TRANSFER, + // 订å•被拒ç»é€€æ¬¾ï¼Œé€šçŸ¥ç”¨æˆ· + SMS_REFUNDUSER, + // 用户申请é…é€å‘˜å”®åŽï¼Œé€šçŸ¥é…é€å‘˜ + SMS_REFUNDWORKER, //订å•退款 SMS_ORDERRETURN } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java index 36b6e6e4..683bf819 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java @@ -298,6 +298,8 @@ public class WorkerController { private Integer orderType; /** é€è´§åŒºåŸŸid(用户收货区域) */ private String putAreaId; + /** 佣金上é™ï¼šæ”¹æ´¾æ—¶ä¼ å½“å‰é…é€å•总佣金,åªè¿”回接å•佣金ä¸è¶…过该金é¢çš„é…é€å‘˜ */ + private BigDecimal commissionAmount; /** 交易ä¿éšœï¼štrue åªæŸ¥ rebate_amount > 0 çš„é…é€å‘˜ */ private Boolean baozhang; /** 相åŒåœ°å€ï¼štrue åªæŸ¥æ‰‹ä¸Šæœ‰ç›¸åŒé€è´§åŒºåŸŸè®¢å•çš„é…é€å‘˜ */ @@ -325,6 +327,13 @@ public class WorkerController { public Result> getMatchingWorkerList(@RequestBody WorkerMatchDTO dto) { int pageNum = dto.getPageNum() != null && dto.getPageNum() > 0 ? dto.getPageNum() : 1; int pageSize = dto.getPageSize() != null && dto.getPageSize() > 0 ? dto.getPageSize() : 10; + if (dto.getCommissionAmount() != null + && (StrUtil.isBlank(dto.getShopAreaId()) || StrUtil.isBlank(dto.getPutAreaId()))) { + IPage emptyPage = new Page<>(pageNum, pageSize); + emptyPage.setRecords(Collections.emptyList()); + emptyPage.setTotal(0); + return new ResultUtil>().setData(emptyPage); + } // ============ 1. 从缓存获å–当å‰åŒºåŸŸæ‰€æœ‰åœ¨çº¿é…é€å‘˜ ============ List workerRedisVoList = null; @@ -372,6 +381,9 @@ public class WorkerController { if (StrUtil.isNotBlank(dto.getPutAreaId()) && !dto.getPutAreaId().equals(rp.getPutAreaId())) continue; // 订å•ç±»åž‹åŒ¹é… if (dto.getOrderType() != null && !dto.getOrderType().equals(rp.getOrderType())) continue; + // 改派时åªå…许选择接å•佣金ä¸è¶…过当å‰é…é€å•总佣金的规则 + if (dto.getCommissionAmount() != null + && (rp.getOrderBkge() == null || rp.getOrderBkge().compareTo(dto.getCommissionAmount()) > 0)) continue; matchedRule = rp; break; } @@ -473,6 +485,7 @@ public class WorkerController { dto.getShopAreaId(), dto.getOrderType(), dto.getPutAreaId(), + dto.getCommissionAmount(), StrUtil.isBlank(dto.getKeyword()) ? null : dto.getKeyword().trim(), dto.getBaozhang(), dto.getXiangtong(), diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java index 5f6199a3..d1b3f7b3 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.math.BigDecimal; import java.util.List; @Repository @@ -38,6 +39,7 @@ public interface WorkerRelaPriceMapper extends BaseMapper { @Param("shopAreaId") String shopAreaId, @Param("orderType") Integer orderType, @Param("putAreaId") String putAreaId, + @Param("commissionAmount") BigDecimal commissionAmount, @Param("keyword") String keyword, @Param("baozhang") Boolean baozhang, @Param("xiangtong") Boolean xiangtong, diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncProducer.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncProducer.java index 6ee09e2b..5f84054a 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncProducer.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncProducer.java @@ -78,7 +78,14 @@ public class OrderAsyncProducer { * @param delayMillis 需è¦å»¶è¿Ÿçš„æ¯«ç§’æ•° */ public void sendDelayMessage(String orderId, String delayType, long delayMillis) { + sendDelayMessage(orderId, delayType, delayMillis, null); + } + + public void sendDelayMessage(String orderId, String delayType, long delayMillis, Map extraParams) { Map msgBody = new HashMap<>(); + if (extraParams != null) { + msgBody.putAll(extraParams); + } msgBody.put("orderId", orderId); msgBody.put("delayType", delayType); msgBody.put("timestamp", System.currentTimeMillis()); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderDelayConsumer.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderDelayConsumer.java index 61a1a084..0b93d7f4 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderDelayConsumer.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderDelayConsumer.java @@ -11,6 +11,8 @@ import cc.hiver.mall.entity.MallOrder; import cc.hiver.mall.entity.MallRefundRecord; import cc.hiver.mall.entity.Shop; import cc.hiver.mall.service.mybatis.MallRefundRecordService; +import cc.hiver.mall.utils.WaitOrderCacheUtil; +import cc.hiver.mall.utils.WorkerOrderCacheUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -52,6 +54,12 @@ public class OrderDelayConsumer { @Autowired private cc.hiver.mall.utils.RefundOrderCacheUtil refundOrderCacheUtil; + @Autowired + private WorkerOrderCacheUtil workerOrderCacheUtil; + + @Autowired + private WaitOrderCacheUtil waitOrderCacheUtil; + @RabbitListener(queues = OrderQueueConfig.DEAD_QUEUE) public void processDelayMessage(String messageBody) { log.info("ã€è®¢å•延时处ç†ã€‘接收到死信超时消æ¯: {}", messageBody); @@ -59,13 +67,14 @@ public class OrderDelayConsumer { JSONObject msg = JSON.parseObject(messageBody); String orderId = msg.getString("orderId"); String delayType = msg.getString("delayType"); + String assignedWorkerId = msg.getString("assignedWorkerId"); switch (delayType) { case "Worker_Timeout_5m": - handleWorkerTimeout5m(orderId); + handleWorkerTimeout5m(orderId, assignedWorkerId); break; case "Worker_Timeout_10m": - handleWorkerTimeout10m(orderId); + handleWorkerTimeout10m(orderId, assignedWorkerId); break; case "NoWorker_Timeout_10m": handleNoWorkerTimeout10m(orderId); @@ -92,12 +101,15 @@ public class OrderDelayConsumer { } } - private void handleWorkerTimeout5m(String orderId) { + private void handleWorkerTimeout5m(String orderId, String assignedWorkerId) { MallDeliveryOrder delivery = getDeliveryOrder(orderId); if (delivery == null || delivery.getStatus() != 0 || StringUtils.isBlank(delivery.getWorkerId())) { // 已被处ç†ã€çжæ€ä¸å†æ˜¯0待接å•,或者已ç»ä¸æ˜¯æŒ‡å®šå•,安全撤销(忽略) return; } + if (StringUtils.isBlank(assignedWorkerId) || !assignedWorkerId.equals(delivery.getWorkerId())) { + return; + } log.info("ã€è®¢å•延时处ç†ã€‘指定é…é€å• 5分钟未接å•,å‘é…é€å‘˜å‘é€çŸ­ä¿¡é€šçŸ¥ orderId={}", orderId); // å‘é€ SMS_TIMEOUT if (StringUtils.isNotBlank(delivery.getWorkerPhone())) { @@ -105,11 +117,15 @@ public class OrderDelayConsumer { } } - private void handleWorkerTimeout10m(String orderId) { + private void handleWorkerTimeout10m(String orderId, String assignedWorkerId) { MallDeliveryOrder delivery = getDeliveryOrder(orderId); if (delivery == null || delivery.getStatus() != 0 || StringUtils.isBlank(delivery.getWorkerId())) { return; } + if (StringUtils.isBlank(assignedWorkerId) || !assignedWorkerId.equals(delivery.getWorkerId())) { + return; + } + String workerId = delivery.getWorkerId(); log.info("ã€è®¢å•延时处ç†ã€‘指定é…é€å• 10分钟未接å•,移除é…é€å‘˜å¹¶é€šçŸ¥ç”¨æˆ· orderId={}", orderId); // æ›´æ–°é…é€å•(去掉workerId,退回大厅) LambdaUpdateWrapper uw = new LambdaUpdateWrapper<>(); @@ -117,6 +133,7 @@ public class OrderDelayConsumer { .set(MallDeliveryOrder::getWorkerId, (String)null).set(MallDeliveryOrder::getWorkerName, (String)null) .set(MallDeliveryOrder::getWorkerPhone, (String)null); mallDeliveryOrderMapper.update(null, uw); + moveAssignedOrderBackToWaitCache(workerId, delivery); // 给用户通知 if (StringUtils.isNotBlank(delivery.getReceiverPhone())) { @@ -133,6 +150,28 @@ public class OrderDelayConsumer { } } + private void moveAssignedOrderBackToWaitCache(String workerId, MallDeliveryOrder delivery) { + if (delivery == null || StringUtils.isBlank(delivery.getId())) { + return; + } + MallDeliveryOrder cacheDelivery = StringUtils.isBlank(workerId) ? null : workerOrderCacheUtil.get(workerId, delivery.getId()); + if (cacheDelivery == null && StringUtils.isNotBlank(delivery.getRegionId())) { + cacheDelivery = waitOrderCacheUtil.get(delivery.getRegionId(), delivery.getId()); + } + if (StringUtils.isNotBlank(workerId)) { + workerOrderCacheUtil.remove(workerId, delivery.getId()); + } + if (cacheDelivery == null) { + cacheDelivery = delivery; + } + cacheDelivery.setWorkerId(null); + cacheDelivery.setWorkerName(null); + cacheDelivery.setWorkerPhone(null); + if (StringUtils.isNotBlank(cacheDelivery.getRegionId())) { + waitOrderCacheUtil.update(cacheDelivery.getRegionId(), cacheDelivery); + } + } + private void handleNoWorkerTimeout10m(String orderId) { MallDeliveryOrder delivery = getDeliveryOrder(orderId); if (delivery == null || delivery.getStatus() != 0 || StringUtils.isNotBlank(delivery.getWorkerId())) { 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 1c9d324b..5652332c 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 @@ -1106,9 +1106,31 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl uw = new LambdaUpdateWrapper<>(); uw.eq(MallDeliveryOrder::getId, deliveryId) @@ -1133,10 +1156,51 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl extraParams = new HashMap<>(); + extraParams.put("assignedWorkerId", delivery.getWorkerId()); + orderAsyncProducer.sendDelayMessage(delivery.getOrderId(), "Worker_Timeout_5m", 5 * 60 * 1000L, extraParams); + orderAsyncProducer.sendDelayMessage(delivery.getOrderId(), "Worker_Timeout_10m", 10 * 60 * 1000L, extraParams); + } + + private void syncReassignedWorkerCache(String oldWorkerId, String newWorkerId, MallDeliveryOrder delivery) { + if (delivery == null || StringUtils.isBlank(delivery.getId())) { + return; + } + MallDeliveryOrder cacheDelivery = null; + if (StringUtils.isNotBlank(delivery.getRegionId())) { + cacheDelivery = waitOrderCacheUtil.get(delivery.getRegionId(), delivery.getId()); + } + if (cacheDelivery == null && StringUtils.isNotBlank(oldWorkerId)) { + cacheDelivery = workerOrderCacheUtil.get(oldWorkerId, delivery.getId()); + } + if (StringUtils.isNotBlank(oldWorkerId)) { + workerOrderCacheUtil.remove(oldWorkerId, delivery.getId()); + } + if (cacheDelivery == null) { + cacheDelivery = delivery; + assembleOrderGoodsForDeliveries(Collections.singletonList(cacheDelivery)); + } + cacheDelivery.setWorkerId(newWorkerId); + cacheDelivery.setWorkerName(delivery.getWorkerName()); + cacheDelivery.setWorkerPhone(delivery.getWorkerPhone()); + + if (StringUtils.isNotBlank(cacheDelivery.getRegionId())) { + waitOrderCacheUtil.update(cacheDelivery.getRegionId(), cacheDelivery); + } + if (StringUtils.isNotBlank(newWorkerId)) { + workerOrderCacheUtil.put(newWorkerId, cacheDelivery); + } + } + @Override public MallDeliveryOrder selectByGroupId(String orderId) { return this.baseMapper.selectByGroupId(orderId); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java index 028d1737..2cc45588 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java @@ -32,10 +32,7 @@ import java.math.BigDecimal; import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -420,8 +417,10 @@ public class MallOrderGroupServiceImpl extends ServiceImpl extraParams = new HashMap<>(); + extraParams.put("assignedWorkerId", delivery.getWorkerId()); + orderAsyncProducer.sendDelayMessage(orderId, "Worker_Timeout_5m", 5 * 60 * 1000L, extraParams); + orderAsyncProducer.sendDelayMessage(orderId, "Worker_Timeout_10m", 10 * 60 * 1000L, extraParams); } else { // 抢å•大厅:10分钟校验 orderAsyncProducer.sendDelayMessage(orderId, "NoWorker_Timeout_10m", 10 * 60 * 1000L); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java index 030b1162..643e80fb 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java @@ -603,11 +603,13 @@ public class MallOrderServiceImpl extends ServiceImpl 跳过待商家接å•,直接进入待é…逿ˆ–待消费 if (DELIVERY_TYPE_EXPRESS == order.getDeliveryType()) { - updateOrderStatus(orderId, STATUS_WAIT_DELIVERY); + updateOrderStatus(orderId, STATUS_WAIT_DELIVERY, payTime); notifyShopDeliveryOrder(order); //用户当å‰è®¢å•缓存 MallOrderVO orderVO = buildVO(order, null, null, null); @@ -647,7 +649,10 @@ public class MallOrderServiceImpl extends ServiceImpl uw = new LambdaUpdateWrapper<>(); - uw.eq(MallOrder::getId, orderId).set(MallOrder::getStatus, STATUS_WAIT_PICKUP).set(MallOrder::getNumberCode, latestSeq); + uw.eq(MallOrder::getId, orderId) + .set(MallOrder::getStatus, STATUS_WAIT_PICKUP) + .set(MallOrder::getNumberCode, latestSeq) + .set(MallOrder::getPayTime, payTime); this.update(uw); MallOrderVO orderVO = buildVO(order, null, null, null); orderVO.setStatus(STATUS_WAIT_PICKUP); @@ -663,7 +668,7 @@ public class MallOrderServiceImpl extends ServiceImpl 改为待æˆå›¢ - updateOrderStatus(orderId, STATUS_WAIT_GROUP); + updateOrderStatus(orderId, STATUS_WAIT_GROUP, payTime); MallOrderVO orderVO = buildVO(order, null, null, null); orderVO.setStatus(STATUS_WAIT_GROUP); @@ -717,6 +722,7 @@ public class MallOrderServiceImpl extends ServiceImpl extraParams = new HashMap<>(); + extraParams.put("assignedWorkerId", delivery.getWorkerId()); + orderAsyncProducer.sendDelayMessage(orderId, "Worker_Timeout_5m", 5 * 60 * 1000L, extraParams); + orderAsyncProducer.sendDelayMessage(orderId, "Worker_Timeout_10m", 10 * 60 * 1000L, extraParams); } else { // 抢å•大厅:10分钟校验 orderAsyncProducer.sendDelayMessage(orderId, "NoWorker_Timeout_10m", 10 * 60 * 1000L); @@ -1827,8 +1835,15 @@ public class MallOrderServiceImpl extends ServiceImpl uw = new LambdaUpdateWrapper<>(); uw.eq(MallOrder::getId, orderId).set(MallOrder::getStatus, status); + if (payTime != null) { + uw.set(MallOrder::getPayTime, payTime); + } this.update(uw); } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallRefundRecordServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallRefundRecordServiceImpl.java index 07a1b420..6c88af6a 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallRefundRecordServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallRefundRecordServiceImpl.java @@ -1,13 +1,17 @@ package cc.hiver.mall.serviceimpl.mybatis; import cc.hiver.core.common.constant.DealingsRecordConstant; +import cc.hiver.core.common.constant.SettingConstant; +import cc.hiver.core.common.sms.SmsUtil; import cc.hiver.core.common.utils.SnowFlakeUtil; import cc.hiver.core.entity.Worker; +import cc.hiver.core.serviceimpl.JPushServiceImpl; import cc.hiver.core.serviceimpl.WorkerServiceImpl; import cc.hiver.mall.dao.mapper.*; import cc.hiver.mall.entity.*; import cc.hiver.mall.pojo.query.MallRefundRecordPageQuery; import cc.hiver.mall.pojo.vo.MallOrderVO; +import cc.hiver.mall.service.ShopService; import cc.hiver.mall.service.mybatis.DealingsRecordService; import cc.hiver.mall.service.mybatis.MallOrderService; import cc.hiver.mall.service.mybatis.MallRefundRecordService; @@ -58,6 +62,15 @@ public class MallRefundRecordServiceImpl extends ServiceImpl uw = new LambdaUpdateWrapper<>(); uw.eq(MallOrder::getId, orderId).set(MallOrder::getStatus, status); diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml index 623fee08..c7d25817 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml @@ -103,6 +103,9 @@ AND p.order_type = #{orderType} + + AND p.order_bkge <= #{commissionAmount} + /* å…³è”é…é€è®¢å•表:LEFT JOIN ä¿ç•™æ— ä»»ä½•订å•çš„é…é€å‘˜ */ LEFT JOIN mall_delivery_order d ON d.worker_id = w.worker_id