98 lines
3.0 KiB
Python
98 lines
3.0 KiB
Python
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() |