新增了计时规则
This commit is contained in:
parent
3855912448
commit
9c00e9e99b
@ -124,6 +124,21 @@ func (r *QuestionQa) AddQuestionQa(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
// 判断计时
|
||||
if req.IsTurnTimer == 1 {
|
||||
if req.QuestionQaTimer == nil {
|
||||
responses.FailWithMessage("缺少题目计时明细", c)
|
||||
return
|
||||
}
|
||||
|
||||
for _, item := range req.QuestionQaTimer {
|
||||
if err := global.Validate.Struct(item); err != nil {
|
||||
responses.FailWithMessage(utils.Translate(err), c)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 业务处理
|
||||
questionQaService := service.QuestionQaService{}
|
||||
_, err := questionQaService.AddQuestionQa(req)
|
||||
@ -167,6 +182,21 @@ func (r *QuestionQa) PutQuestionQa(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
// 判断计时
|
||||
if req.IsTurnTimer == 1 {
|
||||
if req.QuestionQaTimer == nil {
|
||||
responses.FailWithMessage("缺少题目计时明细", c)
|
||||
return
|
||||
}
|
||||
|
||||
for _, item := range req.QuestionQaTimer {
|
||||
if err := global.Validate.Struct(item); err != nil {
|
||||
responses.FailWithMessage(utils.Translate(err), c)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
id := c.Param("qa_id")
|
||||
if id == "" {
|
||||
responses.FailWithMessage("缺少参数", c)
|
||||
|
||||
@ -67,6 +67,7 @@ func GetQuestionQaListDto(m []*model.QuestionQa) []*QuestionQaDto {
|
||||
QaStatus: v.QaStatus,
|
||||
QaRuleContent: v.QaRuleContent,
|
||||
QaDisplayType: v.QaDisplayType,
|
||||
IsTurnTimer: v.IsTurnTimer,
|
||||
QaExpireTime: &v.QaExpireTime,
|
||||
QaShareId: utils.AddDomain(v.QaShareId),
|
||||
QaPassword: v.QaPassword,
|
||||
@ -104,6 +105,7 @@ func GetQuestionQaDto(m *model.QuestionQa) *QuestionQaDto {
|
||||
QaStatus: m.QaStatus,
|
||||
QaRuleContent: m.QaRuleContent,
|
||||
QaDisplayType: m.QaDisplayType,
|
||||
IsTurnTimer: m.IsTurnTimer,
|
||||
QaExpireTime: &m.QaExpireTime,
|
||||
QaShareId: utils.AddDomain(m.QaShareId),
|
||||
QaPassword: m.QaPassword,
|
||||
|
||||
@ -41,12 +41,14 @@ type AddQuestionQa struct {
|
||||
TokenNum *int `json:"token_num" form:"token_num" label:"飞花令数量" validate:"omitempty,number,min=1"` // (当题库类型为2、3时存在)
|
||||
RoundNum *int `json:"round_num" form:"round_num" label:"轮次数量" validate:"omitempty,number,min=1"` // (当题库类型为3时存在)
|
||||
QaDisplayType int `json:"qa_display_type" form:"qa_display_type" label:"展示类型" validate:"required,oneof=1 2"` // (1:常规 2:飞花令)
|
||||
IsTurnTimer int `json:"is_turn_timer" form:"is_turn_timer" label:"是否开启计时" validate:"omitempty,oneof=0 1"` // 是否开启计时(0:否 1:是)
|
||||
QaExpireTime string `json:"qa_expire_time" form:"qa_expire_time" label:"过期时间" validate:"required"` // 注意:这里假设LocalTime转换为字符串格式处理
|
||||
QaPassword string `json:"qa_password" form:"qa_password" label:"分享密码" validate:"required"`
|
||||
Image string `json:"image" form:"image" label:"背景图" validate:"required"`
|
||||
QuestionQaItem []*QuestionQaItem `json:"question_qa_item" form:"question_qa_item" label:"题目明细" validate:"required"`
|
||||
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:"计时设置"` //
|
||||
}
|
||||
|
||||
// QuestionQaItem 新增问答题库-题目明细
|
||||
@ -64,6 +66,13 @@ type TokenQuestionContent struct {
|
||||
Quantity int `json:"quantity" form:"quantity" validate:"number,min=0" label:"数量"`
|
||||
}
|
||||
|
||||
// QuestionQaTimer 计时设置
|
||||
type QuestionQaTimer struct {
|
||||
QuestionType int `json:"question_type" form:"question_type" validate:"required,number,oneof=1 2 3 4" label:"题目类型"` // 题目类型(1:单选 2:多选 3:问答 4:判断)
|
||||
TimerRule int `json:"timer_rule" form:"timer_rule" validate:"required,number,oneof=1 2" label:"计时规则"` // 计时规则(1:正计时 2:倒计时)
|
||||
Duration int `json:"duration" form:"duration" validate:"required,number,min=1,max=600" label:"时长(秒)"` // 时长(秒)
|
||||
}
|
||||
|
||||
// AddQuestionQaBaseTokenItem 新增问答题库-飞花令明细
|
||||
type AddQuestionQaBaseTokenItem struct {
|
||||
TokenId string `json:"token_id" form:"token_id" label:"飞花令明细id" validate:"required"`
|
||||
@ -78,6 +87,7 @@ type PutQuestionQa struct {
|
||||
TokenNum *int `json:"token_num" form:"token_num" label:"飞花令数量" validate:"omitempty,number,min=1"` // (当题库类型为2、3时存在)
|
||||
RoundNum *int `json:"round_num" form:"round_num" label:"轮次数量" validate:"omitempty,number,min=1"` // (当题库类型为3时存在)
|
||||
QaDisplayType int `json:"qa_display_type" form:"qa_display_type" label:"展示类型" validate:"required,oneof=1 2"` // (1:常规 2:飞花令)
|
||||
IsTurnTimer int `json:"is_turn_timer" form:"is_turn_timer" label:"是否开启计时" validate:"omitempty,oneof=0 1"` // 是否开启计时(0:否 1:是)
|
||||
QaExpireTime string `json:"qa_expire_time" form:"qa_expire_time" label:"过期时间" validate:"required"` // 注意:这里假设LocalTime转换为字符串格式处理
|
||||
QaPassword string `json:"qa_password" form:"qa_password" label:"分享密码" validate:"required"`
|
||||
Image string `json:"image" form:"image" label:"背景图" validate:"required"`
|
||||
@ -85,6 +95,7 @@ type PutQuestionQa struct {
|
||||
Action int `json:"action" form:"action" label:"动作" validate:"required,oneof=1 2"` // 1:正常修改 2:重新生成题库
|
||||
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:"计时设置"` //
|
||||
}
|
||||
|
||||
// PutQuestionQaItem 修改问答题库-明细
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user