新增了计时规则

This commit is contained in:
2024-11-12 13:12:55 +08:00
parent 3855912448
commit 9c00e9e99b
4 changed files with 94 additions and 0 deletions
+51
View File
@@ -79,6 +79,7 @@ func (r *QuestionQaService) AddQuestionQa(req requests.AddQuestionQa) (bool, err
TokenNum: nil,
RoundNum: nil,
QaDisplayType: req.QaDisplayType,
IsTurnTimer: req.IsTurnTimer,
QaExpireTime: model.LocalTime(qaExpireTime),
QaPassword: req.QaPassword,
OpenNumber: 0,
@@ -245,6 +246,25 @@ func (r *QuestionQaService) AddQuestionQa(req requests.AddQuestionQa) (bool, err
}
}
// 新增计时设置
if req.IsTurnTimer == 1 {
questionQaTimerDao := dao.QuestionQaTimerDao{}
for _, timer := range req.QuestionQaTimer {
QuestionQaTimer := &model.QuestionQaTimer{
QaId: questionQa.QaId,
QuestionType: timer.QuestionType,
TimerRule: timer.TimerRule,
Duration: timer.Duration,
}
QuestionQaTimer, err := questionQaTimerDao.AddQuestionQaTimer(tx, QuestionQaTimer)
if err != nil {
tx.Rollback()
return false, errors.New("新增失败")
}
}
}
tx.Commit()
return true, nil
}
@@ -414,6 +434,11 @@ func (r *QuestionQaService) PutQuestionQa(qaId int64, req requests.PutQuestionQa
}
}
// 计时开关
if req.IsTurnTimer != questionQa.IsTurnTimer {
questionQaData["is_turn_timer"] = req.IsTurnTimer
}
if len(questionQaData) > 0 {
err = questionQaDao.EditQuestionQaById(tx, questionQa.QaId, questionQaData)
if err != nil {
@@ -509,6 +534,32 @@ func (r *QuestionQaService) PutQuestionQa(qaId int64, req requests.PutQuestionQa
}
}
// 删除计时规则
questionQaTimerDao := dao.QuestionQaTimerDao{}
err = questionQaTimerDao.DeleteQuestionQaTimerByQaId(tx, questionQa.QaId)
if err != nil {
tx.Rollback()
return false, errors.New(err.Error())
}
// 新增计时规则
if req.IsTurnTimer == 1 {
for _, timer := range req.QuestionQaTimer {
QuestionQaTimer := &model.QuestionQaTimer{
QaId: questionQa.QaId,
QuestionType: timer.QuestionType,
TimerRule: timer.TimerRule,
Duration: timer.Duration,
}
QuestionQaTimer, err := questionQaTimerDao.AddQuestionQaTimer(tx, QuestionQaTimer)
if err != nil {
tx.Rollback()
return false, errors.New("修改失败")
}
}
}
tx.Commit()
return true, nil
}