feat(mooc): 重构代码并添加新功能

- 添加了新的 Watermark、WxTpl 和 Xuesheng 模型及相应的 CRUD 类
- 新增了 goouc_fullexam_user 相关的模型和 CRUD 类
- 检查原有crud对应id,并手动修改
This commit is contained in:
jieyuu 2025-01-06 11:12:11 +08:00
parent 3ed18a297e
commit 1df5aefac3
5 changed files with 560 additions and 180 deletions

View File

@ -5,7 +5,7 @@ from mooc.crud.crud_base import CRUDBase
from mooc.models.goouc_fullexam import (Advert, Banji, Banner, Category, Cdkey, CdkeyCate, Cdkeys, Exercise, Feedback, from mooc.models.goouc_fullexam import (Advert, Banji, Banner, Category, Cdkey, CdkeyCate, Cdkeys, Exercise, Feedback,
Gift, IndexBtn, Knowledge, KnowledgeCate, Notice, Order, Paper, PaperTest, Gift, IndexBtn, Knowledge, KnowledgeCate, Notice, Order, Paper, PaperTest,
Phonecode, QYear, School, Setting, ShareRecord, SonSimple, Test, TestType, Phonecode, QYear, School, Setting, ShareRecord, SonSimple, Test, TestType,
TypeCate, TypeCate, Watermark, Wxtpl, Xuesheng
) )
from mooc.schemas.goouc_fullexam import (AdvertUpdate, AdvertCreate, BanjiUpdate, BanjiCreate, BannerCreate, from mooc.schemas.goouc_fullexam import (AdvertUpdate, AdvertCreate, BanjiUpdate, BanjiCreate, BannerCreate,
BannerUpdate, CategoryCreate, CategoryUpdate, CdkeyCreate, CdkeyUpdate, BannerUpdate, CategoryCreate, CategoryUpdate, CdkeyCreate, CdkeyUpdate,
@ -18,165 +18,154 @@ from mooc.schemas.goouc_fullexam import (AdvertUpdate, AdvertCreate, BanjiUpdate
QYearCreate, QYearUpdate, SchoolCreate, SchoolUpdate, SettingCreate, QYearCreate, QYearUpdate, SchoolCreate, SchoolUpdate, SettingCreate,
SettingUpdate, ShareRecordCreate, ShareRecordUpdate, SonSimpleCreate, SettingUpdate, ShareRecordCreate, ShareRecordUpdate, SonSimpleCreate,
SonSimpleUpdate, TestCreate, TestUpdate, TestTypeCreate, TestTypeUpdate, SonSimpleUpdate, TestCreate, TestUpdate, TestTypeCreate, TestTypeUpdate,
WatermarkCreate, WatermarkUpdate, WxTplCreate, WxTplUpdate,
XueshengCreate, XueshengUpdate
) )
class CRUDAdvert(CRUDBase[Advert, AdvertCreate, AdvertUpdate]): class CRUDAdvert(CRUDBase[Advert, AdvertCreate, AdvertUpdate]):
def get_advert(self, db: Session, admin_id: int) -> Optional[Advert]: def get_advert(self, db: Session, admin_id: int) -> Optional[Advert]:
return self.get_by_field(db, "id", admin_id) return self.get_by_field(db, "id", admin_id)
class CRUDBanji(CRUDBase[Banji, BanjiCreate, BanjiUpdate]): class CRUDBanji(CRUDBase[Banji, BanjiCreate, BanjiUpdate]):
def get_banji(self, db: Session, banji_id: int) -> Optional[Banji]: def get_banji(self, db: Session, banji_id: int) -> Optional[Banji]:
return self.get_by_field(db, "banji_id", banji_id) return self.get_by_field(db, "banji_id", banji_id)
class CRUDBanner(CRUDBase[Banner, BannerCreate, BannerUpdate]): class CRUDBanner(CRUDBase[Banner, BannerCreate, BannerUpdate]):
def get_banner(self, db: Session, banner_id: int): def get_banner(self, db: Session, banner_id: int):
return self.get_by_field(db, "banner_id", banner_id) return self.get_by_field(db, "id", banner_id)
class CRUDCategory(CRUDBase[Category, CategoryCreate, CategoryUpdate]): class CRUDCategory(CRUDBase[Category, CategoryCreate, CategoryUpdate]):
def get_category(self, db: Session, category_id: int): def get_category(self, db: Session, category_id: int):
return self.get_by_field(db, "category_id", category_id) return self.get_by_field(db, "id", category_id)
class CRUDCdkey(CRUDBase[Cdkey, CdkeyCreate, CdkeyUpdate]): class CRUDCdkey(CRUDBase[Cdkey, CdkeyCreate, CdkeyUpdate]):
def get_cdkey(self, db: Session, cdkey_id: int): def get_cdkey(self, db: Session, cdkey_id: int):
return self.get_by_field(db, "cdkey_id", cdkey_id) return self.get_by_field(db, "id", cdkey_id)
class CRUDCdkeyCate(CRUDBase[CdkeyCate, CdkeyCateCreate, CdkeyCateUpdate]): class CRUDCdkeyCate(CRUDBase[CdkeyCate, CdkeyCateCreate, CdkeyCateUpdate]):
def get_cdkey_cate(self, db: Session, cdkey_cate_id: int): def get_cdkey_cate(self, db: Session, cdkey_cate_id: int):
return self.get_by_field(db, "cdkey_cate_id", cdkey_cate_id) return self.get_by_field(db, "id", cdkey_cate_id)
class CRUDCdkeys(CRUDBase[Cdkeys, CdkeysCreate, CdkeysUpdate]): class CRUDCdkeys(CRUDBase[Cdkeys, CdkeysCreate, CdkeysUpdate]):
def get_cdkeys(self, db: Session, cdkeys_id: int): def get_cdkeys(self, db: Session, cdkeys_id: int):
return self.get_by_field(db, "cdkeys_id", cdkeys_id) return self.get_by_field(db, "id", cdkeys_id)
class CRUDExercise(CRUDBase[Exercise, ExerciseCreate, ExerciseUpdate]): class CRUDExercise(CRUDBase[Exercise, ExerciseCreate, ExerciseUpdate]):
def get_exercise(self, db: Session, exercise_id: int): def get_exercise(self, db: Session, exercise_id: int):
return self.get_by_field(db, "exercise_id", exercise_id) return self.get_by_field(db, "id", exercise_id)
class CRUDFeedback(CRUDBase[Feedback, FeedbackCreate, FeedbackUpdate]): class CRUDFeedback(CRUDBase[Feedback, FeedbackCreate, FeedbackUpdate]):
def get_feedback(self, db: Session, feedback_id: int): def get_feedback(self, db: Session, feedback_id: int):
return self.get_by_field(db, "feedback_id", feedback_id) return self.get_by_field(db, "id", feedback_id)
class CRUDGift(CRUDBase[Gift, GiftCreate, GiftUpdate]): class CRUDGift(CRUDBase[Gift, GiftCreate, GiftUpdate]):
def get_gift(self, db: Session, gift_id: int): def get_gift(self, db: Session, gift_id: int):
return self.get_by_field(db, "gift_id", gift_id) return self.get_by_field(db, "id", gift_id)
class CRUDIndexBtn(CRUDBase[IndexBtn, IndexBtnCreate, IndexBtnUpdate]): class CRUDIndexBtn(CRUDBase[IndexBtn, IndexBtnCreate, IndexBtnUpdate]):
def get_index_btn(self, db: Session, index_btn_id: int): def get_index_btn(self, db: Session, index_btn_id: int):
return self.get_by_field(db, "index_btn_id", index_btn_id) return self.get_by_field(db, "id", index_btn_id)
class CRUDKnowledge(CRUDBase[Knowledge, KnowledgeCreate, KnowledgeUpdate]): class CRUDKnowledge(CRUDBase[Knowledge, KnowledgeCreate, KnowledgeUpdate]):
def get_knowledge(self, db: Session, knowledge_id: int): def get_knowledge(self, db: Session, knowledge_id: int):
return self.get_by_field(db, "knowledge_id", knowledge_id) return self.get_by_field(db, "knowledge_id", knowledge_id)
class CRUDKnowledgeCate( class CRUDKnowledgeCate(CRUDBase[KnowledgeCate, KnowledgeCateCreate, KnowledgeCateUpdate]):
CRUDBase[KnowledgeCate, KnowledgeCateCreate, KnowledgeCateUpdate]
):
def get_knowledge_cate(self, db: Session, knowledge_cate_id: int): def get_knowledge_cate(self, db: Session, knowledge_cate_id: int):
return self.get_by_field(db, "knowledge_cate_id", knowledge_cate_id) return self.get_by_field(db, "id", knowledge_cate_id)
class CRUDNotice(CRUDBase[Notice, NoticeCreate, NoticeUpdate]): class CRUDNotice(CRUDBase[Notice, NoticeCreate, NoticeUpdate]):
def get_notice(self, db: Session, notice_id: int): def get_notice(self, db: Session, notice_id: int):
return self.get_by_field(db, "notice_id", notice_id) return self.get_by_field(db, "id", notice_id)
class CRUDOrder(CRUDBase[Order, OrderCreate, OrderUpdate]): class CRUDOrder(CRUDBase[Order, OrderCreate, OrderUpdate]):
def get_order(self, db: Session, order_id: int): def get_order(self, db: Session, order_id: int):
return self.get_by_field(db, "order_id", order_id) return self.get_by_field(db, "id", order_id)
class CRUDPaper(CRUDBase[Paper, PaperCreate, PaperUpdate]): class CRUDPaper(CRUDBase[Paper, PaperCreate, PaperUpdate]):
def get_paper(self, db: Session, paper_id: int): def get_paper(self, db: Session, paper_id: int):
return self.get_by_field(db, "paper_id", paper_id) return self.get_by_field(db, "id", paper_id)
class CRUDPaperTest(CRUDBase[PaperTest, PaperTestCreate, PaperTestUpdate]): class CRUDPaperTest(CRUDBase[PaperTest, PaperTestCreate, PaperTestUpdate]):
def get_paper_test(self, db: Session, paper_test_id: int): def get_paper_test(self, db: Session, paper_test_id: int):
return self.get_by_field(db, "paper_test_id", paper_test_id) return self.get_by_field(db, "id", paper_test_id)
class CRUDPhonecode(CRUDBase[Phonecode, PhoneCodeCreate, PhoneCodeUpdate]): class CRUDPhonecode(CRUDBase[Phonecode, PhoneCodeCreate, PhoneCodeUpdate]):
def get_phonecode(self, db: Session, phonecode_id: int): def get_phonecode(self, db: Session, phonecode_id: int):
return self.get_by_field(db, "phonecode_id", phonecode_id) return self.get_by_field(db, "id", phonecode_id)
class CRUDQYear(CRUDBase[QYear, QYearCreate, QYearUpdate]): class CRUDQYear(CRUDBase[QYear, QYearCreate, QYearUpdate]):
def get_qyear(self, db: Session, qyear_id: int): def get_qyear(self, db: Session, qyear_id: int):
return self.get_by_field(db, "qyear_id", qyear_id) return self.get_by_field(db, "id", qyear_id)
class CRUDSchool(CRUDBase[School, SchoolCreate, SchoolUpdate]): class CRUDSchool(CRUDBase[School, SchoolCreate, SchoolUpdate]):
def get_school(self, db: Session, school_id: int): def get_school(self, db: Session, school_id: int):
return self.get_by_field(db, "school_id", school_id) return self.get_by_field(db, "school_id", school_id)
class CRUDSetting(CRUDBase[Setting, SettingCreate, SettingUpdate]): class CRUDSetting(CRUDBase[Setting, SettingCreate, SettingUpdate]):
def get_setting(self, db: Session, setting_id: int): def get_setting(self, db: Session, setting_id: int):
return self.get_by_field(db, "setting_id", setting_id) return self.get_by_field(db, "id", setting_id)
class CRUDShareRecord(CRUDBase[ShareRecord, ShareRecordCreate, ShareRecordUpdate]): class CRUDShareRecord(CRUDBase[ShareRecord, ShareRecordCreate, ShareRecordUpdate]):
def get_share_record(self, db: Session, share_record_id: int): def get_share_record(self, db: Session, share_record_id: int):
return self.get_by_field(db, "share_record_id", share_record_id) return self.get_by_field(db, "id", share_record_id)
class CRUDsonSimple(CRUDBase[SonSimple, SonSimpleCreate, SonSimpleUpdate]): class CRUDsonSimple(CRUDBase[SonSimple, SonSimpleCreate, SonSimpleUpdate]):
def get_son_simple(self, db: Session, son_simple_id: int): def get_son_simple(self, db: Session, son_simple_id: int):
return self.get_by_field(db, "son_simple_id", son_simple_id) return self.get_by_field(db, "id", son_simple_id)
class CRUDTest(CRUDBase[Test, TestCreate, TestUpdate]): class CRUDTest(CRUDBase[Test, TestCreate, TestUpdate]):
def get_test(self, db: Session, test_id: int): def get_test(self, db: Session, test_id: int):
return self.get_by_field(db, "test_id", test_id) return self.get_by_field(db, "test_id", test_id)
class CRUDTestType(CRUDBase[TestType, TestTypeCreate, TestTypeUpdate]): class CRUDTestType(CRUDBase[TestType, TestTypeCreate, TestTypeUpdate]):
def get_test_type(self, db: Session, test_type_id: int): def get_test_type(self, db: Session, test_type_id: int):
return self.get_by_field(db, "test_type_id", test_type_id) return self.get_by_field(db, "id", test_type_id)
class CRUDTypeCate(CRUDBase[TypeCate, TypeCateCreate, TypeCateUpdate]): class CRUDTypeCate(CRUDBase[TypeCate, TypeCateCreate, TypeCateUpdate]):
def get_type_cate(self, db: Session, type_cate_id: int): def get_type_cate(self, db: Session, type_cate_id: int):
return self.get 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)
advert = CRUDAdvert(Advert) advert = CRUDAdvert(Advert)
@ -184,24 +173,27 @@ banji = CRUDBase(Banji)
banner = CRUDBanner(Banner) banner = CRUDBanner(Banner)
category = CRUDCategory(Category) category = CRUDCategory(Category)
cdkey = CRUDCdkey(Cdkey) cdkey = CRUDCdkey(Cdkey)
cdkeyCate = CRUDCdkeyCate(CdkeyCate) cdkey_cate = CRUDCdkeyCate(CdkeyCate)
cdkeys = CRUDCdkeys(Cdkeys) cdkeys = CRUDCdkeys(Cdkeys)
exercise = CRUDExercise(Exercise) exercise = CRUDExercise(Exercise)
feedback = CRUDFeedback(Feedback) feedback = CRUDFeedback(Feedback)
gift = CRUDGift(Gift) gift = CRUDGift(Gift)
indexBtn = CRUDIndexBtn(IndexBtn) index_btn = CRUDIndexBtn(IndexBtn)
knowledge = CRUDKnowledge(Knowledge) knowledge = CRUDKnowledge(Knowledge)
knowledgeCate = CRUDKnowledgeCate(KnowledgeCate) knowledge_cate = CRUDKnowledgeCate(KnowledgeCate)
notice = CRUDNotice(Notice) notice = CRUDNotice(Notice)
order = CRUDOrder(Order) order = CRUDOrder(Order)
paper = CRUDPaper(Paper) paper = CRUDPaper(Paper)
paperTest = CRUDPaperTest(PaperTest) paper_test = CRUDPaperTest(PaperTest)
phonecode = CRUDPhonecode(Phonecode) phone_code = CRUDPhonecode(Phonecode)
qYear = CRUDSchool(School) q_year = CRUDSchool(School)
school = CRUDSchool(School) school = CRUDSchool(School)
setting = CRUDSetting(Setting) setting = CRUDSetting(Setting)
shareRecord = CRUDShareRecord(ShareRecord) share_record = CRUDShareRecord(ShareRecord)
sonSimple = CRUDsonSimple(SonSimple) son_simple = CRUDsonSimple(SonSimple)
test = CRUDTest(Test) test = CRUDTest(Test)
testType = CRUDTestType(TestType) test_type = CRUDTestType(TestType)
typeCate = CRUDTypeCate(TypeCate) type_cate = CRUDTypeCate(TypeCate)
watermark = CRUDWatermark(Watermark)
wx_tpl = CRUDWxTpl(Wxtpl)
xueshen = CRUDXueshen(Xuesheng)

