增加了题库不允许重复的业务逻辑6

This commit is contained in:
wucongxing8150 2025-07-29 13:23:08 +08:00
parent c7f68e4edc
commit 2a6d7d82ab
2 changed files with 28 additions and 8 deletions

View File

@ -63,7 +63,13 @@ type AddQuestionQa struct {
BaseTokenItem []AddQuestionQaBaseTokenItem `json:"base_token_item" form:"base_token_item" label:"飞花令明细"` // 展示类型为飞花令时存在
TokenQuestionContent []TokenQuestionContent `json:"token_question_content" form:"token_question_content" label:"飞花令题目数量规则"` // -json当题库类型为2、3时存在。2表示飞花令后固定题目数量3表示飞花令后单个类型题目数量
QuestionQaTimer []QuestionQaTimer `json:"question_qa_timer" form:"question_qa_timer" label:"计时设置"` //
RepeatQaId string `json:"repeat_qa_id" form:"repeat_qa_id" label:"禁止重复id合集"` // 禁止重复id合集
RepeatQaId []RepeatQaId `json:"repeat_qa_id" form:"repeat_qa_id" label:"禁止重复id合集"` // 禁止重复id合集
}
// RepeatQaId 禁止重复id合集
type RepeatQaId struct {
QaId string `json:"qa_id" form:"qa_id" label:"唯一标识" validate:"required"`
QaName string `json:"qa_name" form:"qa_name" label:"名称" validate:"required"`
}
// QuestionQaItem 新增问答题库-题目明细
@ -111,7 +117,7 @@ type PutQuestionQa struct {
BaseTokenItem []PutQuestionQaBaseTokenItem `json:"base_token_item" form:"base_token_item" label:"飞花令明细"` // 展示类型为飞花令时存在
TokenQuestionContent []TokenQuestionContent `json:"token_question_content" form:"token_question_content" label:"飞花令题目数量规则"` // -json当题库类型为2、3时存在。2表示飞花令后固定题目数量3表示飞花令后单个类型题目数量
QuestionQaTimer []QuestionQaTimer `json:"question_qa_timer" form:"question_qa_timer" label:"计时设置"` //
RepeatQaId string `json:"repeat_qa_id" form:"repeat_qa_id" label:"禁止重复id合集"` // 禁止重复id合集(逗号分割)
RepeatQaId []RepeatQaId `json:"repeat_qa_id" form:"repeat_qa_id" label:"禁止重复id合集"` // 禁止重复id合集
}
// PutQuestionQaBaseTokenItem 修改问答题库-飞花令明细

View File

@ -217,9 +217,12 @@ func (r *QuestionQaService) AddQuestionQa(req requests.AddQuestionQa) (bool, err
questionQaItemDao := dao.QuestionQaItemDao{}
var notQuestionIds []int64 // 处理需排除的题目id
if req.RepeatQaId != "" {
if len(req.RepeatQaId) > 0 {
// 获取正常题库的明细列表
repeatQaId := strings.Split(req.RepeatQaId, ",")
var repeatQaId []string
for _, item := range req.RepeatQaId {
repeatQaId = append(repeatQaId, item.QaId)
}
questionQaItems, _ := questionQaItemDao.GetQuestionQaItemListByQaIdDistinctQuestionId(repeatQaId)
if len(questionQaItems) > 0 {
for _, item := range questionQaItems {
@ -361,8 +364,16 @@ func (r *QuestionQaService) PutQuestionQa(qaId int64, req requests.PutQuestionQa
}
// 是否允许重复
if req.RepeatQaId != questionQa.RepeatQaId {
questionQaData["repeat_qa_id"] = req.RepeatQaId
if len(req.RepeatQaId) > 0 {
var repeatQaId []string
for _, item := range req.RepeatQaId {
repeatQaId = append(repeatQaId, item.QaId)
}
repeatQaIdStr := strings.Join(repeatQaId, ",")
if repeatQaIdStr != questionQa.RepeatQaId {
questionQaData["repeat_qa_id"] = req.RepeatQaId
}
}
// 背景图
@ -424,9 +435,12 @@ func (r *QuestionQaService) PutQuestionQa(qaId int64, req requests.PutQuestionQa
}
var notQuestionIds []int64 // 处理需排除的题目id
if req.RepeatQaId != "" {
if len(req.RepeatQaId) > 0 {
// 获取正常题库的明细列表
repeatQaId := strings.Split(req.RepeatQaId, ",")
var repeatQaId []string
for _, item := range req.RepeatQaId {
repeatQaId = append(repeatQaId, item.QaId)
}
questionQaItems, _ := questionQaItemDao.GetQuestionQaItemListByQaIdDistinctQuestionId(repeatQaId)
if len(questionQaItems) > 0 {
for _, item := range questionQaItems {