token_model.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from datetime import datetime
  2. from typing import Type
  3. from sqlalchemy import Column, Integer, DateTime, Text
  4. from sqlalchemy.orm import Session
  5. # from Log import logger
  6. from app.models.base_model import Base
  7. class TokenModel(Base):
  8. __tablename__ = "token"
  9. id = Column(Integer, primary_key=True, index=True)
  10. user_id = Column(Integer, index=True)
  11. token = Column(Text(10000))
  12. bisheng_token = Column(Text(10000))
  13. ragflow_token = Column(Text(10000))
  14. created_at = Column(DateTime, default=datetime.utcnow)
  15. def upsert_token(db: Session, user_id: int, access_token: str, bisheng_token: str, ragflow_token: str):
  16. # 参数验证
  17. if not isinstance(user_id, int) or user_id <= 0:
  18. return
  19. if not access_token or not bisheng_token or not ragflow_token:
  20. return
  21. db_token = None
  22. try:
  23. # 查询现有记录
  24. existing_token = db.query(TokenModel).filter_by(user_id=user_id).first()
  25. if existing_token:
  26. # 记录存在,进行更新
  27. existing_token.token = access_token
  28. existing_token.bisheng_token = bisheng_token
  29. existing_token.ragflow_token = ragflow_token
  30. else:
  31. # 记录不存在,进行插入
  32. db_token = TokenModel(
  33. user_id=user_id,
  34. token=access_token,
  35. bisheng_token=bisheng_token,
  36. ragflow_token=ragflow_token
  37. )
  38. db.add(db_token)
  39. # 提交事务
  40. db.commit()
  41. db.refresh(db_token)
  42. except Exception as e:
  43. # 异常处理
  44. db.rollback() # 回滚事务
  45. async def update_token(db: Session, user_id: int, access_token: str, token: dict):
  46. # 参数验证
  47. if not isinstance(user_id, int) or user_id <= 0:
  48. return
  49. db_token = None
  50. # print(token)
  51. try:
  52. # 查询现有记录
  53. db_token = db.query(TokenModel).filter_by(user_id=user_id).first()
  54. if db_token:
  55. # 记录存在,进行更新
  56. db_token.token = access_token
  57. # for k, v in token.items():
  58. # setattr(db_token, k.replace("app", "token"), v)
  59. else:
  60. # 记录不存在,进行插入
  61. db_token = TokenModel(
  62. user_id=user_id,
  63. token=access_token,
  64. )
  65. # for k, v in token.items():
  66. # setattr(db_token, k.replace("app", "token"), v)
  67. db.add(db_token)
  68. # 提交事务
  69. db.commit()
  70. db.refresh(db_token)
  71. except Exception as e:
  72. # logger.error(e)
  73. # 异常处理
  74. db.rollback() # 回滚事务