View File

@ -0,0 +1,124 @@
from typing import Optional
from sqlalchemy.orm import Session
from mooc.crud.crud_base import CRUDBase
from mooc.models.goouc_fullexam_user import (
# 导入全部
UserDoexam,
UserDoOtherExamAnswer,
UserExamAnswer,
UserSpecial,
UserSpequence,
UserMember,
UserCollectionPraction,
UserGift,
UserQhigh,
UserQintensive,
UserRead,
UserDootherExam,
UserWrongPraction,
UserPool,
)
from mooc.schemas.goouc_fullexam_user import (
# 导入全部create和update
UserDoexamCreate,
UserDoexamUpdate,
UserDoOtherExamAnswerCreate,
UserDoOtherExamAnswerUpdate,
UserExamAnswerCreate,
UserExamAnswerUpdate,
UserSpecialCreate,
UserSpecialUpdate,
UserSpequenceCreate,
UserSpequenceUpdate,
UserMemberCreate,
UserMemberUpdate,
UserCollectionPractionCreate,
UserCollectionPractionUpdate,
UserGiftCreate,
UserGiftUpdate,
UserQHighCreate,
UserQHighUpdate,
UserQIntensiveCreate,
UserQIntensiveUpdate,
UserReadCreate,
UserReadUpdate,
UserDoOtherExamCreate,
UserDoOtherExamUpdate,
UserWrongPractionCreate,
UserWrongPractionUpdate,
UserPoolCreate,
UserPoolUpdate,
)
class CRUDUserDoexam(CRUDBase[UserDoexam, UserDoexamCreate, UserDoexamUpdate]):
def get_user_doexam(self, db: Session, user_doexam_id: int):
return self.get_by_field(db, "id", user_doexam_id)
class CRUDUserDoOtherExamAnswer(
CRUDBase[UserDoOtherExamAnswer, UserDoOtherExamAnswerCreate, UserDoOtherExamAnswerUpdate]):
def get_user_doother_exam_answer(self, db: Session, user_doother_exam_answer_id: int):
return self.get_by_field(db, "id", user_doother_exam_answer_id)
class CRUDUserExamAnswer(CRUDBase[UserExamAnswer, UserExamAnswerCreate, UserExamAnswerUpdate]):
def get_user_exam_answer(self, db: Session, user_exam_answer_id: int):
return self.get_by_field(db, "id", user_exam_answer_id)
class CRUDUserSpecial(CRUDBase[UserSpecial, UserSpecialCreate, UserSpecialUpdate]):
def get_user_special(self, db: Session, user_special_id: int):
return self.get_by_field(db, "id", user_special_id)
class CRUDUserSpequence(CRUDBase[UserSpequence, UserSpequenceCreate, UserSpequenceUpdate]):
def get_user_spequence(self, db: Session, user_spequence_id: int):
return self.get_by_field(db, "id", user_spequence_id)
class CRUDUserMember(CRUDBase[UserMember, UserMemberCreate, UserMemberUpdate]):
def get_user_member(self, db: Session, user_member_id: int):
return self.get_by_field(db, "id", user_member_id)
class CRUDUserCollectionPraction(
CRUDBase[UserCollectionPraction, UserCollectionPractionCreate, UserCollectionPractionUpdate]):
def get_user_collection_praction(self, db: Session, user_collection_praction_id: int):
return self.get_by_field(db, "id", user_collection_praction_id)
class CRUDUserGift(CRUDBase[UserGift, UserGiftCreate, UserGiftUpdate]):
def get_user_gift(self, db: Session, user_gift_id: int):
return self.get_by_field(db, "id", user_gift_id)
class CRUDUserQHigh(CRUDBase[UserQhigh, UserQHighCreate, UserQHighUpdate]):
def get_user_qhigh(self, db: Session, user_qhigh_id: int):
return self.get_by_field(db, "id", user_qhigh_id)
class CRUDUserQIntensive(CRUDBase[UserQintensive, UserQIntensiveCreate, UserQIntensiveUpdate]):
def get_user_qintensive(self, db: Session, user_qintensive_id: int):
return self.get_by_field(db, "id", user_qintensive_id)
class CRUDUserRead(CRUDBase[UserRead, UserReadCreate, UserReadUpdate]):
def get_user_read(self, db: Session, user_read_id: int):
return self.get_by_field(db, "id", user_read_id)
class CRUDUserDoOtherExam(CRUDBase[UserDootherExam, UserDoOtherExamCreate, UserDoOtherExamUpdate]):
def get_user_doother_exam(self, db: Session, user_doother_exam_id: int):
return self.get_by_field(db, "id", user_doother_exam_id)
class CRUDUserWrongPraction(CRUDBase[UserWrongPraction, UserWrongPractionCreate, UserWrongPractionUpdate]):
def get_user_wrong_praction(self, db: Session, user_wrong_praction_id: int):
return self.get_by_field(db, "id", user_wrong_praction_id)
class CRUDUserPool(CRUDBase[UserPool, UserPoolCreate, UserPoolUpdate]):
def get_user_pool(self, db: Session, user_pool_id: int):
return self.get_by_field(db, "id", user_pool_id)

