| 
					
				 | 
			
			
				@@ -2,6 +2,7 @@ package com.tzld.longarticle.recommend.server.service.exterior.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.lang.UUID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.SecretEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.param.AccessTokenParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.vo.AccessTokenVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.service.exterior.AccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,14 +22,17 @@ public class AccessTokenServiceImpl implements AccessTokenService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private RedisTemplate<String, String> redisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public AccessTokenVo getAccessToken(String secret) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!SecretEnum.contains(secret)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AccessTokenVo getAccessToken(AccessTokenParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(param == null || StringUtils.isEmpty(param.getSecret())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new RuntimeException("参数错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!SecretEnum.contains(param.getSecret())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new RuntimeException("secret 不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         AccessTokenVo accessTokenVo = new AccessTokenVo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String accessToken = redisTemplate.opsForValue().get(secret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String accessToken = redisTemplate.opsForValue().get(param.getSecret()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNotEmpty(accessToken)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long expire = redisTemplate.getExpire(secret, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long expire = redisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             accessTokenVo.setAccessToken(accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             accessTokenVo.setExpires(expire); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (redisTemplate.opsForHash().size(ACCESS_TOKEN_LIST) > 20) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -42,7 +46,7 @@ public class AccessTokenServiceImpl implements AccessTokenService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String newAccessToken = UUID.randomUUID().toString().replace("-", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisTemplate.opsForValue().set(secret, newAccessToken, 2L, TimeUnit.HOURS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            redisTemplate.opsForValue().set(param.getSecret(), newAccessToken, 2L, TimeUnit.HOURS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             long expire = 7200L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             long timestamp = System.currentTimeMillis() / 1000 + expire + 600; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redisTemplate.opsForHash().put(ACCESS_TOKEN_LIST, newAccessToken, timestamp); 
			 |