goods.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package godown
  2. import (
  3. "server/global"
  4. )
  5. type Goods struct {
  6. global.GVA_MODEL
  7. Name string `json:"name" gorm:"comment:名称"`
  8. GoodsGenreId int `json:"goodsGenreId" gorm:"comment:类型"`
  9. GoodsGenre GoodsGenre `json:"goodsGenre" gorm:"foreignKey:GoodsGenreId;"`
  10. Characteristic string `json:"characteristic" gorm:"comment:特性"`
  11. Specifications string `json:"specifications" gorm:"comment:规格"`
  12. Unit string `json:"unit" gorm:"comment:单位"`
  13. Number int `json:"number" gorm:"comment:数量"`
  14. Position string `json:"position" gorm:"comment:位置"`
  15. }
  16. func (Goods) TableName() string {
  17. return "goods"
  18. }
  19. func QueryAllGoods() (goods []Goods, err error) {
  20. err = global.GVA_DB.Model(&Goods{}).Find(&goods).Error
  21. return
  22. }
  23. func QueryGoodsList(limit, offset, genre int, name, characteristic, specifications string) (goods []Goods, total int64, err error) {
  24. // 创建db
  25. db := global.GVA_DB.Model(&Goods{}).Debug()
  26. // 如果有条件搜索 下方会自动创建搜索语句
  27. if name != "" {
  28. db = db.Where("name LIKE ?", "%"+name+"%")
  29. }
  30. if characteristic != "" {
  31. db = db.Where("characteristic LIKE ?", "%"+characteristic+"%")
  32. }
  33. if specifications != "" {
  34. db = db.Where("specifications LIKE ?", "%"+specifications+"%")
  35. }
  36. if genre > 0 {
  37. db = db.Where("goods_genre_id = ?", genre)
  38. }
  39. err = db.Count(&total).Error
  40. if err != nil {
  41. return
  42. }
  43. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("GoodsGenre").Find(&goods).Error
  44. return goods, total, err
  45. }
  46. func QueryGoodsByGenre(genreId int) (goods []Goods, err error) {
  47. err = global.GVA_DB.Model(&Goods{}).Where("goods_genre_id = ?", genreId).Find(&goods).Error
  48. return goods, err
  49. }
  50. func (g Goods) CreateGoods() error {
  51. return global.GVA_DB.Create(&g).Error
  52. }
  53. func (g Goods) UpdateGoods() error {
  54. return global.GVA_DB.Where("id = ?", g.ID).Updates(&g).Error
  55. }
  56. func DeleteGoods(id int) error {
  57. return global.GVA_DB.Where("id = ?", id).Unscoped().Delete(&Goods{}).Error
  58. }