Program/mooc/crud/crud_admin.py
烟雨如花 4f34f5b8be init
2024-12-31 22:27:04 +08:00

98 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
class CRUDAdmin:
def get(self, db: Session, id: int) -> Optional[Admin]:
return db.query(Admin).filter(Admin.id == id).first()
def get_by_username(self, db: Session, username: str) -> Optional[Admin]:
return db.query(Admin).filter(Admin.username == username).first()
def get_multi(
self, db: Session, *, skip: int = 0, limit: int = 100
) -> List[Admin]:
return db.query(Admin).offset(skip).limit(limit).all()
def create(self, db: Session, *, obj_in: AdminCreate) -> Admin:
db_obj = Admin(
weid=obj_in.weid,
username=obj_in.username,
password=obj_in.password, # ע<>⣺ʵ<E2A3BA><CAB5>ʹ<EFBFBD><CAB9>ʱӦ<CAB1>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>?
pcate_id=obj_in.pcate_id,
cate_id=obj_in.cate_id,
relation_id=obj_in.relation_id,
is_delete=obj_in.is_delete
)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
def update(
self, db: Session, *, db_obj: Admin, obj_in: AdminUpdate
) -> Admin:
update_data = obj_in.dict(exclude_unset=True)
for field, value in update_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, *, id: int) -> Admin:
obj = db.query(Admin).get(id)
if obj:
obj.is_delete = 1
db.add(obj)
db.commit()
return obj
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()