commodity.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package godown
  2. import (
  3. "server/global"
  4. )
  5. type Commodity struct {
  6. global.GVA_MODEL
  7. Name string `json:"name" form:"name" gorm:"comment:商品名称"`
  8. SupplierId int `json:"supplierId" form:"supplierId" gorm:"comment:供应商id"`
  9. Supplier Supplier `json:"supplier" form:"supplier" gorm:"foreignKey:SupplierId;references:id;"`
  10. Genre int `json:"genre" form:"genre" gorm:"comment:商品类型id"`
  11. CommodityGenre CommodityGenre `json:"commodityGenre" form:"commodityGenre" gorm:"foreignKey:Genre;references:id;"`
  12. UnitPrice float64 `json:"unitPrice" form:"unitPrice" gorm:"comment:单价"`
  13. Unity string `json:"unity" form:"unity" gorm:"comment:单位"`
  14. Remark string `json:"remark" form:"remark" gorm:"comment:备注"`
  15. }
  16. func (Commodity) TableName() string {
  17. return "commodity"
  18. }
  19. func QueryAllCommodity() (commodities []Commodity, err error) {
  20. err = global.GVA_DB.Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
  21. return commodities, err
  22. }
  23. func QueryCommodityList(limit, offset int, name string) (commodities []Commodity, total int64, err error) {
  24. // 创建db
  25. db := global.GVA_DB.Model(&Commodity{})
  26. // 如果有条件搜索 下方会自动创建搜索语句
  27. if name != "" {
  28. db = db.Where("name LIKE?", "%"+name+"%")
  29. }
  30. err = db.Count(&total).Error
  31. if err != nil {
  32. return
  33. }
  34. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
  35. return commodities, total, err
  36. }
  37. func QueryCommodityByGenre(genre int) (commodities []Commodity, err error) {
  38. err = global.GVA_DB.Where("genre =?", genre).Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
  39. return commodities, err
  40. }
  41. func (c Commodity) CreateCommodity() error {
  42. return global.GVA_DB.Create(&c).Error
  43. }
  44. func (c Commodity) UpdateCommodity() error {
  45. return global.GVA_DB.Select("*").Omit("created_at").Where("id = ?", c.ID).Updates(&c).Error
  46. }
  47. func (c Commodity) DeleteCommodity() error {
  48. return global.GVA_DB.Unscoped().Delete(&c).Error
  49. }