cup 2 rokov pred
rodič
commit
1f9fb1237e

+ 1 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/PrizeRecoveryServiceImpl.java

@@ -73,6 +73,7 @@ public class PrizeRecoveryServiceImpl extends ServiceImpl<PrizeRecoveryMapper, P
                 .set(UserPrizeStorage::getGoodsNum, userPrizeStorage.getGoodsNum() - settleVO.getNum())
                 .eq(UserPrizeStorage::getUserId, userId)
                 .eq(UserPrizeStorage::getStorageId, settleVO.getStorageId())
+                .eq(UserPrizeStorage::getGoodsNum, userPrizeStorage.getGoodsNum())
                 .eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED));
 
         Assert.isTrue(rtn, "更新奖品状态失败。storageId:" + settleVO.getStorageId());

+ 40 - 42
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java

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