category.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package model
  2. import "trading-go/common"
  3. type Category struct {
  4. Id uint `db:"id"`
  5. Name string `db:"name"`
  6. Pic string `db:"pic"`
  7. }
  8. type CategoryJson struct {
  9. Name string `json:"name"`
  10. Pic string `json:"pic"`
  11. }
  12. type CategoryOfGoods struct {
  13. Id uint `db:"id"`
  14. GoodsId uint `db:"goods_id"`
  15. CategoryId uint `db:"category_id"`
  16. }
  17. func (j CategoryJson) Change() Category {
  18. return Category{
  19. Name: j.Name,
  20. Pic: j.Pic,
  21. }
  22. }
  23. func (c Category) GetAll() (categories []Category, err error) {
  24. db := common.DB
  25. sqlStr := "SELECT * FROM categories"
  26. err = db.Select(&categories, sqlStr)
  27. return
  28. }
  29. func (c Category) Create() error {
  30. db := common.DB
  31. sqlStr := "INSERT INTO categories(name, pic) VALUES(:name, :pic)"
  32. _, err := db.NamedExec(sqlStr, c)
  33. return err
  34. }
  35. func (c Category) Delete() error {
  36. db := common.DB
  37. sqlStr := "DELETE FROM categories WHERE id = ?"
  38. _, err := db.Exec(sqlStr, c.Id)
  39. return err
  40. }
  41. func (g CategoryOfGoods) Save(id uint, categories []uint) error {
  42. db := common.DB
  43. sqlStr := "INSERT INTO category_of_goods(goods_id, category_id) VALUES (?, ?)"
  44. for _, category := range categories {
  45. _, err := db.Exec(sqlStr, id, category)
  46. if err != nil {
  47. return err
  48. }
  49. }
  50. return nil
  51. }