|  |  | @ -48,34 +48,30 @@ public class NoRepeatSubmitAop { | 
			
		
	
		
			
				
					|  |  |  |         Object result = null; | 
			
		
	
		
			
				
					|  |  |  |         RLock lock = null; | 
			
		
	
		
			
				
					|  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |             //key 为空则直接跳过 不加锁
 | 
			
		
	
		
			
				
					|  |  |  |             if (key != null){ | 
			
		
	
		
			
				
					|  |  |  |                 long leaseTime = noRepeatSubmit.leaseTime(); | 
			
		
	
		
			
				
					|  |  |  |                 //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime
 | 
			
		
	
		
			
				
					|  |  |  |                 lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); | 
			
		
	
		
			
				
					|  |  |  |                 //因为getLock如果获取失败抛异常 所以不做锁状态的判断
 | 
			
		
	
		
			
				
					|  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |                 //key 为空则直接跳过 不加锁
 | 
			
		
	
		
			
				
					|  |  |  |                 if (key != null) { | 
			
		
	
		
			
				
					|  |  |  |                     long leaseTime = noRepeatSubmit.leaseTime(); | 
			
		
	
		
			
				
					|  |  |  |                     //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime
 | 
			
		
	
		
			
				
					|  |  |  |                     lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); | 
			
		
	
		
			
				
					|  |  |  |                     //因为getLock如果获取失败抛异常 所以不做锁状态的判断
 | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |                 log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |                 //"未获取到锁,重复提交了
 | 
			
		
	
		
			
				
					|  |  |  |                 throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |             log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |             //"未获取到锁,重复提交了
 | 
			
		
	
		
			
				
					|  |  |  |             throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); | 
			
		
	
		
			
				
					|  |  |  |         } finally { | 
			
		
	
		
			
				
					|  |  |  |             distributedLock.unLock(lock); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |             //因为getLock如果获取失败抛异常 所以不做锁状态的判断
 | 
			
		
	
		
			
				
					|  |  |  |             //执行业务代码
 | 
			
		
	
		
			
				
					|  |  |  |             result = pjp.proceed(); | 
			
		
	
		
			
				
					|  |  |  |         } finally { | 
			
		
	
		
			
				
					|  |  |  |             distributedLock.unLock(lock); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         return result; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     private String getKey(String keyExpress, String token) { | 
			
		
	
		
			
				
					|  |  |  |         log.debug("getKey param keyExpress:{},token:{}",keyExpress,token); | 
			
		
	
		
			
				
					|  |  |  |         log.debug("getKey param keyExpress:{},token:{}", keyExpress, token); | 
			
		
	
		
			
				
					|  |  |  |         if (StringUtils.isBlank(token)) { | 
			
		
	
		
			
				
					|  |  |  |             return null; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  | 
 |