|  | @@ -5,9 +5,7 @@ import cn.hutool.core.lang.Assert;
 | 
	
		
			
				|  |  |  import cn.hutool.core.map.MapUtil;
 | 
	
		
			
				|  |  |  import cn.hutool.core.util.ObjUtil;
 | 
	
		
			
				|  |  |  import cn.hutool.core.util.ObjectUtil;
 | 
	
		
			
				|  |  | -import cn.hutool.core.util.RandomUtil;
 | 
	
		
			
				|  |  |  import cn.hutool.extra.spring.SpringUtil;
 | 
	
		
			
				|  |  | -import cn.hutool.json.JSONUtil;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.core.KeyValue;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.util.json.JsonUtils;
 | 
	
	
		
			
				|  | @@ -22,7 +20,6 @@ import cn.newfeifan.mall.module.distri.dal.dataobject.ptprofit.PtProfitDO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.dal.dataobject.sharepath.SharePathDO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.dal.mysql.orderpercentage.OrderPercentageMapper;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.enums.CaclEnum;
 | 
	
		
			
				|  |  | -import cn.newfeifan.mall.module.distri.enums.ConsumptionEnum;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.enums.SocialStatusEnum;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.duser.DuserService;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
 | 
	
	
		
			
				|  | @@ -265,8 +262,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum));
 | 
	
		
			
				|  |  |          order.setUserIp(getClientIP()).setTerminal(getTerminal());
 | 
	
		
			
				|  |  |          // 支付 + 退款信息
 | 
	
		
			
				|  |  | -        order.setAdjustPrice(0).setPayStatus(false);
 | 
	
		
			
				|  |  | -        order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0);
 | 
	
		
			
				|  |  | +        order.setPayStatus(false);
 | 
	
		
			
				|  |  | +        order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
 | 
	
		
			
				|  |  |          // 物流信息
 | 
	
		
			
				|  |  |          order.setDeliveryType(createReqVO.getDeliveryType());
 | 
	
		
			
				|  |  |          if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
 | 
	
	
		
			
				|  | @@ -276,7 +273,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                      .setReceiverAreaId(address.getAreaId()).setReceiverDetailAddress(address.getDetailAddress());
 | 
	
		
			
				|  |  |          } else if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.PICK_UP.getType())) {
 | 
	
		
			
				|  |  |              order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile());
 | 
	
		
			
				|  |  | -            order.setPickUpVerifyCode(RandomUtil.randomNumbers(8)); // 随机一个核销码,长度为 8 位
 | 
	
		
			
				|  |  |          } else if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.VIRTUAL_PRODUCT.getType())) {
 | 
	
		
			
				|  |  |              MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId);
 | 
	
		
			
				|  |  |              order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile())
 | 
	
	
		
			
				|  | @@ -326,8 +322,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          Long payOrderId = payOrderApi.createOrder(payOrderCreateReqDTO);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 更新到交易单上
 | 
	
		
			
				|  |  | -        tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setPayOrderId(payOrderId));
 | 
	
		
			
				|  |  | -        order.setPayOrderId(payOrderId);
 | 
	
		
			
				|  |  | +        tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -342,7 +337,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          // 2. 更新 TradeOrderDO 状态为已支付,等待发货
 | 
	
		
			
				|  |  |          int updateCount = tradeOrderMapper.updateByIdAndStatus(id, order.getStatus(),
 | 
	
		
			
				|  |  |                  new TradeOrderDO().setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true)
 | 
	
		
			
				|  |  | -                        .setPayTime(LocalDateTime.now()).setPayChannelCode(payOrder.getChannelCode()));
 | 
	
		
			
				|  |  | +                        .setPayTime(LocalDateTime.now()));
 | 
	
		
			
				|  |  |          if (updateCount == 0) {
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -378,12 +373,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                      id, JsonUtils.toJsonString(order));
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        // 校验支付订单匹配
 | 
	
		
			
				|  |  | -        if (ObjectUtil.notEqual(order.getPayOrderId(), payOrderId)) { // 支付单号
 | 
	
		
			
				|  |  | -            log.error("[validateOrderPaid][order({}) 支付单不匹配({}),请进行处理!order 数据是:{}]",
 | 
	
		
			
				|  |  | -                    id, payOrderId, JsonUtils.toJsonString(order));
 | 
	
		
			
				|  |  | -            throw exception(ORDER_UPDATE_PAID_FAIL_PAY_ORDER_ID_ERROR);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 校验支付单是否存在
 | 
	
		
			
				|  |  |          PayOrderRespDTO payOrder = payOrderApi.getOrder(payOrderId);
 | 
	
	
		
			
				|  | @@ -398,7 +387,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PAID_FAIL_PAY_ORDER_STATUS_NOT_SUCCESS);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 校验支付金额一致
 | 
	
		
			
				|  |  | -        if (ObjectUtil.notEqual(payOrder.getPrice(), order.getPayPrice())) {
 | 
	
		
			
				|  |  | +        if (ObjectUtil.notEqual(payOrder.getPrice(), order.getPayIntegral())) {
 | 
	
		
			
				|  |  |              log.error("[validateOrderPaid][order({}) payOrder({}) 支付金额不匹配,请进行处理!order 数据是:{},payOrder 数据是:{}]",
 | 
	
		
			
				|  |  |                      id, payOrderId, JsonUtils.toJsonString(order), JsonUtils.toJsonString(payOrder));
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PAID_FAIL_PAY_PRICE_NOT_MATCH);
 | 
	
	
		
			
				|  | @@ -696,9 +685,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                  if (payIntegral > 0) {
 | 
	
		
			
				|  |  |                      integralService.updateUserIntegral(userId, CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, tradeOrderId, orderNum);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if (order.getPayConsumptionPoints() > 0) {
 | 
	
		
			
				|  |  | -                    integralService.updateUserConsumptionPoints(userId, ConsumptionEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, order.getPayConsumptionPoints(), tradeOrderId, orderNum);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  count++;
 | 
	
		
			
				|  |  |              } catch (Throwable e) {
 | 
	
	
		
			
				|  | @@ -752,7 +738,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |      @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL_AFTER_SALE)
 | 
	
		
			
				|  |  |      public void cancelOrderByAfterSale(TradeOrderDO order, Integer refundPrice) {
 | 
	
		
			
				|  |  |          // 1. 更新订单
 | 
	
		
			
				|  |  | -        if (refundPrice < order.getPayPrice()) {
 | 
	
		
			
				|  |  | +        if (refundPrice < order.getPayIntegral()) {
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
 | 
	
	
		
			
				|  | @@ -803,19 +789,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          if (order.getPayStatus()) {
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PRICE_FAIL_PAID);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        // 1.2 校验调价金额是否变化
 | 
	
		
			
				|  |  | -        if (order.getAdjustPrice() > 0) {
 | 
	
		
			
				|  |  | -            throw exception(ORDER_UPDATE_PRICE_FAIL_ALREADY);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |          // 1.3 支付价格不能为 0
 | 
	
		
			
				|  |  | -        int newPayPrice = order.getPayPrice() + order.getAdjustPrice();
 | 
	
		
			
				|  |  | +        int newPayPrice = order.getPayIntegral().intValue();
 | 
	
		
			
				|  |  |          if (newPayPrice <= 0) {
 | 
	
		
			
				|  |  |              throw exception(ORDER_UPDATE_PRICE_FAIL_PRICE_ERROR);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 2. 更新订单
 | 
	
		
			
				|  |  | -        tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
 | 
	
		
			
				|  |  | -                .setAdjustPrice(reqVO.getAdjustPrice()).setPayPrice(newPayPrice));
 | 
	
		
			
				|  |  | +        tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setPayIntegral((long) newPayPrice));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 3. 更新 TradeOrderItem,需要做 adjustPrice 的分摊
 | 
	
		
			
				|  |  |          List<TradeOrderItemDO> orderOrderItems = tradeOrderItemMapper.selectListByOrderId(order.getId());
 | 
	
	
		
			
				|  | @@ -823,17 +804,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          List<TradeOrderItemDO> updateItems = new ArrayList<>();
 | 
	
		
			
				|  |  |          for (int i = 0; i < orderOrderItems.size(); i++) {
 | 
	
		
			
				|  |  |              TradeOrderItemDO item = orderOrderItems.get(i);
 | 
	
		
			
				|  |  | -            updateItems.add(new TradeOrderItemDO().setId(item.getId()).setAdjustPrice(dividePrices.get(i))
 | 
	
		
			
				|  |  | -                    .setPayPrice(item.getPayPrice() + dividePrices.get(i)));
 | 
	
		
			
				|  |  | +            updateItems.add(new TradeOrderItemDO().setId(item.getId())
 | 
	
		
			
				|  |  | +                    .setPayIntegral(item.getPayIntegral() + dividePrices.get(i)));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          tradeOrderItemMapper.updateBatch(updateItems);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // 4. 更新支付订单
 | 
	
		
			
				|  |  | -        payOrderApi.updatePayOrderPrice(order.getPayOrderId(), newPayPrice);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          // 5. 记录订单日志
 | 
	
		
			
				|  |  |          TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus(),
 | 
	
		
			
				|  |  | -                MapUtil.<String, Object>builder().put("oldPayPrice", MoneyUtils.fenToYuanStr(order.getPayPrice()))
 | 
	
		
			
				|  |  | +                MapUtil.<String, Object>builder().put("oldPayPrice", MoneyUtils.fenToYuanStr(order.getPayIntegral().intValue()))
 | 
	
		
			
				|  |  |                          .put("newPayPrice", MoneyUtils.fenToYuanStr(newPayPrice)).build());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -860,16 +838,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          getSelf().pickUpOrder(tradeOrderMapper.selectById(id));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | -    @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_PICK_UP_RECEIVE)
 | 
	
		
			
				|  |  | -    public void pickUpOrderByAdmin(String pickUpVerifyCode) {
 | 
	
		
			
				|  |  | -        getSelf().pickUpOrder(tradeOrderMapper.selectOneByPickUpVerifyCode(pickUpVerifyCode));
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | -    public TradeOrderDO getByPickUpVerifyCode(String pickUpVerifyCode) {
 | 
	
		
			
				|  |  | -        return tradeOrderMapper.selectOneByPickUpVerifyCode(pickUpVerifyCode);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void pickUpOrder(TradeOrderDO order) {
 | 
	
	
		
			
				|  | @@ -903,14 +871,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          tradeOrderHandlers.forEach(handler -> handler.afterCancelOrderItem(order, orderItem));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 2.1 更新订单的退款金额、积分
 | 
	
		
			
				|  |  | -        Integer orderRefundPrice = order.getRefundPrice() + refundPrice;
 | 
	
		
			
				|  |  | -        Integer orderRefundPoint = order.getRefundPoint() + orderItem.getUsePoint();
 | 
	
		
			
				|  |  | +        Integer orderRefundPrice = order.getRefundIntegral().intValue() + refundPrice;
 | 
	
		
			
				|  |  |          Integer refundStatus = isAllOrderItemAfterSaleSuccess(order.getId()) ?
 | 
	
		
			
				|  |  |                  TradeOrderRefundStatusEnum.ALL.getStatus() // 如果都售后成功,则需要取消订单
 | 
	
		
			
				|  |  |                  : TradeOrderRefundStatusEnum.PART.getStatus();
 | 
	
		
			
				|  |  |          tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
 | 
	
		
			
				|  |  |                  .setRefundStatus(refundStatus)
 | 
	
		
			
				|  |  | -                .setRefundPrice(orderRefundPrice).setRefundPoint(orderRefundPoint));
 | 
	
		
			
				|  |  | +                .setRefundIntegral(Long.valueOf(orderRefundPrice)));
 | 
	
		
			
				|  |  |          // 2.2 如果全部退款,则进行取消订单
 | 
	
		
			
				|  |  |          getSelf().cancelOrderByAfterSale(order, orderRefundPrice);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1005,9 +972,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId) {
 | 
	
		
			
				|  |  | -        tradeOrderMapper.updateById(
 | 
	
		
			
				|  |  | -                new TradeOrderDO().setId(orderId).setCombinationActivityId(activityId)
 | 
	
		
			
				|  |  | -                        .setCombinationRecordId(combinationRecordId).setCombinationHeadId(headId));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -1116,7 +1080,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          /*
 | 
	
		
			
				|  |  |           * 购物本人自得 百分比
 | 
	
		
			
				|  |  |           */
 | 
	
		
			
				|  |  | -        String grossProfitUserQuotaPerc = orderPercentageDO.getGrossProfitUserQuotaPerc();
 | 
	
		
			
				|  |  | +        String grossProfitUserQuotaPerc = "0";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /*
 | 
	
		
			
				|  |  |           * 推荐人(上一级) 百分比
 | 
	
	
		
			
				|  | @@ -1149,7 +1113,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |              // 2. 更新 TradeOrderDO 状态为已支付,等待发货
 | 
	
		
			
				|  |  |              int updateCount = tradeOrderMapper.updateByIdAndStatus(tradeOrderId, order.getStatus(),
 | 
	
		
			
				|  |  |                      new TradeOrderDO().setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true)
 | 
	
		
			
				|  |  | -                            .setPayTime(LocalDateTime.now()).setPayChannelCode(payOrder.getChannelCode()));
 | 
	
		
			
				|  |  | +                            .setPayTime(LocalDateTime.now()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //            System.out.println("#########updateOrderPaid####updateCount:"+updateCount);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1226,7 +1190,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                  //记录用户在此订单项获得的冻结积分
 | 
	
		
			
				|  |  |                  TradeOrderItemDO toid = new TradeOrderItemDO();
 | 
	
		
			
				|  |  |                  toid.setId(tradeOrderItemDO.getId());
 | 
	
		
			
				|  |  | -                toid.setIncreaseIntegral(itemFreezeAmount);
 | 
	
		
			
				|  |  |                  toid.setAncestorIncreaseIntegral(ancestorItemFreezeAmount);//20240504 add by Ben
 | 
	
		
			
				|  |  |                  toid.setFreezeHighQuota(freezeHighQuotaInt);
 | 
	
		
			
				|  |  |                  tradeOrderItemMapper.updateById(toid);
 | 
	
	
		
			
				|  | @@ -1247,13 +1210,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                  // 游客收益
 | 
	
		
			
				|  |  |                  PtProfitDO ptProfitDO = ptProfitService.getPtProfit();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                ptProfitDO.setVisitorEarnings(ptProfitDO.getVisitorEarnings() + totalAncestorFreezeAmount);
 | 
	
		
			
				|  |  |                  ptProfitDO.setPtTotalAdd(ptProfitDO.getPtTotalAdd() + totalAncestorFreezeAmount);
 | 
	
		
			
				|  |  |                  ptProfitService.updatePtProfit(cn.newfeifan.mall.framework.common.util.object.BeanUtils.toBean(ptProfitDO, PtProfitSaveReqVO.class));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                // 记录日志
 | 
	
		
			
				|  |  | -                ptProfitLogService.addMessage(user.getId(), null, CaclEnum.RECOMMENDED_PERSON_QUOTA, totalAncestorFreezeAmount,
 | 
	
		
			
				|  |  | -                        ptProfitDO.getVisitorEarnings(), null, null, JSONUtil.toJsonStr(orderPercentageDO), tradeOrderId, OrderNum);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              //修改购物者本人获得的冻结峰值
 | 
	
	
		
			
				|  | @@ -1281,10 +1240,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          String title = WcChatMessageTemplateIdEnum.ORDER_NO_DELIVERY2.getName();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          DecimalFormat df = new DecimalFormat("0.00");
 | 
	
		
			
				|  |  | -        String formattedPrice = df.format((double) order.getPayPrice() / 100);
 | 
	
		
			
				|  |  | +        String formattedPrice = df.format((double) order.getPayIntegral() / 100);
 | 
	
		
			
				|  |  |          String alert = "订单金额: " + formattedPrice;
 | 
	
		
			
				|  |  |          alert += "\n单据编号: " + order.getNo();
 | 
	
		
			
				|  |  | -        alert += "\n客户名称: " + memberUserService.getUser(order.getUserId()).getNickname();
 | 
	
		
			
				|  |  | +        alert += "\n客户名称: " + memberUserService.getUser(order.getUserId()).getUsername();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<TradeOrderItemDO> tradeOrderItemDOS = tradeOrderItemMapper.selectListByOrderId(order.getId());
 | 
	
		
			
				|  |  |          List<String> productNames = tradeOrderItemDOS.stream().map(TradeOrderItemDO::getSpuName).collect(Collectors.toList());
 | 
	
	
		
			
				|  | @@ -1323,7 +1282,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 计算,毛利中100 之外的百分比
 | 
	
		
			
				|  |  | -        BigDecimal otherOneHundred = oneHundred.subtract(new BigDecimal(orderPercentageDO.getGrossProfitUserQuotaPerc()))
 | 
	
		
			
				|  |  | +        BigDecimal otherOneHundred = oneHundred
 | 
	
		
			
				|  |  |                  .subtract(new BigDecimal(orderPercentageDO.getGrossProfitAncestorQuotaPerc()))
 | 
	
		
			
				|  |  |                  .subtract(new BigDecimal(orderPercentageDO.getGrossProfitPlatformQuotaPerc()));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1345,7 +1304,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                  BigDecimal productCount = new BigDecimal(j.getCount());
 | 
	
		
			
				|  |  |                  BigDecimal oneGrossProfit = onePrice.subtract(oneCostPrice).multiply(productCount);
 | 
	
		
			
				|  |  |                  profit[0] = profit[0].add(oneGrossProfit);  // 注意这里的改动
 | 
	
		
			
				|  |  | -                profit[1] = profit[1].add(new BigDecimal(j.getIncreaseIntegral()));     //自得积分
 | 
	
		
			
				|  |  |                  profit[2] = profit[2].add(new BigDecimal(j.getAncestorIncreaseIntegral()));     //直推奖
 | 
	
		
			
				|  |  |                  profit[3] = profit[3].add(new BigDecimal(j.getFreezeHighQuota()));     //用户获得冻结最大可用额度
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1369,7 +1327,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 用户所得: 毛利 * 0.35
 | 
	
		
			
				|  |  | -            BigDecimal descendantQuota = profit[1];
 | 
	
		
			
				|  |  | +            BigDecimal descendantQuota = BigDecimal.valueOf(0L);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 直推奖: 毛利 * 0.3 (上一级)
 | 
	
		
			
				|  |  |              BigDecimal ancestorQuota = profit[2];
 | 
	
	
		
			
				|  | @@ -1393,8 +1351,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |              // 获取当前下单人关系
 | 
	
		
			
				|  |  |              SharePathDO sharePath = sharePathService.getSharePathByDescendant(k.getUserId());
 | 
	
		
			
				|  |  |              // 如果sharePath为空, 则说明没有直推人关系
 | 
	
		
			
				|  |  | -            IntegralDO integralDOAncestor = integralService.selectByUser(sharePath.getAncestor());      //父级
 | 
	
		
			
				|  |  | -            IntegralDO integralDO = integralService.selectByUser(sharePath.getDescendant());            //自己
 | 
	
		
			
				|  |  | +            IntegralDO integralDOAncestor = integralService.selectByUser(sharePath.getReferrerId());      //父级
 | 
	
		
			
				|  |  | +            IntegralDO integralDO = integralService.selectByUser(sharePath.getUserId());            //自己
 | 
	
		
			
				|  |  |              IntegralDO ptIntegral = integralService.selectByUser(1L);                         //pt
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1500,14 +1458,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                      .orderId(k.getId())
 | 
	
		
			
				|  |  |                      .profitStatus(CaclEnum.RECOMMENDED_PERSON_QUOTA.getType())
 | 
	
		
			
				|  |  |                      .orderNo(k.getNo())
 | 
	
		
			
				|  |  | -                    .userId(sharePath.getAncestor())
 | 
	
		
			
				|  |  |                      .amount(amount)
 | 
	
		
			
				|  |  | -                    .afterAmount(integralDOAncestor.getCurrentQuota())
 | 
	
		
			
				|  |  | -                    .freezeAmount(-amount)
 | 
	
		
			
				|  |  | -                    .afterFreezeAmount(integralDOAncestor.getFreezeQuota())
 | 
	
		
			
				|  |  | -                    .ancestorQuotaAmount(ptReplenish)
 | 
	
		
			
				|  |  | -                    .maxAvailablePointsAmount(-amount)
 | 
	
		
			
				|  |  | -                    .afterMaxAvailablePointsAmount(ancestorHighQuota - amount)
 | 
	
		
			
				|  |  | +                    .afterAmount(integralDOAncestor.getRedCurrentQuota())
 | 
	
		
			
				|  |  |                      .percentTemplate(percentTemplate)
 | 
	
		
			
				|  |  |                      .generateUserId(integralDO.getUserId())
 | 
	
		
			
				|  |  |                      .build();
 | 
	
	
		
			
				|  | @@ -1518,15 +1470,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                      .orderId(k.getId())
 | 
	
		
			
				|  |  |                      .profitStatus(CaclEnum.DIRECT_REFERRAL_QUOTA.getType())
 | 
	
		
			
				|  |  |                      .orderNo(k.getNo())
 | 
	
		
			
				|  |  | -                    .userId(sharePath.getDescendant())
 | 
	
		
			
				|  |  |                      .amount(descendantQuotaInt)
 | 
	
		
			
				|  |  | -                    .afterAmount(integralDO.getCurrentQuota())
 | 
	
		
			
				|  |  | -                    .freezeAmount(-descendantQuotaInt)
 | 
	
		
			
				|  |  | -                    .afterFreezeAmount(integralDO.getFreezeQuota())
 | 
	
		
			
				|  |  | -                    .maxAvailablePointsAmount(highQuotaInt)
 | 
	
		
			
				|  |  | -                    .afterMaxAvailablePointsAmount(integralDO.getHighQuota() + new BigDecimal(orderPercentageDO.getBaseMaxQuota()).longValue())
 | 
	
		
			
				|  |  | -                    .freezeHighQuota(-highQuotaInt)
 | 
	
		
			
				|  |  | -                    .afterFreezeHighQuota(integralDO.getFreezeHighQuota())
 | 
	
		
			
				|  |  | +                    .afterAmount(integralDO.getRedCurrentQuota())
 | 
	
		
			
				|  |  |                      .percentTemplate(percentTemplate)
 | 
	
		
			
				|  |  |                      .generateUserId(integralDO.getUserId())
 | 
	
		
			
				|  |  |                      .build();
 | 
	
	
		
			
				|  | @@ -1599,10 +1544,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          integralDO.setFreezeHighQuota(integralDO.getFreezeHighQuota() - highQuota);
 | 
	
		
			
				|  |  |          // todo 增加累计额度
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        integralDO.setCurrentQuota(integralDO.getCurrentQuota() + descendantQuota);
 | 
	
		
			
				|  |  | +        integralDO.setRedCurrentQuota(integralDO.getRedCurrentQuota() + descendantQuota);
 | 
	
		
			
				|  |  |          integralDO.setFreezeQuota(integralDO.getFreezeQuota() - descendantQuota);
 | 
	
		
			
				|  |  |          // 增加推荐人额度
 | 
	
		
			
				|  |  | -        integralDOAncestor.setCurrentQuota(integralDOAncestor.getCurrentQuota() + ancestorQuota);
 | 
	
		
			
				|  |  | +        integralDOAncestor.setRedCurrentQuota(integralDOAncestor.getRedCurrentQuota() + ancestorQuota);
 | 
	
		
			
				|  |  |          // 减少推荐人的可获取额度
 | 
	
		
			
				|  |  |          integralDOAncestor.setHighQuota(integralDOAncestor.getHighQuota() - ancestorQuota);
 | 
	
		
			
				|  |  |          integralDOAncestor.setAncestorQuota(integralDOAncestor.getAncestorQuota() + ancestorQuota);
 | 
	
	
		
			
				|  | @@ -1610,7 +1555,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          integralService.updateIntegral(cn.newfeifan.mall.framework.common.util.object.BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 增加平台额度
 | 
	
		
			
				|  |  | -        pt.setCurrentQuota(pt.getCurrentQuota() + ptA + ptB);
 | 
	
		
			
				|  |  | +        pt.setRedCurrentQuota(pt.getRedCurrentQuota() + ptA + ptB);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          integralService.updateIntegral(cn.newfeifan.mall.framework.common.util.object.BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
 | 
	
		
			
				|  |  |          integralService.updateIntegral(cn.newfeifan.mall.framework.common.util.object.BeanUtils.toBean(pt, IntegralSaveReqVO.class));
 | 
	
	
		
			
				|  | @@ -1620,11 +1565,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |      private void sentWcChatMessage(TradeOrderDO order) {
 | 
	
		
			
				|  |  |          List<String> params = new ArrayList<>();
 | 
	
		
			
				|  |  |          DecimalFormat df = new DecimalFormat("0.00");
 | 
	
		
			
				|  |  | -        String formattedPrice = df.format((double) order.getPayPrice() / 100);
 | 
	
		
			
				|  |  | +        String formattedPrice = df.format((double) order.getPayIntegral() / 100);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          params.add("¥ " + formattedPrice);
 | 
	
		
			
				|  |  |          params.add(order.getNo());
 | 
	
		
			
				|  |  | -        params.add(memberUserService.getUser(order.getUserId()).getNickname());
 | 
	
		
			
				|  |  | +        params.add(memberUserService.getUser(order.getUserId()).getUsername());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<TradeOrderItemDO> tradeOrderItemDOS = tradeOrderItemMapper.selectListByOrderId(order.getId());
 | 
	
		
			
				|  |  |          List<String> productNames = tradeOrderItemDOS.stream().map(TradeOrderItemDO::getSpuName).collect(Collectors.toList());
 |