diff --git a/api/service/QuestionQaItem.go b/api/service/QuestionQaItem.go index 49d9644..2a6da42 100644 --- a/api/service/QuestionQaItem.go +++ b/api/service/QuestionQaItem.go @@ -62,6 +62,28 @@ func (r *QuestionQaItemService) PutQuestionQaItemMust(itemId int64, req requests return true, nil } + // 检测必选数量 + if req.IsMustSelect == 1 { + // 获取题库数据 + questionQaDao := dao.QuestionQaDao{} + questionQa, err := questionQaDao.GetQuestionQaById(questionQaItem.QaId) + if err != nil { + return false, errors.New("题库错误") + } + + maps := make(map[string]interface{}) + maps["qa_id"] = questionQaItem.QaId + maps["is_must_select"] = 1 + questionQaItems, err := questionQaItemDao.GetQuestionQaItemList(maps) + if err != nil { + return false, errors.New("内部错误") + } + + if len(questionQaItems) > questionQa.QaQuantity { + return false, errors.New("必选题目已超出题库所需数量") + } + } + // 开始事务 tx := global.Db.Begin() defer func() {