From 49e96cc15baf35d710fe3a049fb97aff6a1af132 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 25 二月 2025 19:35:33 +0800 Subject: [PATCH] 修改分佣逻辑 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java index 46a2b85..d4e8d6f 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java @@ -41,6 +41,9 @@ import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.*; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Slf4j @@ -142,6 +145,9 @@ throw new RuntimeException("根据类型(1=服务商品,2=单品商品)获取商品数据失败"); } List<Integer> goodsIds = data.stream().map(Goods::getId).collect(Collectors.toList()); + if(goodsIds.isEmpty()){ + return new ArrayList<>(); + } //查询符合商品类型的商品数据 List<ShoppingCart> list = this.list(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid) .in(ShoppingCart::getGoodsId, goodsIds).eq(ShoppingCart::getStatus, 1)); @@ -1428,8 +1434,26 @@ orderBalancePayment.setDistributionAmount(distributionAmount); orderBalancePaymentService.save(orderBalancePayment); } + + //异步线程执行分佣临时数据构建 + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy()); + threadPoolExecutor.execute(new Runnable() { + @Override + public void run() { + commissionService.calculationCommissionUser(); + commissionService.calculationCommissionShop(); + } + }); return R.ok(order.getId().toString()); } + + + + + + + + public String getNumber(Integer size){ @@ -1523,6 +1547,16 @@ for (Integer goodsId : goodsIds) { goodsClient.editGoodsNum(goodsId, 1); } + + //异步线程执行分佣临时数据构建 + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy()); + threadPoolExecutor.execute(new Runnable() { + @Override + public void run() { + commissionService.calculationCommissionUser(); + commissionService.calculationCommissionShop(); + } + }); return R.ok(); } -- Gitblit v1.7.1