From 58314c5ee9d8947ca881d995a8b930e28488e665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=3F=2E=2E=E6=BF=A1=2E=2E?= <2324281453@qq.com> Date: Fri, 3 Jan 2025 17:06:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0AccountPhoneapp,AccountToutia?= =?UTF-8?q?oapp,AccountWebapp,AccountWxapp,AccountXzapp,Account=E7=AD=89?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 5 +- mooc/api/v1/api.py | 15 +- mooc/api/v1/endpoints/account.py | 78 ++++++++++ mooc/crud/crud_account.py | 248 ++++++++++++++++++++++++++++++- mooc/crud/crud_admin.py | 50 +------ mooc/db/base.py | 16 +- mooc/models/account.py | 125 ++++++++++++++++ mooc/models/admin.py | 27 ---- mooc/schemas/account.py | 204 +++++++++++++++++++++++++ mooc/schemas/admin.py | 47 ------ 10 files changed, 684 insertions(+), 131 deletions(-) create mode 100644 mooc/api/v1/endpoints/account.py diff --git a/main.py b/main.py index 4b47837..f85900c 100755 --- a/main.py +++ b/main.py @@ -1,9 +1,9 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware import uvicorn +from mooc.db.database import init_db from mooc.api.v1.api import api_router from mooc.core.config import settings -from mooc.db.database import init_db app = FastAPI( title="ExamService", @@ -19,6 +19,7 @@ app.add_middleware( allow_methods=["*"], allow_headers=["*"], ) + # 初始化数据库 init_db() @@ -29,4 +30,4 @@ async def root(): return {"message": "Welcome to ExamService API"} if __name__ == '__main__': - uvicorn.run('main:app', host='0.0.0.0', port=2333, reload=True, workers=1) \ No newline at end of file + uvicorn.run('main:app', host='0.0.0.0', port=8000, reload=True, workers=1) \ No newline at end of file diff --git a/mooc/api/v1/api.py b/mooc/api/v1/api.py index c455633..cd7ebab 100644 --- a/mooc/api/v1/api.py +++ b/mooc/api/v1/api.py @@ -1,5 +1,5 @@ from fastapi import APIRouter -from mooc.api.v1.endpoints import admin, wechat +from mooc.api.v1.endpoints import admin, wechat, account api_router = APIRouter() @@ -10,5 +10,18 @@ api_router.include_router( tags=["admins"] ) +api_router.include_router( + wechat.router, + prefix="/wechat", + tags=["wechat"] +) + +# 注册账号路由 +api_router.include_router( + account.account_router, + prefix="/accounts", + tags=["accounts"] +) + # Add WeChat endpoints api_router.include_router(wechat.router, prefix="/wechat", tags=["wechat"]) \ No newline at end of file diff --git a/mooc/api/v1/endpoints/account.py b/mooc/api/v1/endpoints/account.py new file mode 100644 index 0000000..86cc0b5 --- /dev/null +++ b/mooc/api/v1/endpoints/account.py @@ -0,0 +1,78 @@ +from typing import List +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session +from mooc.api import deps +from mooc.crud.crud_account import ims_account_baiduapp +from mooc.schemas.account import AccountBaiduappCreate, AccountBaiduappRead, AccountBaiduappUpdate + +account_router = APIRouter() + +@account_router.post("/baiduapp", response_model=AccountBaiduappRead) +def create_baiduapp( + *, + db: Session = Depends(deps.get_db), + baiduapp_in: AccountBaiduappCreate, +): + """ + 创建百度小程序账号 + """ + baiduapp = ims_account_baiduapp.create(db=db, obj_in=baiduapp_in) + return baiduapp + +@account_router.get("/baiduapp/{acid}", response_model=AccountBaiduappRead) +def read_baiduapp( + *, + db: Session = Depends(deps.get_db), + acid: int, +): + """ + 获取百度小程序账号信息 + """ + baiduapp = ims_account_baiduapp.get(db=db, acid=acid) + if not baiduapp: + raise HTTPException( + status_code=404, + detail="Baidu app not found" + ) + return baiduapp + +@account_router.put("/baiduapp/{acid}", response_model=AccountBaiduappRead) +def update_baiduapp( + *, + db: Session = Depends(deps.get_db), + acid: int, + baiduapp_in: AccountBaiduappUpdate, +): + """ + 更新百度小程序账号信息 + """ + baiduapp = ims_account_baiduapp.get(db=db, acid=acid) + if not baiduapp: + raise HTTPException( + status_code=404, + detail="Baidu app not found" + ) + baiduapp = ims_account_baiduapp.update( + db=db, + db_obj=baiduapp, + obj_in=baiduapp_in + ) + return baiduapp + +@account_router.delete("/baiduapp/{acid}", response_model=AccountBaiduappRead) +def delete_baiduapp( + *, + db: Session = Depends(deps.get_db), + acid: int, +): + """ + 删除百度小程序账号 + """ + baiduapp = ims_account_baiduapp.get(db=db, acid=acid) + if not baiduapp: + raise HTTPException( + status_code=404, + detail="Baidu app not found" + ) + baiduapp = ims_account_baiduapp.delete(db=db, acid=acid) + return baiduapp \ No newline at end of file diff --git a/mooc/crud/crud_account.py b/mooc/crud/crud_account.py index 451cd04..687c14f 100644 --- a/mooc/crud/crud_account.py +++ b/mooc/crud/crud_account.py @@ -1,8 +1,36 @@ from sqlalchemy.orm import Session from typing import Optional -from mooc.models.account import AccountWechats -from mooc.schemas.account import AccountWechatsCreate, AccountWechatsUpdate +from mooc.models.account import ( + AccountWechats, + AccountAliapp, + AccountBaiduapp, + AccountPhoneapp, + AccountToutiaoapp, + AccountWebapp, + Account, + AccountWxapp, + AccountXzapp + ) +from mooc.schemas.account import ( + AccountWechatsCreate, + AccountWechatsUpdate, + AccountAliappCreate, + AccountAliappUpdate, + AccountBaiduappCreate, + AccountBaiduappUpdate, + AccountPhoneappCreate, + AccountPhoneappUpdate, + AccountToutiaoappCreate, + AccountToutiaoappUpdate, + AccountWebappCreate, + AccountWebappUpdate, + AccountXzappCreate, + AccountXzappUpdate, + AccountWxappCreate, + AccountWxappUpdate + +) class CRUDAccountWechats: def create(self, db: Session, obj_in: AccountWechatsCreate) -> AccountWechats: @@ -31,4 +59,218 @@ class CRUDAccountWechats: db.delete(obj) db.commit() -account_wechats = CRUDAccountWechats() \ No newline at end of file + +class CRUDAccountAliapp: + def create(self, db: Session, obj_in: AccountAliappCreate) -> AccountAliapp: + db_obj = AccountAliapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountAliapp]: + return db.query(AccountAliapp).filter(AccountAliapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountAliapp, obj_in: AccountAliappUpdate + ) -> AccountAliapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountAliapp).filter(AccountAliapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() +class CRUDAccountBaiduapp: + def create(self, db: Session, obj_in: AccountBaiduappCreate) -> AccountBaiduapp: + db_obj = AccountBaiduapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountBaiduapp]: + return db.query(AccountBaiduapp).filter(AccountBaiduapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountBaiduapp, obj_in: AccountBaiduappUpdate + ) -> AccountBaiduapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountBaiduapp).filter(AccountBaiduapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() +class CRUDAccountPhoneapp: + def create(self, db: Session, obj_in: AccountPhoneappCreate) -> AccountPhoneapp: + db_obj = AccountPhoneapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountPhoneapp]: + return db.query(AccountPhoneapp).filter(AccountPhoneapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountPhoneapp, obj_in: AccountPhoneappUpdate + ) -> AccountPhoneapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountPhoneapp).filter(AccountPhoneapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() + +class CRUDAccountToutiaoapp: + def create(self, db: Session, obj_in: AccountToutiaoappCreate) -> AccountToutiaoapp: + db_obj = AccountToutiaoapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountToutiaoapp]: + return db.query(AccountToutiaoapp).filter(AccountToutiaoapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountToutiaoapp, obj_in: AccountToutiaoappUpdate + ) -> AccountToutiaoapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountToutiaoapp).filter(AccountToutiaoapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() + + +class CRUDAccount: + def get_by_uniacid(self, db: Session, *, uniacid: int) -> Optional[Account]: + return db.query(Account).filter(Account.uniacid == uniacid).first() + +account = CRUDAccount() + + + + +class CRUDAccountWebapp: + def create(self, db: Session, *, obj_in: AccountWebappCreate) -> AccountWebapp: + db_obj = AccountWebapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountWebapp]: + return db.query(AccountWebapp).filter(AccountWebapp.acid == acid).first() + + def update( + self, + db: Session, + *, + db_obj: AccountWebapp, + obj_in: AccountWebappUpdate + ) -> AccountWebapp: + data = obj_in.dict(exclude_unset=True) + for field, value in data.items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountWebapp).filter(AccountWebapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() + + + +class CRUDAccountWxapp: + def create(self, db: Session, obj_in: AccountWxappCreate) -> AccountWxapp: + db_obj = AccountWxapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountWxapp]: + return db.query(AccountWxapp).filter(AccountWxapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountWxapp, obj_in: AccountWxappUpdate + ) -> AccountWxapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountWxapp).filter(AccountWxapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() + +class CRUDAccountXzapp: + def create(self, db: Session, obj_in: AccountXzappCreate) -> AccountXzapp: + db_obj = AccountXzapp(**obj_in.dict()) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def get(self, db: Session, acid: int) -> Optional[AccountXzapp]: + return db.query(AccountXzapp).filter(AccountXzapp.acid == acid).first() + + def update( + self, db: Session, *, db_obj: AccountXzapp, obj_in: AccountXzappUpdate + ) -> AccountXzapp: + for field, value in obj_in.dict(exclude_unset=True).items(): + setattr(db_obj, field, value) + db.add(db_obj) + db.commit() + db.refresh(db_obj) + return db_obj + + def delete(self, db: Session, acid: int) -> None: + obj = db.query(AccountXzapp).filter(AccountXzapp.acid == acid).first() + if obj: + db.delete(obj) + db.commit() + +# 在文件末尾添加实例 +account_wxapp = CRUDAccountWxapp() +account_xzapp = CRUDAccountXzapp() +account_webapp = CRUDAccountWebapp() + +account_wechats = CRUDAccountWechats() +ims_account_aliapp = CRUDAccountAliapp() +ims_account_baiduapp = CRUDAccountBaiduapp() +ims_account_phoneapp = CRUDAccountPhoneapp() +ims_account_toutiaoapp = CRUDAccountToutiaoapp() \ No newline at end of file diff --git a/mooc/crud/crud_admin.py b/mooc/crud/crud_admin.py index c71fe9a..76d3e60 100644 --- a/mooc/crud/crud_admin.py +++ b/mooc/crud/crud_admin.py @@ -1,7 +1,7 @@ from typing import List, Optional from sqlalchemy.orm import Session -from mooc.models.admin import Admin,Account,AccountWebapp -from mooc.schemas.admin import AdminCreate, AdminUpdate,AccountCreate, AccountUpdate, AccountWebappCreate, AccountWebappUpdate +from mooc.models.admin import Admin +from mooc.schemas.admin import AdminCreate, AdminUpdate class CRUDAdmin: @@ -20,7 +20,7 @@ class CRUDAdmin: db_obj = Admin( weid=obj_in.weid, username=obj_in.username, - password=obj_in.password, # ע�⣺ʵ��ʹ��ʱӦ�ö�������й�ϣ����? + password=obj_in.password, pcate_id=obj_in.pcate_id, cate_id=obj_in.cate_id, relation_id=obj_in.relation_id, @@ -52,47 +52,3 @@ class CRUDAdmin: admin = CRUDAdmin() - - -class CRUDAccount: - def get_by_uniacid(self, db: Session, *, uniacid: int) -> Optional[Account]: - return db.query(Account).filter(Account.uniacid == uniacid).first() - -account = CRUDAccount() - - - - -class CRUDAccountWebapp: - def create(self, db: Session, *, obj_in: AccountWebappCreate) -> AccountWebapp: - db_obj = AccountWebapp(**obj_in.dict()) - db.add(db_obj) - db.commit() - db.refresh(db_obj) - return db_obj - - def get(self, db: Session, acid: int) -> Optional[AccountWebapp]: - return db.query(AccountWebapp).filter(AccountWebapp.acid == acid).first() - - def update( - self, - db: Session, - *, - db_obj: AccountWebapp, - obj_in: AccountWebappUpdate - ) -> AccountWebapp: - data = obj_in.dict(exclude_unset=True) - for field, value in data.items(): - setattr(db_obj, field, value) - db.add(db_obj) - db.commit() - db.refresh(db_obj) - return db_obj - - def delete(self, db: Session, acid: int) -> None: - obj = db.query(AccountWebapp).filter(AccountWebapp.acid == acid).first() - if obj: - db.delete(obj) - db.commit() - -account_webapp = CRUDAccountWebapp() \ No newline at end of file diff --git a/mooc/db/base.py b/mooc/db/base.py index 362b548..7ece256 100644 --- a/mooc/db/base.py +++ b/mooc/db/base.py @@ -1,5 +1,13 @@ from mooc.db.database import Base - -# ģעᵽBase.metadata -from mooc.models.admin import Admin, Account, AccountWebapp -from mooc.models.account import AccountWechats \ No newline at end of file +from mooc.models.admin import Admin +from mooc.models.account import ( + AccountWechats, + AccountAliapp, + AccountBaiduapp, + AccountPhoneapp, + AccountToutiaoapp, + AccountWebapp, + AccountWxapp, + AccountXzapp, + Account, +) \ No newline at end of file diff --git a/mooc/models/account.py b/mooc/models/account.py index bb5bb9c..1e32dd0 100644 --- a/mooc/models/account.py +++ b/mooc/models/account.py @@ -25,5 +25,130 @@ class AccountWechats(Base): subscribeurl = Column(String(120), nullable=False) auth_refresh_token = Column(String(255), nullable=False) + class Config: + from_attributes = True + + + + + +class AccountAliapp(Base): + __tablename__ = 'ims_account_aliapp' + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, nullable=False) + level = Column(SmallInteger, nullable=False) + name = Column(String(30), nullable=False) + description = Column(String(255), nullable=False) + key = Column(String(16), nullable=False) + + class Config: + from_attributes = True + +class AccountBaiduapp(Base): + __tablename__ = "ims_account_baiduapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True, nullable=False) + name = Column(String(30), nullable=False) + appid = Column(String(32), nullable=False) + key = Column(String(32), nullable=False) + secret = Column(String(32), nullable=False) + description = Column(String(255), nullable=False) + + class Config: + from_attributes = True + + +class AccountPhoneapp(Base): + __tablename__ = "ims_account_phoneapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True, nullable=False) + name = Column(String(255), nullable=False) + + class Config: + from_attributes = True + +class AccountToutiaoapp(Base): + __tablename__ = "ims_account_toutiaoapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True, nullable=False) + name = Column(String(30), nullable=False) + appid = Column(String(32), nullable=False) + key = Column(String(32), nullable=False) + secret = Column(String(50), nullable=False) + description = Column(String(255), nullable=False) + + class Config: + from_attributes = True + + + +class Account(Base): + __tablename__ = "ims_account" + + acid = Column(Integer, primary_key=True, autoincrement=True) + uniacid = Column(Integer, nullable=False, index=True) + hash = Column(String(8), nullable=False) + type = Column(SmallInteger, nullable=False) + isconnect = Column(SmallInteger, nullable=False) + isdeleted = Column(SmallInteger, nullable=False) + endtime = Column(Integer, nullable=False) + send_account_expire_status = Column(SmallInteger, nullable=False) + send_api_expire_status = Column(SmallInteger, nullable=False) + + class Config: + from_attributes = True + + + +class AccountWebapp(Base): + __tablename__ = "ims_account_webapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True) + name = Column(String(255)) + + class Config: + from_attributes = True + +class AccountWxapp(Base): + __tablename__ = "ims_account_wxapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True, nullable=False) + token = Column(String(32), nullable=False) + encodingaeskey = Column(String(43), nullable=False) + level = Column(SmallInteger, nullable=False) + account = Column(String(30), nullable=False) + original = Column(String(50), nullable=False) + key = Column(String(50), nullable=False) + secret = Column(String(50), nullable=False) + name = Column(String(30), nullable=False) + appdomain = Column(String(255), nullable=False) + auth_refresh_token = Column(String(255)) + + class Config: + from_attributes = True + +class AccountXzapp(Base): + __tablename__ = "ims_account_xzapp" + + acid = Column(Integer, primary_key=True) + uniacid = Column(Integer, index=True, nullable=False) + name = Column(String(255), nullable=False) + original = Column(String(50), nullable=False) + lastupdate = Column(Integer, nullable=False) + styleid = Column(Integer, nullable=False) + createtime = Column(Integer, nullable=False) + token = Column(String(32), nullable=False) + encodingaeskey = Column(String(255), nullable=False) + xzapp_id = Column(String(30), nullable=False) + level = Column(SmallInteger, nullable=False) + key = Column(String(80), nullable=False) + secret = Column(String(80), nullable=False) + class Config: from_attributes = True \ No newline at end of file diff --git a/mooc/models/admin.py b/mooc/models/admin.py index ba28e99..e20f6e2 100644 --- a/mooc/models/admin.py +++ b/mooc/models/admin.py @@ -22,30 +22,3 @@ class Admin(Base): class Config: from_attributes = True -class Account(Base): - __tablename__ = "ims_account" - - acid = Column(Integer, primary_key=True, autoincrement=True) - uniacid = Column(Integer, nullable=False, index=True) - hash = Column(String(8), nullable=False) - type = Column(SmallInteger, nullable=False) - isconnect = Column(SmallInteger, nullable=False) - isdeleted = Column(SmallInteger, nullable=False) - endtime = Column(Integer, nullable=False) - send_account_expire_status = Column(SmallInteger, nullable=False) - send_api_expire_status = Column(SmallInteger, nullable=False) - - class Config: - from_attributes = True - - - -class AccountWebapp(Base): - __tablename__ = "ims_account_webapp" - - acid = Column(Integer, primary_key=True) - uniacid = Column(Integer, index=True) - name = Column(String(255)) - - class Config: - from_attributes = True \ No newline at end of file diff --git a/mooc/schemas/account.py b/mooc/schemas/account.py index b7e3cef..81df821 100644 --- a/mooc/schemas/account.py +++ b/mooc/schemas/account.py @@ -33,5 +33,209 @@ class AccountWechatsUpdate(BaseModel): class AccountWechats(AccountWechatsBase): acid: int + class Config: + from_attributes = True + + + + + +class AccountAliappBase(BaseModel): + uniacid: int + level: int + name: str + description: str + key: str + +class AccountAliappCreate(AccountAliappBase): + pass + +class AccountAliappUpdate(BaseModel): + level: Optional[int] + name: Optional[str] + description: Optional[str] + key: Optional[str] + +class AccountAliappRead(AccountAliappBase): + acid: int + + class Config: + from_attributes = True + +class AccountBaiduappBase(BaseModel): + uniacid: int + name: str + appid: str + key: str + secret: str + description: str + +class AccountBaiduappCreate(AccountBaiduappBase): + pass + +class AccountBaiduappUpdate(BaseModel): + name: Optional[str] + appid: Optional[str] + key: Optional[str] + secret: Optional[str] + description: Optional[str] + +class AccountBaiduappRead(AccountBaiduappBase): + acid: int + + class Config: + from_attributes = True + + +class AccountPhoneappBase(BaseModel): + uniacid: int + name: str + +class AccountPhoneappCreate(AccountPhoneappBase): + pass + +class AccountPhoneappUpdate(BaseModel): + name: Optional[str] + +class AccountPhoneappRead(AccountPhoneappBase): + acid: int + + class Config: + from_attributes = True + +class AccountToutiaoappBase(BaseModel): + uniacid: int + name: str + appid: str + key: str + secret: str + description: str + +class AccountToutiaoappCreate(AccountToutiaoappBase): + pass + +class AccountToutiaoappUpdate(BaseModel): + name: Optional[str] + appid: Optional[str] + key: Optional[str] + secret: Optional[str] + description: Optional[str] + +class AccountToutiaoappRead(AccountToutiaoappBase): + acid: int + + class Config: + from_attributes = True + + + +class AccountBase(BaseModel): + uniacid: int + hash: str + type: int + isconnect: int + isdeleted: int + endtime: int + send_account_expire_status: int + send_api_expire_status: int + +class AccountCreate(AccountBase): + pass + +class AccountUpdate(AccountBase): + pass + +class Account(AccountBase): + acid: int + + class Config: + from_attributes = True + + + + + +class AccountWebappBase(BaseModel): + uniacid: Optional[int] + name: Optional[str] + +class AccountWebappCreate(AccountWebappBase): + pass + +class AccountWebappUpdate(AccountWebappBase): + pass + +class AccountWebapp(AccountWebappBase): + acid: int + + class Config: + from_attributes = True + +class AccountWxappBase(BaseModel): + uniacid: int + token: str + encodingaeskey: str + level: int + account: str + original: str + key: str + secret: str + name: str + appdomain: str + auth_refresh_token: Optional[str] + +class AccountWxappCreate(AccountWxappBase): + pass + +class AccountWxappUpdate(BaseModel): + token: Optional[str] + encodingaeskey: Optional[str] + level: Optional[int] + account: Optional[str] + original: Optional[str] + key: Optional[str] + secret: Optional[str] + name: Optional[str] + appdomain: Optional[str] + auth_refresh_token: Optional[str] + +class AccountWxappRead(AccountWxappBase): + acid: int + + class Config: + from_attributes = True + +class AccountXzappBase(BaseModel): + uniacid: int + name: str + original: str + lastupdate: int + styleid: int + createtime: int + token: str + encodingaeskey: str + xzapp_id: str + level: int + key: str + secret: str + +class AccountXzappCreate(AccountXzappBase): + pass + +class AccountXzappUpdate(BaseModel): + name: Optional[str] + original: Optional[str] + lastupdate: Optional[int] + styleid: Optional[int] + token: Optional[str] + encodingaeskey: Optional[str] + xzapp_id: Optional[str] + level: Optional[int] + key: Optional[str] + secret: Optional[str] + +class AccountXzappRead(AccountXzappBase): + acid: int + class Config: from_attributes = True \ No newline at end of file diff --git a/mooc/schemas/admin.py b/mooc/schemas/admin.py index 3efc276..2118e1d 100644 --- a/mooc/schemas/admin.py +++ b/mooc/schemas/admin.py @@ -1,8 +1,6 @@ from typing import Optional from pydantic import BaseModel -from datetime import datetime -# Adminģ class AdminBase(BaseModel): weid: str username: str @@ -11,11 +9,9 @@ class AdminBase(BaseModel): relation_id: str is_delete: int = 1 -# Adminʱģ class AdminCreate(AdminBase): password: str -# Adminʱģ class AdminUpdate(BaseModel): weid: Optional[str] = None username: Optional[str] = None @@ -25,7 +21,6 @@ class AdminUpdate(BaseModel): relation_id: Optional[str] = None is_delete: Optional[int] = None -# AdminӦģ class Admin(AdminBase): id: int createtime: int @@ -34,45 +29,3 @@ class Admin(AdminBase): class Config: from_attributes = True - -class AccountBase(BaseModel): - uniacid: int - hash: str - type: int - isconnect: int - isdeleted: int - endtime: int - send_account_expire_status: int - send_api_expire_status: int - -class AccountCreate(AccountBase): - pass - -class AccountUpdate(AccountBase): - pass - -class Account(AccountBase): - acid: int - - class Config: - from_attributes = True - - - - - -class AccountWebappBase(BaseModel): - uniacid: Optional[int] - name: Optional[str] - -class AccountWebappCreate(AccountWebappBase): - pass - -class AccountWebappUpdate(AccountWebappBase): - pass - -class AccountWebapp(AccountWebappBase): - acid: int - - class Config: - from_attributes = True \ No newline at end of file