exam.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "shudao-chat-go/models"
  5. "github.com/beego/beego/v2/server/web"
  6. )
  7. type ReModifyQuestionRequest struct {
  8. AIConversationID uint64 `json:"ai_conversation_id"`
  9. Content string `json:"content"`
  10. }
  11. type ExamController struct {
  12. web.Controller
  13. }
  14. //重新修改考试题目
  15. func (c *ExamController) ReModifyQuestion() {
  16. //post请求获取ai_conversation_id
  17. var AIConversationID ReModifyQuestionRequest
  18. if err := json.Unmarshal(c.Ctx.Input.RequestBody, &AIConversationID); err != nil {
  19. c.Data["json"] = map[string]interface{}{
  20. "statusCode": 400,
  21. "msg": "JSON解析失败: " + err.Error(),
  22. }
  23. c.ServeJSON()
  24. return
  25. }
  26. ai_conversation_id := AIConversationID.AIConversationID
  27. content := AIConversationID.Content
  28. //修改ai_message表中的ai_conversation_id中的"ai"回答的content
  29. tx := models.DB.Begin()
  30. if err := tx.Model(&models.AIMessage{}).Where("ai_conversation_id = ? AND type = 'ai'", ai_conversation_id).Update("content", content).Error; err != nil {
  31. tx.Rollback()
  32. c.Data["json"] = map[string]interface{}{
  33. "statusCode": 500,
  34. "msg": "修改失败: " + err.Error(),
  35. }
  36. c.ServeJSON()
  37. return
  38. }
  39. tx.Commit()
  40. c.Data["json"] = map[string]interface{}{
  41. "statusCode": 200,
  42. "msg": "success",
  43. }
  44. c.ServeJSON()
  45. }