tmp
zhaoqingang
2025-01-15 9f116ea7e8f7d53a22b4dce10de942d564818a01
app/models/token_model.py
@@ -1,13 +1,12 @@
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 Log import logger
from app.config.const import RAGFLOW
# from Log import logger
from app.models.base_model import Base
from app.service.auth import UserAppDao
class TokenModel(Base):
@@ -67,16 +66,19 @@
        if db_token:
            # 记录存在,进行更新
            db_token.token = access_token
            for k, v in token.items():
                setattr(db_token, k.replace("app", "token"), v)
            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)
            # for k, v in token.items():
            #     setattr(db_token, k.replace("app", "token"), v)
            db.add(db_token)
        # 提交事务
@@ -84,14 +86,17 @@
        db.refresh(db_token)
    except Exception as e:
        logger.error(e)
        # logger.error(e)
        # 异常处理
        db.rollback()  # 回滚事务
async def get_token(db: Session, user_id: int):
    res = {i.app_type.replace("app", "token"): i.access_token for i in await UserAppDao(db).get_user_datas(user_id)}
    if not res:
        token = db.query(TokenModel).filter_by(user_id=user_id).first()
        res = {"ragflow_token": token.ragflow_token, "bisheng_token": token.bisheng_token}
    return res
class ApiTokenModel(Base):
    __tablename__ = "chat_api_tokens"
    id = Column(String(36), primary_key=True)
    app_id = Column(String(36), 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())