Bläddra i källkod

被锁提示文字

xiongzhu 3 år sedan
förälder
incheckning
d2d9984790

+ 2 - 0
src/main/java/com/izouma/nineth/annotations/RedisLock.java

@@ -15,6 +15,8 @@ public @interface RedisLock {
 
     Behavior behavior() default Behavior.THROW;
 
+    String message() default "获取锁失败";
+
     enum Behavior {
         WAIT,
         THROW

+ 1 - 1
src/main/java/com/izouma/nineth/aspect/RedisLockAspect.java

@@ -66,7 +66,7 @@ public class RedisLockAspect {
         } else {
             if (!lock.tryLock()) {
                 log.info("get redisLock fail");
-                throw new BusinessException("获取锁失败");
+                throw new BusinessException(redisLock.message());
             }
             log.info("get redisLock success");
         }

+ 1 - 1
src/main/java/com/izouma/nineth/service/MintOrderService.java

@@ -197,7 +197,7 @@ public class MintOrderService {
      * @param addressId      地址
      */
 //    @Transactional
-    @RedisLock(value = "'mintOrderLock'+#{userId}", expire = 30)
+    @RedisLock(value = "'mintOrderLock'+#{userId}", expire = 30, message = "操作频率过高,请稍后再试")
     public MintOrder create(User user, List<Long> assetId, Long mintActivityId, Long addressId) {
         // 参加的活动
         MintActivity mintActivity = mintActivityRepo.findByIdAndDelFalse(mintActivityId)

+ 1 - 1
src/main/java/com/izouma/nineth/service/UserAssetSummaryService.java

@@ -38,7 +38,7 @@ public class UserAssetSummaryService {
     }
 
     @Transactional
-    @RedisLock("#userId")
+    @RedisLock(value = "#userId", behavior = RedisLock.Behavior.WAIT)
     public void calculateNum(Long assetId, Long userId, Long companyId) {
         log.info("开始重新计算用户:{},companyId:{}的资产数量", userId, companyId);
         List<UserAssetSummary> userAssetSummaries = new ArrayList<>();