user.go 888 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package postgres
  2. import (
  3. "video_course/model"
  4. )
  5. type User struct {
  6. base
  7. }
  8. func (u User) Create(user *model.User) {
  9. sql := `insert into t_user (id, name, create_at) VALUES
  10. ($1, $2, $3)`
  11. panicExec(u.writeDB().Exec(u.ctx(), sql,
  12. user.Id, user.Name, user.CreateAt))
  13. }
  14. func (u User) ById(userId int) (user *model.User) {
  15. user = &model.User{}
  16. sql := `select id, name, create_at from t_user
  17. where id = $1 `
  18. panicError(
  19. u.writeDB().
  20. QueryRow(u.ctx(), sql, userId).
  21. Scan(&user.Id, &user.Name, &user.CreateAt))
  22. return
  23. }
  24. func (u User) All() (users []*model.User) {
  25. sql := `select id, name, create_at from t_user`
  26. rows, err := u.writeDB().
  27. Query(u.ctx(), sql)
  28. panicError(err)
  29. defer rows.Close()
  30. for rows.Next() {
  31. user := &model.User{}
  32. err = rows.Scan(&user.Id, &user.Name, &user.CreateAt)
  33. panicError(err)
  34. users = append(users, user)
  35. }
  36. return
  37. }