|
@@ -75,40 +75,7 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
@Transactional
|
|
|
public String submitOrder(Long userId, String memo, DeliverOrderSettleVO orderSettleVO) {
|
|
|
|
|
|
- if (DeliverOrderResourceEnum.PAYMENT.getValue().equals(orderSettleVO.getResource())) {
|
|
|
- // 现金购买需要校验和锁库存
|
|
|
- for (UserPrizeStorage userPrizeStorage : orderSettleVO.getPrizeList()) {
|
|
|
- if (Objects.nonNull(userPrizeStorage.getSkuId()) && userPrizeStorage.getSkuId() != 0) {
|
|
|
- GoodsSku goodsSku = goodsSkuService.getById(userPrizeStorage.getSkuId());
|
|
|
- if (goodsSku.getSoldQty() + userPrizeStorage.getGoodsNum() > goodsSku.getQuantity()) {
|
|
|
- throw new ServiceException(userPrizeStorage.getTitle() + "库存不足,请重新下单");
|
|
|
- }
|
|
|
-
|
|
|
- // 更新库存
|
|
|
- boolean updateSku = goodsSkuService.update(new LambdaUpdateWrapper<GoodsSku>()
|
|
|
- .set(GoodsSku::getQuantity, goodsSku.getQuantity() - userPrizeStorage.getGoodsNum())
|
|
|
- .set(GoodsSku::getSoldQty, goodsSku.getSoldQty() + userPrizeStorage.getGoodsNum())
|
|
|
- .eq(GoodsSku::getSkuId, goodsSku.getSkuId())
|
|
|
- .eq(GoodsSku::getQuantity, goodsSku.getQuantity())
|
|
|
- .eq(GoodsSku::getSoldQty, goodsSku.getSoldQty()));
|
|
|
- Assert.isTrue(updateSku, "现金购买商品更新SKU库存失败。goodsId:" + goodsSku.getGoodsId() + ",skuId:" + goodsSku.getSkuId());
|
|
|
-
|
|
|
- } else {
|
|
|
- Goods goods = goodsService.getById(userPrizeStorage.getGoodsId());
|
|
|
- if (goods.getExchangedQty() + userPrizeStorage.getGoodsNum() > goods.getQuantity()) {
|
|
|
- throw new ServiceException(userPrizeStorage.getTitle() + "库存不足,请重新下单");
|
|
|
- }
|
|
|
- // 更新库存
|
|
|
- boolean updateGoods = goodsService.update(new LambdaUpdateWrapper<Goods>()
|
|
|
- .set(goods.getQuantity() - userPrizeStorage.getGoodsNum() == 0, Goods::getStatus, GoodsStatusEnum.PUT_OFF)
|
|
|
- .set(Goods::getQuantity, goods.getQuantity() - userPrizeStorage.getGoodsNum())
|
|
|
- .set(Goods::getExchangedQty, goods.getExchangedQty() + userPrizeStorage.getGoodsNum())
|
|
|
- .eq(Goods::getGoodsId, goods.getGoodsId()).eq(Goods::getQuantity, goods.getQuantity()).eq(Goods::getExchangedQty, goods.getExchangedQty()));
|
|
|
- Assert.isTrue(updateGoods, "现金购买商品更新GOODS库存失败。goodsId:" + goods.getGoodsId() );
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
|
|
|
UserDeliverOrder userDeliverOrder = new UserDeliverOrder();
|
|
@@ -150,14 +117,45 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
orderItem.setShoppingLink(goods.getShoppingLink());
|
|
|
|
|
|
userDeliverOrderItemService.save(orderItem);
|
|
|
- if (!DeliverOrderResourceEnum.PAYMENT.getValue().equals(orderSettleVO.getResource())) {
|
|
|
- boolean rtn = userPrizeStorageService.update(new LambdaUpdateWrapper<UserPrizeStorage>()
|
|
|
- .set(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.HAS_DISTRIBUTED)
|
|
|
- .eq(UserPrizeStorage::getStorageId, prizeStorage.getStorageId()));
|
|
|
+ if (DeliverOrderResourceEnum.PAYMENT.getValue().equals(orderSettleVO.getResource())) {
|
|
|
+ // 现金购买需要校验和锁库存
|
|
|
+ if (Objects.nonNull(prizeStorage.getSkuId()) && prizeStorage.getSkuId() != 0) {
|
|
|
+ GoodsSku goodsSku = goodsSkuService.getById(prizeStorage.getSkuId());
|
|
|
+ if (goodsSku.getSoldQty() + prizeStorage.getGoodsNum() > goodsSku.getQuantity()) {
|
|
|
+ throw new ServiceException(prizeStorage.getTitle() + "库存不足,请重新下单");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新库存
|
|
|
+ boolean updateSku = goodsSkuService.update(new LambdaUpdateWrapper<GoodsSku>()
|
|
|
+ .set(GoodsSku::getQuantity, goodsSku.getQuantity() - prizeStorage.getGoodsNum())
|
|
|
+ .set(GoodsSku::getSoldQty, goodsSku.getSoldQty() + prizeStorage.getGoodsNum())
|
|
|
+ .eq(GoodsSku::getSkuId, goodsSku.getSkuId())
|
|
|
+ .eq(GoodsSku::getQuantity, goodsSku.getQuantity())
|
|
|
+ .eq(GoodsSku::getSoldQty, goodsSku.getSoldQty()));
|
|
|
+ Assert.isTrue(updateSku, "现金购买商品更新SKU库存失败。goodsId:" + goodsSku.getGoodsId() + ",skuId:" + goodsSku.getSkuId());
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if (goods.getExchangedQty() + prizeStorage.getGoodsNum() > goods.getQuantity()) {
|
|
|
+ throw new ServiceException(prizeStorage.getTitle() + "库存不足,请重新下单");
|
|
|
+ }
|
|
|
+ // 更新库存
|
|
|
+ boolean updateGoods = goodsService.update(new LambdaUpdateWrapper<Goods>()
|
|
|
+ .set(goods.getQuantity() - prizeStorage.getGoodsNum() == 0, Goods::getStatus, GoodsStatusEnum.PUT_OFF)
|
|
|
+ .set(Goods::getQuantity, goods.getQuantity() - prizeStorage.getGoodsNum())
|
|
|
+ .set(Goods::getExchangedQty, goods.getExchangedQty() + prizeStorage.getGoodsNum())
|
|
|
+ .eq(Goods::getGoodsId, goods.getGoodsId()).eq(Goods::getQuantity, goods.getQuantity()).eq(Goods::getExchangedQty, goods.getExchangedQty()));
|
|
|
+ Assert.isTrue(updateGoods, "现金购买商品更新GOODS库存失败。goodsId:" + goods.getGoodsId() );
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ boolean rtn = userPrizeStorageService.update(new LambdaUpdateWrapper<UserPrizeStorage>()
|
|
|
+ .set(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.HAS_DISTRIBUTED)
|
|
|
+ .eq(UserPrizeStorage::getStorageId, prizeStorage.getStorageId()));
|
|
|
|
|
|
- Assert.isTrue(rtn, "提交提货订单时,更新状态失败。userDeliverOrder:" + JSONObject.toJSONString(userDeliverOrder));
|
|
|
+ Assert.isTrue(rtn, "提交提货订单时,更新状态失败。userDeliverOrder:" + JSONObject.toJSONString(userDeliverOrder));
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
return userDeliverOrder.getOrderId();
|
|
@@ -344,6 +342,6 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
public UserDeliverOrderVO selectUserDeliverOrderVo(String orderId) {
|
|
|
return getBaseMapper().selectUserDeliverOrderVo(orderId);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
}
|