2025-01-06 00:30:49 +08:00
|
|
|
from typing import Optional
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
from mooc.crud.crud_base import CRUDBase
|
|
|
|
|
|
|
|
from mooc.models.goouc_fullexam import (Advert, Banji, Banner, Category, Cdkey, CdkeyCate, Cdkeys, Exercise, Feedback,
|
|
|
|
Gift, IndexBtn, Knowledge, KnowledgeCate, Notice, Order, Paper, PaperTest,
|
|
|
|
Phonecode, QYear, School, Setting, ShareRecord, SonSimple, Test, TestType,
|
2025-01-06 11:12:11 +08:00
|
|
|
TypeCate, Watermark, Wxtpl, Xuesheng
|
2025-01-06 00:30:49 +08:00
|
|
|
)
|
|
|
|
from mooc.schemas.goouc_fullexam import (AdvertUpdate, AdvertCreate, BanjiUpdate, BanjiCreate, BannerCreate,
|
|
|
|
BannerUpdate, CategoryCreate, CategoryUpdate, CdkeyCreate, CdkeyUpdate,
|
|
|
|
CdkeyCateCreate, CdkeyCateUpdate, IndexBtnCreate, IndexBtnUpdate, GiftCreate,
|
|
|
|
GiftUpdate, CdkeysCreate, CdkeysUpdate, ExerciseCreate, ExerciseUpdate,
|
|
|
|
FeedbackCreate, FeedbackUpdate, TypeCateCreate, TypeCateUpdate,
|
|
|
|
KnowledgeCreate, KnowledgeUpdate, KnowledgeCateCreate, KnowledgeCateUpdate,
|
|
|
|
NoticeCreate, NoticeUpdate, OrderCreate, OrderUpdate, PaperCreate, PaperUpdate,
|
|
|
|
PaperTestCreate, PaperTestUpdate, PhoneCodeUpdate, PhoneCodeCreate,
|
|
|
|
QYearCreate, QYearUpdate, SchoolCreate, SchoolUpdate, SettingCreate,
|
|
|
|
SettingUpdate, ShareRecordCreate, ShareRecordUpdate, SonSimpleCreate,
|
|
|
|
SonSimpleUpdate, TestCreate, TestUpdate, TestTypeCreate, TestTypeUpdate,
|
2025-01-06 11:12:11 +08:00
|
|
|
WatermarkCreate, WatermarkUpdate, WxTplCreate, WxTplUpdate,
|
|
|
|
XueshengCreate, XueshengUpdate
|
2025-01-06 00:30:49 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDAdvert(CRUDBase[Advert, AdvertCreate, AdvertUpdate]):
|
|
|
|
def get_advert(self, db: Session, admin_id: int) -> Optional[Advert]:
|
|
|
|
return self.get_by_field(db, "id", admin_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDBanji(CRUDBase[Banji, BanjiCreate, BanjiUpdate]):
|
|
|
|
def get_banji(self, db: Session, banji_id: int) -> Optional[Banji]:
|
|
|
|
return self.get_by_field(db, "banji_id", banji_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDBanner(CRUDBase[Banner, BannerCreate, BannerUpdate]):
|
|
|
|
def get_banner(self, db: Session, banner_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", banner_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDCategory(CRUDBase[Category, CategoryCreate, CategoryUpdate]):
|
|
|
|
def get_category(self, db: Session, category_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", category_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDCdkey(CRUDBase[Cdkey, CdkeyCreate, CdkeyUpdate]):
|
|
|
|
def get_cdkey(self, db: Session, cdkey_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", cdkey_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDCdkeyCate(CRUDBase[CdkeyCate, CdkeyCateCreate, CdkeyCateUpdate]):
|
|
|
|
def get_cdkey_cate(self, db: Session, cdkey_cate_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", cdkey_cate_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDCdkeys(CRUDBase[Cdkeys, CdkeysCreate, CdkeysUpdate]):
|
|
|
|
def get_cdkeys(self, db: Session, cdkeys_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", cdkeys_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDExercise(CRUDBase[Exercise, ExerciseCreate, ExerciseUpdate]):
|
|
|
|
def get_exercise(self, db: Session, exercise_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", exercise_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDFeedback(CRUDBase[Feedback, FeedbackCreate, FeedbackUpdate]):
|
|
|
|
def get_feedback(self, db: Session, feedback_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", feedback_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDGift(CRUDBase[Gift, GiftCreate, GiftUpdate]):
|
|
|
|
def get_gift(self, db: Session, gift_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", gift_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDIndexBtn(CRUDBase[IndexBtn, IndexBtnCreate, IndexBtnUpdate]):
|
|
|
|
def get_index_btn(self, db: Session, index_btn_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", index_btn_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDKnowledge(CRUDBase[Knowledge, KnowledgeCreate, KnowledgeUpdate]):
|
|
|
|
def get_knowledge(self, db: Session, knowledge_id: int):
|
|
|
|
return self.get_by_field(db, "knowledge_id", knowledge_id)
|
|
|
|
|
|
|
|
|
2025-01-06 11:12:11 +08:00
|
|
|
class CRUDKnowledgeCate(CRUDBase[KnowledgeCate, KnowledgeCateCreate, KnowledgeCateUpdate]):
|
2025-01-06 00:30:49 +08:00
|
|
|
def get_knowledge_cate(self, db: Session, knowledge_cate_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", knowledge_cate_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDNotice(CRUDBase[Notice, NoticeCreate, NoticeUpdate]):
|
|
|
|
def get_notice(self, db: Session, notice_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", notice_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDOrder(CRUDBase[Order, OrderCreate, OrderUpdate]):
|
|
|
|
def get_order(self, db: Session, order_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", order_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDPaper(CRUDBase[Paper, PaperCreate, PaperUpdate]):
|
|
|
|
def get_paper(self, db: Session, paper_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", paper_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDPaperTest(CRUDBase[PaperTest, PaperTestCreate, PaperTestUpdate]):
|
|
|
|
def get_paper_test(self, db: Session, paper_test_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", paper_test_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDPhonecode(CRUDBase[Phonecode, PhoneCodeCreate, PhoneCodeUpdate]):
|
|
|
|
def get_phonecode(self, db: Session, phonecode_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", phonecode_id)
|
2025-03-04 20:36:52 +08:00
|
|
|
def get_latest_by_phone(self, db: Session, phone: str, weid: int):
|
|
|
|
"""获取指定手机号的最新验证码记录"""
|
|
|
|
return db.query(self.model).filter(
|
|
|
|
self.model.phone == phone,
|
|
|
|
self.model.weid == weid
|
|
|
|
).order_by(self.model.createtime.desc()).first()
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
class CRUDQYear(CRUDBase[QYear, QYearCreate, QYearUpdate]):
|
|
|
|
def get_qyear(self, db: Session, qyear_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", qyear_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDSchool(CRUDBase[School, SchoolCreate, SchoolUpdate]):
|
|
|
|
def get_school(self, db: Session, school_id: int):
|
|
|
|
return self.get_by_field(db, "school_id", school_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDSetting(CRUDBase[Setting, SettingCreate, SettingUpdate]):
|
|
|
|
def get_setting(self, db: Session, setting_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", setting_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDShareRecord(CRUDBase[ShareRecord, ShareRecordCreate, ShareRecordUpdate]):
|
|
|
|
def get_share_record(self, db: Session, share_record_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", share_record_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDsonSimple(CRUDBase[SonSimple, SonSimpleCreate, SonSimpleUpdate]):
|
|
|
|
def get_son_simple(self, db: Session, son_simple_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", son_simple_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDTest(CRUDBase[Test, TestCreate, TestUpdate]):
|
|
|
|
def get_test(self, db: Session, test_id: int):
|
|
|
|
return self.get_by_field(db, "test_id", test_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDTestType(CRUDBase[TestType, TestTypeCreate, TestTypeUpdate]):
|
|
|
|
def get_test_type(self, db: Session, test_type_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", test_type_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CRUDTypeCate(CRUDBase[TypeCate, TypeCateCreate, TypeCateUpdate]):
|
|
|
|
def get_type_cate(self, db: Session, type_cate_id: int):
|
2025-01-06 11:12:11 +08:00
|
|
|
return self.get_by_field(db, "id", type_cate_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDWatermark(CRUDBase[Watermark, WatermarkCreate, WatermarkUpdate]):
|
|
|
|
def get_watermark(self, db: Session, watermark_id: int):
|
|
|
|
return self.get_by_field(db, "id", watermark_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDWxTpl(CRUDBase[Wxtpl, WxTplCreate, WxTplUpdate]):
|
|
|
|
def get_wx_tpl(self, db: Session, wx_tpl_id: int):
|
|
|
|
return self.get_by_field(db, "id", wx_tpl_id)
|
|
|
|
|
|
|
|
|
|
|
|
class CRUDXueshen(CRUDBase[Xuesheng, XueshengCreate, XueshengUpdate]):
|
|
|
|
def get_xueshen(self, db: Session, xueshen_id: int):
|
|
|
|
return self.get_by_field(db, "xuesheng_id", xueshen_id)
|
2025-01-06 00:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
advert = CRUDAdvert(Advert)
|
|
|
|
banji = CRUDBase(Banji)
|
|
|
|
banner = CRUDBanner(Banner)
|
|
|
|
category = CRUDCategory(Category)
|
|
|
|
cdkey = CRUDCdkey(Cdkey)
|
2025-01-06 11:12:11 +08:00
|
|
|
cdkey_cate = CRUDCdkeyCate(CdkeyCate)
|
2025-01-06 00:30:49 +08:00
|
|
|
cdkeys = CRUDCdkeys(Cdkeys)
|
|
|
|
exercise = CRUDExercise(Exercise)
|
|
|
|
feedback = CRUDFeedback(Feedback)
|
|
|
|
gift = CRUDGift(Gift)
|
2025-01-06 11:12:11 +08:00
|
|
|
index_btn = CRUDIndexBtn(IndexBtn)
|
2025-01-06 00:30:49 +08:00
|
|
|
knowledge = CRUDKnowledge(Knowledge)
|
2025-01-06 11:12:11 +08:00
|
|
|
knowledge_cate = CRUDKnowledgeCate(KnowledgeCate)
|
2025-01-06 00:30:49 +08:00
|
|
|
notice = CRUDNotice(Notice)
|
|
|
|
order = CRUDOrder(Order)
|
|
|
|
paper = CRUDPaper(Paper)
|
2025-01-06 11:12:11 +08:00
|
|
|
paper_test = CRUDPaperTest(PaperTest)
|
|
|
|
phone_code = CRUDPhonecode(Phonecode)
|
|
|
|
q_year = CRUDSchool(School)
|
2025-01-06 00:30:49 +08:00
|
|
|
school = CRUDSchool(School)
|
|
|
|
setting = CRUDSetting(Setting)
|
2025-01-06 11:12:11 +08:00
|
|
|
share_record = CRUDShareRecord(ShareRecord)
|
|
|
|
son_simple = CRUDsonSimple(SonSimple)
|
2025-01-06 00:30:49 +08:00
|
|
|
test = CRUDTest(Test)
|
2025-01-06 11:12:11 +08:00
|
|
|
test_type = CRUDTestType(TestType)
|
|
|
|
type_cate = CRUDTypeCate(TypeCate)
|
|
|
|
watermark = CRUDWatermark(Watermark)
|
|
|
|
wx_tpl = CRUDWxTpl(Wxtpl)
|
|
|
|
xueshen = CRUDXueshen(Xuesheng)
|