ソースを参照

Merge branch 'dev' of 113.31.163.91:quanshu/mp-server into dev

chunping 2 年 前
コミット
8677a77681

+ 1 - 3
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java

@@ -317,14 +317,12 @@ public class UserTicketController extends BaseApiController {
 
     // 兑奖
     String lockKey = RedisLockKey.build(RedisLockKey.USER_TICKET_CASH_LOCK, param.getPrizeId());
-    if (distributedLocker.tryLock(lockKey)) {
+    if (!distributedLocker.tryLock(lockKey)) {
       return AjaxResult.error("系统繁忙,请稍后再试");
     }
     try {
       // 兑奖
       userHitPrizeService.cashPrize(ticket, userId, param.getAwardsId(), param.getPrizeId());
-    } catch (Exception e) {
-      LogUtil.error(logger,"盲票兑奖异常",e);
     } finally {
       distributedLocker.unlock(lockKey);
     }

+ 2 - 2
mp-quartz/src/main/java/com/qs/mp/quartz/task/MarketingTask.java

@@ -153,9 +153,9 @@ public class MarketingTask {
         }
 
         for (Marketing marketing : marketingList) {
-            // 随机加1-19
+            // 随机加1-10
             marketingService.update(new LambdaUpdateWrapper<Marketing>()
-                    .set(Marketing::getFakeNum, marketing.getFakeNum() + RandomUtil.randomInt(1,20))
+                    .set(Marketing::getFakeNum, marketing.getFakeNum() + RandomUtil.randomInt(1,10))
                     .eq(Marketing::getId, marketing.getId()));
         }
     }

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

+ 2 - 4
mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java

@@ -192,7 +192,7 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
             List<TicketAwardsPrize> newTicketAwardsPrizes =  new ArrayList<>();
 
             for (TicketAwardsPrize ticketAwardsPrize : ticketAwardsPrizes) {
-                if (ticketAwardsPrize.getRemainQty() != 0) {
+                if (ticketAwardsPrize.getRemainQty() > 0) {
                     newTicketAwardsPrizes.add(ticketAwardsPrize);
                 }
             }
@@ -210,14 +210,12 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
 
             // 兑奖
             String lockKey = RedisLockKey.build(RedisLockKey.USER_TICKET_CASH_LOCK, ticketAwardsPrize.getPrizeId());
-            if (distributedLocker.tryLock(lockKey)) {
+            if (!distributedLocker.tryLock(lockKey)) {
                 throw new ServiceException("系统繁忙,请稍后再试");
             }
             try {
                 // 兑奖
                 this.cashPrize(ticket, userId, ticketAwardsPrize.getAwardsId(), ticketAwardsPrize.getPrizeId());
-            } catch (Exception e) {
-                LogUtil.error(logger,"线上盲票兑奖异常",e);
             } finally {
                 distributedLocker.unlock(lockKey);
             }