From d961b5e9290edef3bee5cd6adc4a636af209c1e7 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 09 一月 2025 18:52:21 +0800
Subject: [PATCH] tmp

---
 app/models/token_model.py |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 6 deletions(-)

diff --git a/app/models/token_model.py b/app/models/token_model.py
index 764d999..7ad0e01 100644
--- a/app/models/token_model.py
+++ b/app/models/token_model.py
@@ -1,9 +1,11 @@
 from datetime import datetime
 from typing import Type
 
-from sqlalchemy import Column, Integer, DateTime, Text
+from sqlalchemy import Column, Integer, DateTime, Text, String
 from sqlalchemy.orm import Session
 
+from app.config.const import RAGFLOW
+# from Log import logger
 from app.models.base_model import Base
 
 
@@ -11,9 +13,9 @@
     __tablename__ = "token"
     id = Column(Integer, primary_key=True, index=True)
     user_id = Column(Integer, index=True)
-    token = Column(Text(10000), unique=True, index=True)
-    bisheng_token = Column(Text(10000), unique=True, index=True)
-    ragflow_token = Column(Text(10000), unique=True, index=True)
+    token = Column(Text(10000))
+    bisheng_token = Column(Text(10000))
+    ragflow_token = Column(Text(10000))
     created_at = Column(DateTime, default=datetime.utcnow)
 
 
@@ -52,5 +54,49 @@
         db.rollback()  # 鍥炴粴浜嬪姟
 
 
-def get_token(db: Session, user_id: int) -> Type[TokenModel] | None:
-    return db.query(TokenModel).filter_by(user_id=user_id).first()
+async def update_token(db: Session, user_id: int, access_token: str, token: dict):
+    # 鍙傛暟楠岃瘉
+    if not isinstance(user_id, int) or user_id <= 0:
+        return
+    db_token = None
+    # print(token)
+    try:
+        # 鏌ヨ鐜版湁璁板綍
+        db_token = db.query(TokenModel).filter_by(user_id=user_id).first()
+        if db_token:
+            # 璁板綍瀛樺湪锛岃繘琛屾洿鏂�
+            db_token.token = access_token
+            db_token.ragflow_token = token.get(RAGFLOW, "")
+            # db_token.token = access_token
+            # for k, v in token.items():
+            #     setattr(db_token, k.replace("app", "token"), v)
+        else:
+            # 璁板綍涓嶅瓨鍦紝杩涜鎻掑叆
+            db_token = TokenModel(
+                user_id=user_id,
+                token=access_token,
+                ragflow_token = token.get(RAGFLOW, "")
+            )
+            # for k, v in token.items():
+            #     setattr(db_token, k.replace("app", "token"), v)
+            db.add(db_token)
+
+        # 鎻愪氦浜嬪姟
+        db.commit()
+        db.refresh(db_token)
+
+    except Exception as e:
+        # logger.error(e)
+        # 寮傚父澶勭悊
+        db.rollback()  # 鍥炴粴浜嬪姟
+
+
+
+class ApiTokenModel(Base):
+    __tablename__ = "chat_api_tokens"
+    id = Column(String(32), primary_key=True)
+    app_id = Column(String(32), index=True)
+    type = Column(String(16))
+    token = Column(String(255))
+    created_at = Column(DateTime, default=datetime.now())
+    last_used_at = Column(DateTime, default=datetime.now())

--
Gitblit v1.8.0