package service import ( "errors" "knowledge/api/dao" "knowledge/api/requests" "knowledge/global" "strconv" ) type QuestionQaItemService struct { } // DeleteQuestionQaItem 删除问答题库明细 func (r *QuestionQaItemService) DeleteQuestionQaItem(req requests.DeleteQuestionQaItem) (bool, error) { questionQaItemDao := dao.QuestionQaItemDao{} // 开始事务 tx := global.Db.Begin() defer func() { if r := recover(); r != nil { tx.Rollback() } }() for _, itemId := range req.ItemId { // 将字符串转换为int64类型 itemId, err := strconv.ParseInt(itemId, 10, 64) if err != nil { tx.Rollback() return false, errors.New("删除失败") } _, err = questionQaItemDao.GetQuestionQaItemById(itemId) if err != nil { tx.Rollback() return false, errors.New("明细不存在") } err = questionQaItemDao.DeleteQuestionQaItemById(tx, itemId) if err != nil { tx.Rollback() return false, errors.New("删除失败") } } tx.Commit() return true, nil } // PutQuestionQaItemMust 修改必选 func (r *QuestionQaItemService) PutQuestionQaItemMust(itemId int64, req requests.PutQuestionQaItemMust) (bool, error) { questionQaItemDao := dao.QuestionQaItemDao{} questionQaItem, err := questionQaItemDao.GetQuestionQaItemById(itemId) if err != nil { return false, errors.New("题目不存在") } // 分享密码 if req.IsMustSelect == questionQaItem.IsMustSelect { return true, nil } // 开始事务 tx := global.Db.Begin() defer func() { if r := recover(); r != nil { tx.Rollback() } }() questionQaItemData := make(map[string]interface{}) questionQaItemData["is_must_select"] = req.IsMustSelect err = questionQaItemDao.EditQuestionQaItemById(tx, itemId, questionQaItemData) if err != nil { tx.Rollback() return false, errors.New(err.Error()) } tx.Commit() return true, nil }