cup 2 éve
szülő
commit
f69305d208

+ 50 - 50
mp-service/src/main/java/com/qs/mp/admin/service/impl/MarketingServiceImpl.java

@@ -342,64 +342,64 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         }
         String lockKey = String.format(MARKETING_REAL_NUM_LOCK, marketing.getId());
         // 等待3秒
-        if (!distributedLocker.tryLock(lockKey, 10, 30, TimeUnit.SECONDS)) {
-            throw new ServiceException("活动太火爆了,请稍后重试!");
-        }
-
-        try {
-
-            // 判断是否已经助力过
-            int count = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
-                    .eq(MarketingUserCode::getHelpUserId, userId));
-            if (count > 0) {
-                throw new ServiceException("您已经助力过了");
-            }
-
-
-            // 生成抽奖码
-            String code = "";
-            while (true) {
-                code = MarketingUtils.generatePrizeCode();
-                // 判断抽奖码是否已经存在
-                int codeCount = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
-                        .eq(MarketingUserCode::getMarketingId, marketing.getId())
-                        .eq(MarketingUserCode::getCode, code));
-                if (codeCount > 0) {
-                    continue;
+        if (distributedLocker.tryLock(lockKey, 10, 30, TimeUnit.SECONDS)) {
+            try {
+
+                // 判断是否已经助力过
+                int count = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
+                        .eq(MarketingUserCode::getHelpUserId, userId));
+                if (count > 0) {
+                    throw new ServiceException("您已经助力过了");
                 }
-                break;
-            }
 
-            MarketingUserCode marketingUserCode = new MarketingUserCode();
-            marketingUserCode.setMarketingId(marketingHelpParam.getMarketingId());
-            marketingUserCode.setCode(code);
-            // 设置被助力人
-            marketingUserCode.setUserId(helpedUserId);
-            // 设置助力人
-            marketingUserCode.setHelpUserId(userId);
-            marketingUserCode.setUserType(UserTypeEnum.ORDINARY.getValue());
 
-            // 保存助力信息
-            marketingUserCodeService.save(marketingUserCode);
+                // 生成抽奖码
+                String code = "";
+                while (true) {
+                    code = MarketingUtils.generatePrizeCode();
+                    // 判断抽奖码是否已经存在
+                    int codeCount = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
+                            .eq(MarketingUserCode::getMarketingId, marketing.getId())
+                            .eq(MarketingUserCode::getCode, code));
+                    if (codeCount > 0) {
+                        continue;
+                    }
+                    break;
+                }
 
+                MarketingUserCode marketingUserCode = new MarketingUserCode();
+                marketingUserCode.setMarketingId(marketingHelpParam.getMarketingId());
+                marketingUserCode.setCode(code);
+                // 设置被助力人
+                marketingUserCode.setUserId(helpedUserId);
+                // 设置助力人
+                marketingUserCode.setHelpUserId(userId);
+                marketingUserCode.setUserType(UserTypeEnum.ORDINARY.getValue());
+
+                // 保存助力信息
+                marketingUserCodeService.save(marketingUserCode);
+
+
+                // 获取最新活动信息
+                Marketing marketingParam = this.getById(marketing.getId());
+                marketingParam.setRealNum(marketingParam.getRealNum() + 1);
+                int randomNum = (int) 1 + (int) (Math.random() * 10);
+                marketingParam.setFakeNum(marketingParam.getFakeNum() + randomNum);
+                // 更新活动参与人数
+                boolean rtn = this.updateById(marketingParam);
+                Assert.isTrue(rtn, "更新活动参与人数异常。marketingId:" + marketing.getId());
+
+            } finally {
+                distributedLocker.unlock(lockKey);
+            }
 
-            // 获取最新活动信息
-            Marketing marketingParam = this.getById(marketing.getId());
-            marketingParam.setRealNum(marketingParam.getRealNum() + 1);
-            int randomNum = (int) 1 + (int) (Math.random() * 10);
-            marketingParam.setFakeNum(marketingParam.getFakeNum() + randomNum);
-            // 更新活动参与人数
-            boolean rtn = this.updateById(marketingParam);
-            Assert.isTrue(rtn, "更新活动参与人数异常。marketingId:" + marketing.getId());
+            // 给被助力人发送成功消息
+            wxSubscribeMessage.sendMarketingHelp(helpedUserId, marketing);
 
-        } finally {
-            distributedLocker.unlock(lockKey);
+        } else {
+            throw new ServiceException("活动太火爆了,请稍后重试!");
         }
 
-        // 给被助力人发送成功消息
-        wxSubscribeMessage.sendMarketingHelp(helpedUserId, marketing);
-
-
     }