diff --git a/api/controller/ErrorWord.go b/api/controller/ErrorWord.go index 687e778..1284f0a 100644 --- a/api/controller/ErrorWord.go +++ b/api/controller/ErrorWord.go @@ -180,6 +180,7 @@ func (r *BaseErrorWord) OperationErrorWord(c *gin.Context) { } }() + questionOptionDao := dao.QuestionOptionDao{} var questionIds []string for _, question := range questions { questionName := utils.ReplaceString(question.QuestionName, baseErrorWord.WordOld, baseErrorWord.WordNew) @@ -203,12 +204,34 @@ func (r *BaseErrorWord) OperationErrorWord(c *gin.Context) { err = questionDao.EditQuestionById(tx, question.QuestionId, datas) if err != nil { tx.Rollback() + responses.FailWithMessage(err.Error(), c) return } // 记录操作id questionIds = append(questionIds, fmt.Sprintf("%d", question.QuestionId)) } + + // 获取题目选项详情 + questionOptions, err := questionOptionDao.GetQuestionOptionFirstByQuestionId(question.QuestionId) + if err == nil && len(questionOptions) > 0 { + for _, option := range questionOptions { + datas = make(map[string]interface{}) + optionValue := utils.ReplaceString(option.OptionValue, baseErrorWord.WordOld, baseErrorWord.WordNew) + if option.OptionValue != optionValue { + datas["option_value"] = optionValue + } + + if len(datas) > 0 { + err = questionOptionDao.EditQuestionOptionById(tx, option.OptionId, datas) + if err != nil { + tx.Rollback() + responses.FailWithMessage(err.Error(), c) + return + } + } + } + } } if len(questionIds) > 0 { diff --git a/api/dao/QuestionOption.go b/api/dao/QuestionOption.go index 86a8654..e5662ee 100644 --- a/api/dao/QuestionOption.go +++ b/api/dao/QuestionOption.go @@ -10,7 +10,6 @@ type QuestionOptionDao struct { } // GetQuestionOptionFirstById 获取数据-id -// roleId 用户id func (r *QuestionOptionDao) GetQuestionOptionFirstById(OptionId int64) (m *model.QuestionOption, err error) { err = global.Db.First(&m, OptionId).Error if err != nil { @@ -19,6 +18,14 @@ func (r *QuestionOptionDao) GetQuestionOptionFirstById(OptionId int64) (m *model return m, nil } +func (r *QuestionOptionDao) GetQuestionOptionFirstByQuestionId(questionId int64) (m []*model.QuestionOption, err error) { + err = global.Db.Where("question_id = ?", questionId).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} + // DeleteQuestionOption 删除 func (r *QuestionOptionDao) DeleteQuestionOption(tx *gorm.DB, maps interface{}) error { err := tx.Where(maps).Delete(&model.QuestionOption{}).Error