question.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package models
  2. import (
  3. "errors"
  4. "zhiyuan/pkg/db"
  5. )
  6. type Question struct {
  7. ID int `json:"id"`
  8. CourseId int `json:"course_id"`
  9. Content string `json:"content"`
  10. Options string `json:"options"`
  11. Answer string `json:"answer"`
  12. Show int `json:"show"`
  13. CreatedAt int `json:"created_at"`
  14. UpdatedAt int `json:"updated_at"`
  15. }
  16. func (Question) TableName() string {
  17. return "zy_question"
  18. }
  19. func (a Question) GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*Question, error) {
  20. if retVal == nil {
  21. var question *Question
  22. err := db.GetOne(a.TableName(), where, fields, &question)
  23. return question, err
  24. } else {
  25. err := db.GetOne(a.TableName(), where, fields, retVal)
  26. return nil, err
  27. }
  28. }
  29. func (a Question) GetMulti(where map[string]interface{}, fields []string, retVal interface{}) ([]*Question, error) {
  30. if retVal == nil {
  31. var question []*Question
  32. err := db.GetMulti(a.TableName(), where, fields, &question)
  33. return question, err
  34. } else {
  35. err := db.GetMulti(a.TableName(), where, fields, retVal)
  36. return nil, err
  37. }
  38. }
  39. func (a Question) GetOneRaw(where map[string]string, param map[string]interface{}, retVal interface{}) (*Question, error) {
  40. question, err := a.GetMultiRaw(where, param, retVal)
  41. if err != nil {
  42. return nil, err
  43. }
  44. if len(question) == 0 {
  45. return nil, errors.New("empty record2")
  46. }
  47. return question[0], nil
  48. }
  49. func (a Question) GetMultiRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*Question, error) {
  50. field := "SELECT * FROM zy_question "
  51. if retVal == nil {
  52. var question []*Question
  53. err := db.GetMultiRaw(field, where, param, &question)
  54. return question, err
  55. } else {
  56. err := db.GetMultiRaw(field, where, param, retVal)
  57. return nil, err
  58. }
  59. }