|
@@ -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);
|
|
|
}
|