Ver código fonte

Merge remote-tracking branch 'origin/master'

Joburgess 4 anos atrás
pai
commit
c03adde653

+ 6 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -396,7 +396,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (chargeInfo.getMaxNum() != null) {
             //重试避免人数过多频繁冲突
             boolean flag = false;
+            int max = 100, min = 1;
+            int ran2 = (int) (Math.random() * (max - min) + min);
             for (int i = 1; i <= 100; i++) {
+                if (i == ran2) {
+                    Thread.sleep(500);
+                }
                 chargeInfo = sporadicChargeInfoDao.get(sporadicPayDto.getSporadicId());
                 if (chargeInfo.getMaxNum() != null && chargeInfo.getMaxNum() <= chargeInfo.getPaidNum()) {
                     throw new BizException("活动人数暂时已满,请稍后再试");
@@ -408,13 +413,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     flag = true;
                     break;
                 }
-
-                int max=100,min=1;
-                long ran2 = (long) (Math.random()*(max-min)+min);
-                Thread.sleep(ran2);
             }
             if (!flag) {
-                throw new BizException("活动火爆,请稍后再试");
+                throw new BizException("活动火爆,请稍后再试"+ran2);
             }
         }
 

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -142,7 +142,12 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             if (info.getMaxNum() != null && info.getPaidNum() > 0) {
                 //重试避免人数过多频繁冲突
                 boolean flag = false;
+                int max = 100, min = 1;
+                int ran2 = (int) (Math.random() * (max - min) + min);
                 for (int i = 1; i <= 100; i++) {
+                    if (i == ran2) {
+                        Thread.sleep(ran2);
+                    }
                     info = sporadicChargeInfoDao.get(info.getId());
                     info.setPaidNum(info.getPaidNum() - 1);
                     info.setUpdateTime(new Date());
@@ -151,9 +156,6 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
                         flag = true;
                         break;
                     }
-                    int max=100,min=1;
-                    long ran2 = (long) (Math.random()*(max-min)+min);
-                    Thread.sleep(ran2);
                 }
                 if (!flag) {
                     throw new BizException("活动火爆,请稍后再试");