feat: 打手接单考试(按俱乐部题库、配置与通过状态)

This commit is contained in:
XingQue
2026-06-26 05:48:53 +08:00
parent ff5b13e717
commit 65c5e6572e
7 changed files with 695 additions and 0 deletions

View File

@@ -230,6 +230,73 @@ class IdentityTagBind(QModel):
]
class ClubDashouExamConfig(QModel):
"""各俱乐部打手抢单前考试配置(互不影响)。"""
club_id = models.CharField(max_length=16, primary_key=True)
is_enabled = models.BooleanField(default=False, verbose_name='是否开启考试')
draw_count = models.PositiveIntegerField(default=10, verbose_name='每次抽题数量')
pass_count = models.PositiveIntegerField(default=10, verbose_name='至少答对题数')
require_member = models.BooleanField(default=True, verbose_name='须开通会员方可考试')
CreateTime = models.DateTimeField(auto_now_add=True)
UpdateTime = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'club_dashou_exam_config'
class ClubDashouExamQuestion(QModel):
"""俱乐部考试题库(题干+最多6选项"""
club_id = models.CharField(max_length=16, db_index=True)
stem = models.TextField(verbose_name='题干文字')
question_type = models.IntegerField(default=1, verbose_name='1单选2多选')
option_1 = models.CharField(max_length=500, blank=True, default='')
option_2 = models.CharField(max_length=500, blank=True, default='')
option_3 = models.CharField(max_length=500, blank=True, default='')
option_4 = models.CharField(max_length=500, blank=True, default='')
option_5 = models.CharField(max_length=500, blank=True, default='')
option_6 = models.CharField(max_length=500, blank=True, default='')
correct_1 = models.BooleanField(default=False)
correct_2 = models.BooleanField(default=False)
correct_3 = models.BooleanField(default=False)
correct_4 = models.BooleanField(default=False)
correct_5 = models.BooleanField(default=False)
correct_6 = models.BooleanField(default=False)
explanation = models.TextField(blank=True, default='', verbose_name='错题解析')
is_enabled = models.BooleanField(default=True, verbose_name='是否上架')
sort_order = models.IntegerField(default=0)
CreateTime = models.DateTimeField(auto_now_add=True)
UpdateTime = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'club_dashou_exam_question'
indexes = [models.Index(fields=['club_id', 'is_enabled'])]
class ClubDashouExamQuestionImage(QModel):
"""题目配图(题干下方,可多张)。"""
club_id = models.CharField(max_length=16, db_index=True)
question_id = models.IntegerField(db_index=True)
image_url = models.CharField(max_length=500)
sort_order = models.IntegerField(default=0)
CreateTime = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'club_dashou_exam_question_image'
indexes = [models.Index(fields=['club_id', 'question_id'])]
class ClubDashouExamPass(QModel):
"""打手在本俱乐部是否已通过考试。"""
club_id = models.CharField(max_length=16, db_index=True)
yonghuid = models.CharField(max_length=7, db_index=True)
passed_at = models.DateTimeField(auto_now_add=True)
CreateTime = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'club_dashou_exam_pass'
unique_together = [['club_id', 'yonghuid']]
class KefuMenuPage(QModel):
"""客服后台左侧菜单页(固定 page_id与前端路由对应"""
page_id = models.CharField(max_length=64, primary_key=True, verbose_name='页面ID')