新增了题库2、3类型
This commit is contained in:
@@ -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").
|
||||
|
||||
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user