소스 검색

fix key_value

chenbiao 1 년 전
부모
커밋
de3ad9f1e9

+ 0 - 3
netflix-service/src/main/java/com/cyksj/service/claude/OAuthClaudeCodeService.java

@@ -11,7 +11,4 @@ public interface OAuthClaudeCodeService {
 
     OAuthToken validateToken(String code, String tokenValue);
 
-    void revokeToken(String tokenValue);
-
-    void cleanExpiredTokens();
 }

+ 21 - 37
netflix-service/src/main/java/com/cyksj/service/claude/impl/OAuthClaudeCodeServiceImpl.java

@@ -1,11 +1,9 @@
 package com.cyksj.service.claude.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DateField;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.util.RandomUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.mapper.claudecode.OAuthClientMapper;
 import com.cyksj.mapper.claudecode.OAuthTokenMapper;
 import com.cyksj.model.entity.OAuthClient;
@@ -16,15 +14,12 @@ import com.cyksj.model.views.ClaudeCodeUserApiKeysView;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.claude.ClaudeCodeService;
 import com.cyksj.service.claude.OAuthClaudeCodeService;
-import com.google.gson.JsonObject;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 
 /**
  * OAuth服务
@@ -79,6 +74,21 @@ public class OAuthClaudeCodeServiceImpl implements OAuthClaudeCodeService {
                 return token;
 
             }else {
+                String keyValue = userApiKeys.get(0).getKeyValue();
+                OAuthToken oAuthToken = oauthTokenMapper.selectOne(Wrappers.lambdaQuery(OAuthToken.class).eq(OAuthToken::getClientId, clientId).eq(OAuthToken::getUserId, userId));
+                if (oAuthToken == null) {
+                    oAuthToken = new OAuthToken();
+                    oAuthToken.setKeyValue(keyValue);
+                    oAuthToken.setStatus(1);
+                    oAuthToken.setUserId(userId);
+                    oauthTokenMapper.insert(oAuthToken);
+                }else {
+                    oAuthToken = new OAuthToken();
+                    oAuthToken.setKeyValue(keyValue);
+                    oAuthToken.setStatus(1);
+                    oAuthToken.setUserId(userId);
+                    oauthTokenMapper.updateById(oAuthToken);
+                }
                 return userApiKeys.get(0).getKeyValue();
             }
         }
@@ -92,43 +102,17 @@ public class OAuthClaudeCodeServiceImpl implements OAuthClaudeCodeService {
     @Override
     public OAuthToken validateToken(String code, String key) {
         if (StringUtils.isNotBlank(key)) {
+            QueryWrapper<OAuthToken> wrapper = new QueryWrapper<>();
+            wrapper.eq("key_value", key)
+                    .eq("status", 1);
+            return oauthTokenMapper.selectOne(wrapper);
 
         } else {
             QueryWrapper<OAuthToken> wrapper = new QueryWrapper<>();
             wrapper.eq("token", code)
-                    .eq("status", 1)
-                    .gt("expires_at", LocalDateTime.now());
+                    .eq("status", 1);
             return oauthTokenMapper.selectOne(wrapper);
         }
-        QueryWrapper<OAuthToken> wrapper = new QueryWrapper<>();
-        wrapper.eq("key_value", key)
-                .eq("status", 1)
-                .gt("expires_at", LocalDateTime.now());
-        return oauthTokenMapper.selectOne(wrapper);
-
-    }
-
-    /**
-     * 撤销令牌
-     */
-    @Override
-    public void revokeToken(String tokenValue) {
-        QueryWrapper<OAuthToken> wrapper = new QueryWrapper<>();
-        wrapper.eq("token_value", tokenValue);
-
-        OAuthToken token = new OAuthToken();
-        token.setStatus(0);
-
-        oauthTokenMapper.update(token, wrapper);
     }
 
-    /**
-     * 清理过期令牌
-     */
-    @Override
-    public void cleanExpiredTokens() {
-        QueryWrapper<OAuthToken> wrapper = new QueryWrapper<>();
-        wrapper.lt("expires_at", LocalDateTime.now());
-        oauthTokenMapper.delete(wrapper);
-    }
 }