新增了题库2、3类型

This commit is contained in:
2024-11-07 19:38:08 +08:00
parent c9af7ff13c
commit 58d8ca0ce6
5 changed files with 796 additions and 281 deletions
+11 -2
View File
@@ -29,8 +29,17 @@ func (r *BaseTokenItemDao) GetBaseTokenItemPreloadById(ItemId int64) (m *model.B
return m, nil
}
// GetBaseTokenItemPreloadOrderByTokenId 获取数据-加载全部关联-排序-TokenId
func (r *BaseTokenItemDao) GetBaseTokenItemPreloadOrderByTokenId(tokenId int64) (m []*model.BaseTokenItem, err error) {
// GetBaseTokenItemListByTokenId 获取数据-tokenId
func (r *BaseTokenItemDao) GetBaseTokenItemListByTokenId(tokenId int64) (m []*model.BaseTokenItem, err error) {
err = global.Db.Where("token_id = ?", tokenId).Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetBaseTokenItemOrderByTokenId 获取数据-排序-TokenId
func (r *BaseTokenItemDao) GetBaseTokenItemOrderByTokenId(tokenId int64) (m []*model.BaseTokenItem, err error) {
err = global.Db.Where("token_id = ?", tokenId).
Order("item_sort desc").
Order("created_at desc").
+36
View File
@@ -248,6 +248,42 @@ func (r *QuestionQaItemDao) GetQuestionQaItemWhereListRand(maps interface{}, lim
return m, nil
}
// GetQuestionQaItemNotInListRand 获取列表-随机-排除
func (r *QuestionQaItemDao) GetQuestionQaItemNotInListRand(maps interface{}, questionType int, notQuestionId []int64, limit int) (m []*model.QuestionQaItem, err error) {
query := global.Db.Model(&model.QuestionQaItem{})
query = query.Where(maps)
query = query.Preload("Question")
// 选项
query = query.Preload("Question.QuestionOption")
subQuery := global.Db.Model(&model.Question{}).
Select("question_id").
Where("question_status = ?", 1).
Where("is_delete = ?", 0)
// 排除选项
if len(notQuestionId) > 0 {
subQuery = subQuery.Where("question_id not in (?)", notQuestionId)
}
// 题目类型
if questionType != 0 {
subQuery = subQuery.Where("question_type = ?", questionType)
}
query = query.Where(gorm.Expr("question_id IN (?)", subQuery))
query = query.Limit(limit).Order("rand()")
err = query.Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
//subQuery := global.Db.Model(&model.Question{}).
//Where("kb_question.question_id = kb_question_qa_item.question_id").
//Where("question_status = ?", 1).