Yangzw пре 10 месеци
родитељ
комит
b82faa2d16

+ 3 - 5
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java

@@ -36,8 +36,6 @@ import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.LongStream;
 
 import cn.newfeifan.mall.module.distri.controller.admin.ordercalc.vo.*;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ordercalc.OrderCalcDO;
@@ -191,11 +189,11 @@ public class OrderCalcServiceImpl implements OrderCalcService {
         tradeOrderDO.forEach(k -> {
 
             // 计算单个订单的总单价
-            LongStream priceStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getPrice);
+            Long priceStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getPrice).sum();
             // 计算单个订单的总成本
-            LongStream longStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getCostPrice);
+            Long longStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getCostPrice).sum();
             // 计算当个订单的总数量
-            IntStream intStream = k.getOrderItemMessages().stream().mapToInt(OrderItemMessage::getProductCount);
+            Integer intStream = k.getOrderItemMessages().stream().mapToInt(OrderItemMessage::getProductCount).sum();
 
             BigDecimal price = new BigDecimal(String.valueOf(priceStream));
             BigDecimal costPrice = new BigDecimal(String.valueOf(longStream));

+ 11 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/partitioncrash/PartitionCrashServiceImpl.java

@@ -6,6 +6,7 @@ import cn.newfeifan.mall.module.distri.controller.admin.integral.vo.IntegralSave
 import cn.newfeifan.mall.module.distri.controller.admin.partitionbrothers.vo.PartitionBrothersSaveReqVO;
 import cn.newfeifan.mall.module.distri.controller.admin.partitionson.vo.PartitionSonSaveReqVO;
 import cn.newfeifan.mall.module.distri.controller.admin.ptprofit.vo.PtProfitSaveReqVO;
+import cn.newfeifan.mall.module.distri.controller.admin.sharepath.vo.SharePathSaveReqVO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.duser.DuserDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ordercalc.OrderCalcDO;
@@ -176,6 +177,15 @@ public class PartitionCrashServiceImpl implements PartitionCrashService {
             Long parent = sonAndParent.get(k.getUserId());
             IntegralDO parentIntegralDo = integralDOMap.get(parent);
 
+            if (parentIntegralDo == null) {
+                sharePathService.createSharePath(SharePathSaveReqVO.builder()
+                        .ancestor(PT_ID)
+                        .descendant(k.getUserId())
+                        .build());
+                parentIntegralDo = integralDOMap.get(PT_ID);
+            }
+
+
             // 创建一个分区编号
             String todayNo = crashTodayNo(k.getUserId());
             String yesterdayNo = crashYesterdayNo(k.getUserId());
@@ -320,7 +330,7 @@ public class PartitionCrashServiceImpl implements PartitionCrashService {
                 // 当前平台总积分
 //                Integer ptTotalAdd = ptProfit.getPtTotalAdd();
 
-                if(entry.getValue() == 0){
+                if (entry.getValue() == 0) {
                     continue;
                 }
 

+ 30 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -6,6 +6,8 @@ import cn.newfeifan.mall.framework.common.pojo.CommonResult;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.module.distri.mq.message.order.CalcMessage;
 import cn.newfeifan.mall.module.distri.mq.message.order.DistriOrderMessage;
+import cn.newfeifan.mall.module.distri.mq.message.order.OrderCalcMessage;
+import cn.newfeifan.mall.module.distri.mq.message.order.OrderItemMessage;
 import cn.newfeifan.mall.module.member.api.user.MemberUserApi;
 import cn.newfeifan.mall.module.member.api.user.dto.MemberUserRespDTO;
 import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
@@ -38,6 +40,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertList;
@@ -249,8 +252,34 @@ public class TradeOrderController {
     public CommonResult<String> startCalc(@RequestParam("orderIds") List<Long> orderIds) {
 //        List<DistriOrderMessage> appTradeOrderDetailRespVos = tradeOrderQueryService.queryAllOrder();
         List<DistriOrderMessage> appTradeOrderDetailRespVos = tradeOrderQueryService.queryAllOrder(orderIds);
-        CalcMessage calcMessage = CalcMessage.builder().distriOrderMessages(appTradeOrderDetailRespVos).build();
+
+
+        Map<Long, List<OrderItemMessage>> orderItemMessageGroupBy = appTradeOrderDetailRespVos.stream()
+                .map(k -> OrderItemMessage.builder().price(k.getPrice())
+                        .productCount(k.getProductCount())
+                        .costPrice(k.getCostPrice())
+                        .orderId(k.getOrderId())
+                        .totalPrice(k.getTotalPrice()).build())
+                .collect(Collectors.groupingBy(OrderItemMessage::getOrderId));
+
+        List<OrderCalcMessage> orderCalcMessages = appTradeOrderDetailRespVos.stream().map(k -> {
+            OrderCalcMessage orderCalcMessage = OrderCalcMessage.builder()
+                    .orderId(k.getOrderId())
+                    .name(k.getName())
+                    .nickName(k.getNickName())
+                    .no(k.getNo())
+                    .merchantId(k.getMerchantId())
+                    .shopId(k.getShopId())
+                    .userId(k.getUserId()).build();
+            List<OrderItemMessage> orderItemMessages = orderItemMessageGroupBy.get(k.getOrderId());
+            orderCalcMessage.setOrderItemMessages(orderItemMessages);
+            return orderCalcMessage;
+        }).collect(Collectors.toList());
+
+
+        CalcMessage calcMessage = CalcMessage.builder().orderCalcMessages(orderCalcMessages).distriOrderMessages(appTradeOrderDetailRespVos).build();
         distriOrderProducer.sendDistriOrderMessage(calcMessage);
+
         return success("success");
     }
 

+ 1 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/job/order/TradeOrderAutoCalcJob.java

@@ -11,7 +11,6 @@ import cn.newfeifan.mall.module.trade.service.order.TradeOrderQueryService;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -39,6 +38,7 @@ public class TradeOrderAutoCalcJob implements JobHandler {
                 .map(k -> OrderItemMessage.builder().price(k.getPrice())
                         .productCount(k.getProductCount())
                         .costPrice(k.getCostPrice())
+                        .orderId(k.getOrderId())
                         .totalPrice(k.getTotalPrice()).build())
                 .collect(Collectors.groupingBy(OrderItemMessage::getOrderId));