|  | @@ -741,7 +741,18 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              tradeOrderMapper.insert(order);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            orderItems.forEach(orderItem -> orderItem.setOrderId(order.getId()));
 | 
	
		
			
				|  |  | +            // 购买增加销量
 | 
	
		
			
				|  |  | +            orderItems.forEach(orderItem -> {
 | 
	
		
			
				|  |  | +                        orderItem.setOrderId(order.getId());
 | 
	
		
			
				|  |  | +                ProductSkuDO sku = productSkuMapper.selectById(orderItem.getSkuId());
 | 
	
		
			
				|  |  | +                sku.setSalesCount(sku.getSalesCount() + orderItem.getCount());
 | 
	
		
			
				|  |  | +                productSkuMapper.updateById(sku);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                ProductSpuDO spu = productSpuMapper.selectById(orderItem.getSpuId());
 | 
	
		
			
				|  |  | +                spu.setSalesCount(spu.getSalesCount() + orderItem.getCount());
 | 
	
		
			
				|  |  | +                productSpuMapper.updateById(spu);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +            );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              /*
 | 
	
		
			
				|  |  |               * 把每一笔运费平摊到相同的运费模板的订单项中,并且把支付金额累加上运费
 | 
	
	
		
			
				|  | @@ -765,7 +776,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |                      if (spu.getDeliveryTemplateId().equals(id)) {
 | 
	
		
			
				|  |  |                          templateIdMap.put(id, templateIdMap.get(id) + 1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                        if(item.getDeliveryPrice() != 0){
 | 
	
		
			
				|  |  | +                        if (item.getDeliveryPrice() != 0) {
 | 
	
		
			
				|  |  |                              deliveryPriceMap.put(spu.getDeliveryTemplateId(), item.getDeliveryPrice());
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -1580,6 +1591,19 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
	
		
			
				|  |  |          int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(),
 | 
	
		
			
				|  |  |                  new TradeOrderDO().setStatus(TradeOrderStatusEnum.CANCELED.getStatus())
 | 
	
		
			
				|  |  |                          .setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 取消订单减商品销量
 | 
	
		
			
				|  |  | +        List<TradeOrderItemDO> tradeOrderItemDOS = tradeOrderItemMapper.selectList(TradeOrderItemDO::getOrderId, order.getId());
 | 
	
		
			
				|  |  | +        for (TradeOrderItemDO tradeOrderItemDO : tradeOrderItemDOS) {
 | 
	
		
			
				|  |  | +            ProductSkuDO sku = productSkuMapper.selectById(tradeOrderItemDO.getSkuId());
 | 
	
		
			
				|  |  | +            sku.setSalesCount(sku.getSalesCount() - tradeOrderItemDO.getCount());
 | 
	
		
			
				|  |  | +            productSkuMapper.updateById(sku);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            ProductSpuDO spu = productSpuMapper.selectById(tradeOrderItemDO.getSpuId());
 | 
	
		
			
				|  |  | +            spu.setSalesCount(spu.getSalesCount() - tradeOrderItemDO.getCount());
 | 
	
		
			
				|  |  | +            productSpuMapper.updateById(spu);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if (updateCount == 0) {
 | 
	
		
			
				|  |  |              throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
 | 
	
		
			
				|  |  |          }
 |