View File

@ -1,4 +1,4 @@
from sqlalchemy import Date, DateTime, Index, String, Text, text, Column, Integer from sqlalchemy import Date, DateTime, Index, String, Text, text, Column, Integer, Float, CHAR
from sqlalchemy.dialects.mysql import DECIMAL from sqlalchemy.dialects.mysql import DECIMAL
from mooc.db.database import Base from mooc.db.database import Base
@ -633,3 +633,121 @@ class TypeCate(Base):
class Config: class Config:
orm_mode = True orm_mode = True
class Watermark(Base):
__tablename__ = 'ims_goouc_fullexam_watermark'
__table_args__ = {'comment': '水印配置表'}
id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
type = Column(Integer, nullable=False, comment='1个人信息 2为自定义')
open = Column(Integer, nullable=False, server_default=text("'2'"), comment='1打开水印 2关闭水印')
content = Column(String(1024), nullable=False, comment='水印内容')
size = Column(Integer, nullable=False, comment='字体大小')
rotate = Column(Integer, nullable=False, comment='旋转度数')
transparent = Column(Integer, nullable=False, comment='透明度')
local_type = Column(Integer, nullable=False, comment='1预设 2为自定义 生效位置类型')
presupposition = Column(Integer, nullable=False, comment='预设类型')
horizontal = Column(Integer, nullable=False, comment='水平距离')
vertical = Column(Integer, nullable=False, comment='垂直距离')
class Config:
orm_mode = True
class Wxtpl(Base):
__tablename__ = 'ims_goouc_fullexam_wxtpl'
__table_args__ = (
Index('idx_weid', 'weid'),
{'comment': '模板消息表'}
)
id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
type = Column(Integer, nullable=False)
tplid = Column(String(255), nullable=False)
createtime = Column(Integer, nullable=False, comment='创建时间')
keyword1 = Column(String(255), nullable=True)
keyword2 = Column(String(255), nullable=True)
keyword3 = Column(String(255), nullable=True)
istatus = Column(Integer, nullable=True, server_default=text("'1'"), comment='删除状态')
class Config:
orm_mode = True
class Xuesheng(Base):
__tablename__ = 'ims_goouc_fullexam_xuesheng'
xuesheng_id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
uidht = Column(Integer, nullable=False)
school_id = Column(Integer, nullable=False)
nianfen_id = Column(Integer, nullable=False)
banji_id = Column(Integer, nullable=False)
banjixs_id = Column(Integer, nullable=False)
xiaozu_id = Column(Integer, nullable=False)
xiaozuxs_id = Column(Integer, nullable=False)
sflx = Column(Integer, nullable=False)
bjcsjf = Column(Float, nullable=False, server_default=text("'0.00'"))
bjzf = Column(Float, nullable=False, server_default=text("'0.00'"))
displayorder = Column(Integer, nullable=False)
pic = Column(Text, nullable=False)
sex = Column(Text, nullable=False)
jiguan = Column(Text, nullable=False)
minzu = Column(Text, nullable=False)
sfzhm = Column(Text, nullable=False)
qq = Column(String(255), nullable=False)
phone = Column(String(255), nullable=False)
yzm = Column(String(225), nullable=False)
updatetime = Column(Integer, nullable=False)
beizhu = Column(Text, nullable=False)
addtime = Column(Integer, nullable=False)
openid = Column(String(255), nullable=False)
openid1 = Column(String(255), nullable=False)
openid2 = Column(String(255), nullable=False)
openid3 = Column(String(255), nullable=False)
openid4 = Column(String(255), nullable=False)
openid5 = Column(String(255), nullable=False)
openid6 = Column(String(255), nullable=False)
openid7 = Column(String(255), nullable=False)
openid8 = Column(String(255), nullable=False)
sflx1 = Column(Integer, nullable=False)
sflx2 = Column(Integer, nullable=False)
sflx3 = Column(Integer, nullable=False)
sflx4 = Column(Integer, nullable=False)
sflx5 = Column(Integer, nullable=False)
sflx6 = Column(Integer, nullable=False)
sflx7 = Column(Integer, nullable=False)
sflx8 = Column(Integer, nullable=False)
nid = Column(Integer, nullable=False)
name = Column(String(50), nullable=False)
parentid = Column(Integer, nullable=False)
enabled = Column(Integer, nullable=False)
icon = Column(String(100), nullable=False)
description = Column(String(100), nullable=False)
styleid = Column(Integer, nullable=False)
linkurl = Column(String(500), nullable=False)
ishomepage = Column(Integer, nullable=False)
icontype = Column(Integer, nullable=False)
css = Column(String(500), nullable=False)
student_name = Column(CHAR(20), nullable=True)
gxuehao = Column(CHAR(25), nullable=True)
xxuehao = Column(CHAR(25), nullable=True)
zxxuehao = Column(CHAR(25), nullable=True)
student_img = Column(CHAR(60), nullable=True)
parent_name = Column(CHAR(20), nullable=True)
parent_phone = Column(CHAR(20), nullable=True)
address = Column(String(255), nullable=True)
uid = Column(Integer, nullable=True, server_default=text("'0'"))
uid1 = Column(Integer, nullable=True, server_default=text("'0'"))
uid2 = Column(Integer, nullable=True, server_default=text("'0'"))
uid3 = Column(Integer, nullable=True, server_default=text("'0'"))
uid4 = Column(Integer, nullable=True, server_default=text("'0'"))
uid5 = Column(Integer, nullable=True, server_default=text("'0'"))
uid6 = Column(Integer, nullable=True, server_default=text("'0'"))
uid7 = Column(Integer, nullable=True, server_default=text("'0'"))
uid8 = Column(Integer, nullable=True, server_default=text("'0'"))
class Config:
orm_mode = True

