wall.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package wall
  2. import (
  3. "context"
  4. "go-common/app/interface/main/app-wall/conf"
  5. "go-common/app/interface/main/app-wall/model/wall"
  6. "go-common/library/database/sql"
  7. "go-common/library/log"
  8. )
  9. const (
  10. //wall
  11. _wallSQL = "SELECT logo,download,name,package,size,remark FROM wall WHERE state=1 ORDER BY rank DESC"
  12. )
  13. type Dao struct {
  14. db *sql.DB
  15. wallSQL *sql.Stmt
  16. }
  17. func New(c *conf.Config) (d *Dao) {
  18. d = &Dao{
  19. db: sql.NewMySQL(c.MySQL.Show),
  20. }
  21. d.wallSQL = d.db.Prepared(_wallSQL)
  22. return
  23. }
  24. func (d *Dao) WallAll(ctx context.Context) (res []*wall.Wall, err error) {
  25. rows, err := d.wallSQL.Query(ctx)
  26. if err != nil {
  27. log.Error("query error (%v)", err)
  28. return
  29. }
  30. defer rows.Close()
  31. res = []*wall.Wall{}
  32. for rows.Next() {
  33. a := &wall.Wall{}
  34. if err = rows.Scan(&a.Logo, &a.Download, &a.Name, &a.Package, &a.Size, &a.Remark); err != nil {
  35. log.Error("rows.Scan err (%v)", err)
  36. return
  37. }
  38. res = append(res, a)
  39. }
  40. return
  41. }
  42. func (d *Dao) Ping(c context.Context) (err error) {
  43. return d.db.Ping(c)
  44. }