checks.go 1.6 KB

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