View File

@ -124,7 +124,7 @@ class UserDootherExam(Base):
orm_mode = True orm_mode = True
class UserDootherExamAnswer(Base): class UserDoOtherExamAnswer(Base):
__tablename__ = 'ims_goouc_fullexam_user_doother_exam_answer' __tablename__ = 'ims_goouc_fullexam_user_doother_exam_answer'
__table_args__ = ( __table_args__ = (
Index('idx_weid', 'weid'), Index('idx_weid', 'weid'),
@ -412,120 +412,3 @@ class UserWrongPraction(Base):
orm_mode = True orm_mode = True
class Watermark(Base):
__tablename__ = 'ims_goouc_fullexam_watermark'
__table_args__ = {'comment': '水印配置表'}
id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
type = Column(Integer, nullable=False, comment='1个人信息 2为自定义')
open = Column(Integer, nullable=False, server_default=text("'2'"), comment='1打开水印 2关闭水印')
content = Column(String(1024), nullable=False, comment='水印内容')
size = Column(Integer, nullable=False, comment='字体大小')
rotate = Column(Integer, nullable=False, comment='旋转度数')
transparent = Column(Integer, nullable=False, comment='透明度')
local_type = Column(Integer, nullable=False, comment='1预设 2为自定义 生效位置类型')
presupposition = Column(Integer, nullable=False, comment='预设类型')
horizontal = Column(Integer, nullable=False, comment='水平距离')
vertical = Column(Integer, nullable=False, comment='垂直距离')
class Config:
orm_mode = True
class Wxtpl(Base):
__tablename__ = 'ims_goouc_fullexam_wxtpl'
__table_args__ = (
Index('idx_weid', 'weid'),
{'comment': '模板消息表'}
)
id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
type = Column(Integer, nullable=False)
tplid = Column(String(255), nullable=False)
createtime = Column(Integer, nullable=False, comment='创建时间')
keyword1 = Column(String(255), nullable=True)
keyword2 = Column(String(255), nullable=True)
keyword3 = Column(String(255), nullable=True)
istatus = Column(Integer, nullable=True, server_default=text("'1'"), comment='删除状态')
class Config:
orm_mode = True
class Xuesheng(Base):
__tablename__ = 'ims_goouc_fullexam_xuesheng'
xuesheng_id = Column(Integer, primary_key=True, index=True)
weid = Column(Integer, nullable=False)
uidht = Column(Integer, nullable=False)
school_id = Column(Integer, nullable=False)
nianfen_id = Column(Integer, nullable=False)
banji_id = Column(Integer, nullable=False)
banjixs_id = Column(Integer, nullable=False)
xiaozu_id = Column(Integer, nullable=False)
xiaozuxs_id = Column(Integer, nullable=False)
sflx = Column(Integer, nullable=False)
bjcsjf = Column(Float, nullable=False, server_default=text("'0.00'"))
bjzf = Column(Float, nullable=False, server_default=text("'0.00'"))
displayorder = Column(Integer, nullable=False)
pic = Column(Text, nullable=False)
sex = Column(Text, nullable=False)
jiguan = Column(Text, nullable=False)
minzu = Column(Text, nullable=False)
sfzhm = Column(Text, nullable=False)
qq = Column(String(255), nullable=False)
phone = Column(String(255), nullable=False)
yzm = Column(String(225), nullable=False)
updatetime = Column(Integer, nullable=False)
beizhu = Column(Text, nullable=False)
addtime = Column(Integer, nullable=False)
openid = Column(String(255), nullable=False)
openid1 = Column(String(255), nullable=False)
openid2 = Column(String(255), nullable=False)
openid3 = Column(String(255), nullable=False)
openid4 = Column(String(255), nullable=False)
openid5 = Column(String(255), nullable=False)
openid6 = Column(String(255), nullable=False)
openid7 = Column(String(255), nullable=False)
openid8 = Column(String(255), nullable=False)
sflx1 = Column(Integer, nullable=False)
sflx2 = Column(Integer, nullable=False)
sflx3 = Column(Integer, nullable=False)
sflx4 = Column(Integer, nullable=False)
sflx5 = Column(Integer, nullable=False)
sflx6 = Column(Integer, nullable=False)
sflx7 = Column(Integer, nullable=False)
sflx8 = Column(Integer, nullable=False)
nid = Column(Integer, nullable=False)
name = Column(String(50), nullable=False)
parentid = Column(Integer, nullable=False)
enabled = Column(Integer, nullable=False)
icon = Column(String(100), nullable=False)
description = Column(String(100), nullable=False)
styleid = Column(Integer, nullable=False)
linkurl = Column(String(500), nullable=False)
ishomepage = Column(Integer, nullable=False)
icontype = Column(Integer, nullable=False)
css = Column(String(500), nullable=False)
student_name = Column(CHAR(20), nullable=True)
gxuehao = Column(CHAR(25), nullable=True)
xxuehao = Column(CHAR(25), nullable=True)
zxxuehao = Column(CHAR(25), nullable=True)
student_img = Column(CHAR(60), nullable=True)
parent_name = Column(CHAR(20), nullable=True)
parent_phone = Column(CHAR(20), nullable=True)
address = Column(String(255), nullable=True)
uid = Column(Integer, nullable=True, server_default=text("'0'"))
uid1 = Column(Integer, nullable=True, server_default=text("'0'"))
uid2 = Column(Integer, nullable=True, server_default=text("'0'"))
uid3 = Column(Integer, nullable=True, server_default=text("'0'"))
uid4 = Column(Integer, nullable=True, server_default=text("'0'"))
uid5 = Column(Integer, nullable=True, server_default=text("'0'"))
uid6 = Column(Integer, nullable=True, server_default=text("'0'"))
uid7 = Column(Integer, nullable=True, server_default=text("'0'"))
uid8 = Column(Integer, nullable=True, server_default=text("'0'"))
class Config:
orm_mode = True

View File

@ -1357,3 +1357,266 @@ class TypeCateResponse(TypeCateInDB):
# 用于批量操作的模型 # 用于批量操作的模型
class TypeCateListResponse(BaseModel): class TypeCateListResponse(BaseModel):
data: List[TypeCateResponse] data: List[TypeCateResponse]
from pydantic import BaseModel, Field
from typing import Optional
class WatermarkBase(BaseModel):
weid: int
type: int = Field(..., le=2, ge=1, description='1个人信息 2为自定义')
open: int = Field(default=2, le=2, ge=1, description='1打开水印 2关闭水印')
content: str = Field(..., max_length=1024, description='水印内容')
size: int
rotate: int
transparent: int
local_type: int = Field(..., le=2, ge=1, description='1预设 2为自定义 生效位置类型')
presupposition: int
horizontal: int
vertical: int
class Config:
orm_mode = True
class WatermarkCreate(WatermarkBase):
pass
class WatermarkUpdate(WatermarkBase):
weid: Optional[int] = None
type: Optional[int] = None
open: Optional[int] = None
content: Optional[str] = None
size: Optional[int] = None
rotate: Optional[int] = None
transparent: Optional[int] = None
local_type: Optional[int] = None
presupposition: Optional[int] = None
horizontal: Optional[int] = None
vertical: Optional[int] = None
class WatermarkInDB(WatermarkBase):
id: int
class Config:
orm_mode = True
class WatermarkResponse(WatermarkInDB):
pass
class WatermarkListResponse(BaseModel):
data: List[WatermarkResponse]
class WxTplBase(BaseModel):
weid: int
type: int
tplid: str = Field(..., max_length=255)
keyword1: Optional[str] = Field(None, max_length=255)
keyword2: Optional[str] = Field(None, max_length=255)
keyword3: Optional[str] = Field(None, max_length=255)
istatus: Optional[int] = Field(default=1, le=1, ge=1, description='删除状态')
createtime: int
class Config:
orm_mode = True
class WxTplCreate(WxTplBase):
pass
class WxTplUpdate(WxTplBase):
weid: Optional[int] = None
type: Optional[int] = None
tplid: Optional[str] = None
keyword1: Optional[str] = None
keyword2: Optional[str] = None
keyword3: Optional[str] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class WxTplInDB(WxTplBase):
id: int
class Config:
orm_mode = True
class WxTplResponse(WxTplInDB):
pass
class WxTplListResponse(BaseModel):
data: List[WxTplResponse]
class XueshengBase(BaseModel):
weid: int
uidht: int
school_id: int
nianfen_id: int
banji_id: int
banjixs_id: int
xiaozu_id: int
xiaozuxs_id: int
sflx: int
bjcsjf: float = Field(default=0.00)
bjzf: float = Field(default=0.00)
displayorder: int
student_name: Optional[str] = Field(None, max_length=20)
pic: str = Field(...)
sex: str = Field(...)
jiguan: str = Field(...)
minzu: str = Field(...)
sfzhm: str = Field(...)
gxuehao: Optional[str] = Field(None, max_length=25)
xxuehao: Optional[str] = Field(None, max_length=25)
zxxuehao: Optional[str] = Field(None, max_length=25)
student_img: Optional[str] = Field(None, max_length=60)
parent_name: Optional[str] = Field(None, max_length=20)
parent_phone: Optional[str] = Field(None, max_length=20)
qq: str = Field(...)
phone: str = Field(...)
yzm: str = Field(...)
address: Optional[str] = Field(None, max_length=255)
updatetime: int
beizhu: str = Field(...)
addtime: int
uid: Optional[int] = Field(default=0)
uid1: Optional[int] = Field(default=0)
uid2: Optional[int] = Field(default=0)
uid3: Optional[int] = Field(default=0)
uid4: Optional[int] = Field(default=0)
uid5: Optional[int] = Field(default=0)
uid6: Optional[int] = Field(default=0)
uid7: Optional[int] = Field(default=0)
uid8: Optional[int] = Field(default=0)
openid: str = Field(...)
openid1: str = Field(...)
openid2: str = Field(...)
openid3: str = Field(...)
openid4: str = Field(...)
openid5: str = Field(...)
openid6: str = Field(...)
openid7: str = Field(...)
openid8: str = Field(...)
sflx1: int
sflx2: int
sflx3: int
sflx4: int
sflx5: int
sflx6: int
sflx7: int
sflx8: int
nid: int
name: str = Field(..., max_length=50)
parentid: int
enabled: int
icon: str = Field(..., max_length=100)
description: str = Field(..., max_length=100)
styleid: int
linkurl: str = Field(..., max_length=500)
ishomepage: int
icontype: int
css: str = Field(..., max_length=500)
class Config:
orm_mode = True
class XueshengCreate(XueshengBase):
pass
class XueshengUpdate(XueshengBase):
# All fields are optional for partial updates
weid: Optional[int] = None
uidht: Optional[int] = None
school_id: Optional[int] = None
nianfen_id: Optional[int] = None
banji_id: Optional[int] = None
banjixs_id: Optional[int] = None
xiaozu_id: Optional[int] = None
xiaozuxs_id: Optional[int] = None
sflx: Optional[int] = None
bjcsjf: Optional[float] = None
bjzf: Optional[float] = None
displayorder: Optional[int] = None
student_name: Optional[str] = None
pic: Optional[str] = None
sex: Optional[str] = None
jiguan: Optional[str] = None
minzu: Optional[str] = None
sfzhm: Optional[str] = None
gxuehao: Optional[str] = None
xxuehao: Optional[str] = None
zxxuehao: Optional[str] = None
student_img: Optional[str] = None
parent_name: Optional[str] = None
parent_phone: Optional[str] = None
qq: Optional[str] = None
phone: Optional[str] = None
yzm: Optional[str] = None
address: Optional[str] = None
updatetime: Optional[int] = None
beizhu: Optional[str] = None
addtime: Optional[int] = None
uid: Optional[int] = None
uid1: Optional[int] = None
uid2: Optional[int] = None
uid3: Optional[int] = None
uid4: Optional[int] = None
uid5: Optional[int] = None
uid6: Optional[int] = None
uid7: Optional[int] = None
uid8: Optional[int] = None
openid: Optional[str] = None
openid1: Optional[str] = None
openid2: Optional[str] = None
openid3: Optional[str] = None
openid4: Optional[str] = None
openid5: Optional[str] = None
openid6: Optional[str] = None
openid7: Optional[str] = None
openid8: Optional[str] = None
sflx1: Optional[int] = None
sflx2: Optional[int] = None
sflx3: Optional[int] = None
sflx4: Optional[int] = None
sflx5: Optional[int] = None
sflx6: Optional[int] = None
sflx7: Optional[int] = None
sflx8: Optional[int] = None
nid: Optional[int] = None
name: Optional[str] = None
parentid: Optional[int] = None
enabled: Optional[int] = None
icon: Optional[str] = None
description: Optional[str] = None
styleid: Optional[int] = None
linkurl: Optional[str] = None
ishomepage: Optional[int] = None
icontype: Optional[int] = None
css: Optional[str] = None
class XueshengInDB(XueshengBase):
xuesheng_id: int
class Config:
orm_mode = True
class XueshengResponse(XueshengInDB):
pass
class XueshengListResponse(BaseModel):
data: List[XueshengResponse]