|
@@ -116,49 +116,51 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void edit(OrderDTO orderDTO) {
|
|
|
- //修改把原先订单所有的东西都置空在新增
|
|
|
- orderSendManager.remove(new LambdaQueryWrapper<OrderSendDO>().eq(OrderSendDO::getOrderId, orderDTO.getId()));
|
|
|
-
|
|
|
- //解冻库存
|
|
|
- List<OrderItemDO> itemDOS = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
- List<StockDTO> stockDTOS = new ArrayList<>();
|
|
|
- for (OrderItemDO itemDO : itemDOS) {
|
|
|
- StockDTO stockDTO = new StockDTO();
|
|
|
- stockDTO.setId(itemDO.getProductStockId());
|
|
|
- stockDTO.setNum(-itemDO.getNum());
|
|
|
- stockDTOS.add(stockDTO);
|
|
|
- }
|
|
|
- productStockManager.updateLockedStock(stockDTOS);
|
|
|
- orderItemManager.remove(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
- List<LockedStockDetailDO> list = lockedStockDetailManager.list(new LambdaQueryWrapper<LockedStockDetailDO>().eq(LockedStockDetailDO::getOrderId, orderDTO.getId()));
|
|
|
- //删除冻结明细
|
|
|
- lockedStockDetailManager.remove(new LambdaQueryWrapper<LockedStockDetailDO>().eq(LockedStockDetailDO::getOrderId, orderDTO.getId()));
|
|
|
- List<StockDTO> arrayList = new ArrayList<>();
|
|
|
- list.forEach(item -> {
|
|
|
- StockDTO dto = new StockDTO();
|
|
|
- dto.setId(item.getProductStockId());
|
|
|
- dto.setNum(-item.getLockedNum());
|
|
|
- arrayList.add(dto);
|
|
|
- });
|
|
|
- //productStockManager.updateLockedStock(arrayList);
|
|
|
+ synchronized (orderDTO.getId().toString().intern()) {
|
|
|
+ //修改把原先订单所有的东西都置空在新增
|
|
|
+ orderSendManager.remove(new LambdaQueryWrapper<OrderSendDO>().eq(OrderSendDO::getOrderId, orderDTO.getId()));
|
|
|
+
|
|
|
+ //解冻库存
|
|
|
+ List<OrderItemDO> itemDOS = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
+ List<StockDTO> stockDTOS = new ArrayList<>();
|
|
|
+ for (OrderItemDO itemDO : itemDOS) {
|
|
|
+ StockDTO stockDTO = new StockDTO();
|
|
|
+ stockDTO.setId(itemDO.getProductStockId());
|
|
|
+ stockDTO.setNum(-itemDO.getNum());
|
|
|
+ stockDTOS.add(stockDTO);
|
|
|
+ }
|
|
|
+ productStockManager.updateLockedStock(stockDTOS);
|
|
|
+ orderItemManager.remove(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
+ List<LockedStockDetailDO> list = lockedStockDetailManager.list(new LambdaQueryWrapper<LockedStockDetailDO>().eq(LockedStockDetailDO::getOrderId, orderDTO.getId()));
|
|
|
+ //删除冻结明细
|
|
|
+ lockedStockDetailManager.remove(new LambdaQueryWrapper<LockedStockDetailDO>().eq(LockedStockDetailDO::getOrderId, orderDTO.getId()));
|
|
|
+ List<StockDTO> arrayList = new ArrayList<>();
|
|
|
+ list.forEach(item -> {
|
|
|
+ StockDTO dto = new StockDTO();
|
|
|
+ dto.setId(item.getProductStockId());
|
|
|
+ dto.setNum(-item.getLockedNum());
|
|
|
+ arrayList.add(dto);
|
|
|
+ });
|
|
|
+ //productStockManager.updateLockedStock(arrayList);
|
|
|
|
|
|
|
|
|
- if (OrderTypeEnum.TO_C.equals(orderDTO.getType())) {
|
|
|
- if (ObjectUtil.isNull(orderDTO.getStartTime())) {
|
|
|
- throw new ServiceException("租用时间不能为空");
|
|
|
+ if (OrderTypeEnum.TO_C.equals(orderDTO.getType())) {
|
|
|
+ if (ObjectUtil.isNull(orderDTO.getStartTime())) {
|
|
|
+ throw new ServiceException("租用时间不能为空");
|
|
|
+ }
|
|
|
}
|
|
|
+ GaoDeUtil.getLongitudeLatitude(orderDTO.getProvinceCityAreaAddress());
|
|
|
+ OrderDO orderDO = BeanUtil.copyProperties(orderDTO, OrderDO.class);
|
|
|
+ orderDO.setUpdateTime(System.currentTimeMillis() / 1000);
|
|
|
+ // 更新订单
|
|
|
+ updateById(orderDO);
|
|
|
+ // 更新订单项
|
|
|
+ List<OrderItemDO> itemList = BeanUtils.toBean(orderDTO.getItemList(), OrderItemDO.class);
|
|
|
+
|
|
|
+ itemList.forEach(item -> item.setOrderId(orderDO.getId()));
|
|
|
+ orderItemManager.remove(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
+ orderItemManager.saveBatch(itemList);
|
|
|
}
|
|
|
- GaoDeUtil.getLongitudeLatitude(orderDTO.getProvinceCityAreaAddress());
|
|
|
- OrderDO orderDO = BeanUtil.copyProperties(orderDTO, OrderDO.class);
|
|
|
- orderDO.setUpdateTime(System.currentTimeMillis() / 1000);
|
|
|
- // 更新订单
|
|
|
- updateById(orderDO);
|
|
|
- // 更新订单项
|
|
|
- List<OrderItemDO> itemList = BeanUtils.toBean(orderDTO.getItemList(), OrderItemDO.class);
|
|
|
-
|
|
|
- itemList.forEach(item -> item.setOrderId(orderDO.getId()));
|
|
|
- orderItemManager.remove(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDTO.getId()));
|
|
|
- orderItemManager.saveBatch(itemList);
|
|
|
}
|
|
|
|
|
|
@Override
|