Преглед на файлове

参与活动和助力锁范围调整,去除增加真实人数

cup преди 2 години
родител
ревизия
00ae8d1fd1

+ 0 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/MarketingMgrController.java

@@ -261,7 +261,6 @@ public class MarketingMgrController extends BaseApiController {
         queryWrapper.eq("t1.marketing_id", id);
         queryWrapper.eq("t1.user_type", UserTypeEnum.ORDINARY.getValue());
 
-        queryWrapper.orderByAsc("t4.sort");
         queryWrapper.orderByDesc("t1.created_time");
 
         List<MarketingUserCodeListVO> list = marketingUserCodeService.listMarketingUserCodeByQueryWrapper(queryWrapper);

+ 2 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/MarketingController.java

@@ -120,7 +120,7 @@ public class MarketingController extends BaseApiController {
             return AjaxResult.error("错误请求");
         }
 
-        String lockKey = RedisLockKey.build(RedisLockKey.MARKETING_REAL_NUM_LOCK, marketingId);
+        String lockKey = RedisLockKey.build(RedisLockKey.MARKETING_JOIN_LOCK, userId);
         // 自动续期,等待3秒
         if (!distributedLocker.tryLock(lockKey, 3, -1, TimeUnit.SECONDS)) {
             return AjaxResult.error("活动太火爆了,请稍后重试!");
@@ -216,7 +216,7 @@ public class MarketingController extends BaseApiController {
             return AjaxResult.error("不能助力自己哦");
         }
 
-        String lockKey = RedisLockKey.build(RedisLockKey.MARKETING_REAL_NUM_LOCK, marketingHelpParam.getMarketingId());
+        String lockKey = RedisLockKey.build(RedisLockKey.MARKETING_JOIN_LOCK, userId);
 
         // 自动续期,等待3秒
         if (!distributedLocker.tryLock(lockKey, 3, -1, TimeUnit.SECONDS)) {

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

@@ -187,15 +187,11 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
 
         Marketing marketing = this.getById(marketingId);
 
-
-        // 真实用户
-        int realNum = marketingUserCodeService.countRealUserNumByMarketingId(marketing.getId());
-        // 获取最新活动信息
-        marketing.setRealNum(realNum);
+        // 设置更新虚拟参与人数
         int randomNum = (int) 1 + (int) (Math.random() * 3);
-        marketing.setFakeNum(marketing.getFakeNum() + randomNum);
         // 更新活动参与人数
-        boolean rtn = this.updateById(marketing);
+        boolean rtn = this.update(new LambdaUpdateWrapper<Marketing>().set(Marketing::getFakeNum, marketing.getFakeNum() + randomNum)
+            .eq(Marketing::getId, marketing.getId()));
         Assert.isTrue(rtn, "更新活动参与人数异常。marketingId:" + marketing.getId());
 
     }
@@ -495,16 +491,11 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         marketingUserCodeService.save(myCode);
 
 
-        // 真实用户
-        int realNum = marketingUserCodeService.countRealUserNumByMarketingId(marketing.getId());
-
-
-        // 获取最新活动信息
-        marketing.setRealNum(realNum);
+        // 设置更新虚拟参与人数
         int randomNum = (int) 1 + (int) (Math.random() * 3);
-        marketing.setFakeNum(marketing.getFakeNum() + randomNum);
         // 更新活动参与人数
-        boolean rtn = this.updateById(marketing);
+        boolean rtn = this.update(new LambdaUpdateWrapper<Marketing>().set(Marketing::getFakeNum, marketing.getFakeNum() + randomNum)
+            .eq(Marketing::getId, marketing.getId()));
         Assert.isTrue(rtn, "更新活动参与人数异常。marketingId:" + marketing.getId());
 
     }

+ 3 - 1
mp-service/src/main/java/com/qs/mp/framework/redis/RedisLockKey.java

@@ -11,7 +11,9 @@ import com.qs.mp.common.utils.MessageHelper;
 public enum RedisLockKey {
     CREATED_ONLINE_TICKET_ORDER_KEY("created_online_ticket_order_key_{0}", "线上盲票创建锁"),
     ASYNC_TASK_KEY("async_task_key_{0}", "异步任务key"),
-    MARKETING_REAL_NUM_LOCK("marketing_real_num_lock_{0}", "活动真实人数增加锁"),
+
+    MARKETING_JOIN_LOCK("marketing_join_lock_{0}", "活动参与锁"),
+
     MARKETING_LOTTERY_KEY("marketing_lottery_key_{0}","免费抽奖活动开奖"),
     USER_TICKET_CASH_LOCK("user_ticket_cash_lock_{0}", "盲票兑奖锁");