goods.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package godown
  2. import (
  3. "server/global"
  4. )
  5. type Goods struct {
  6. global.GVA_MODEL
  7. CommodityId int `json:"commodityId" gorm:"comment:商品id"`
  8. Commodity Commodity `json:"commodity" gorm:"foreignKey:CommodityId;references:id;"`
  9. Number int `json:"number" gorm:"comment:数量"`
  10. WarehouseId int `json:"warehouseId" gorm:"comment:仓库id"`
  11. Warehouse Warehouse `json:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
  12. StorageAreaId int `json:"storageAreaId" gorm:"comment:库区id"`
  13. StorageArea StorageArea `json:"storageArea" gorm:"foreignKey:StorageAreaId;references:id;"`
  14. PlaceId int `json:"placeId" gorm:"comment:库位id"`
  15. Place Place `json:"place" gorm:"foreignKey:PlaceId;references:id;"`
  16. }
  17. func (Goods) TableName() string {
  18. return "goods"
  19. }
  20. func QueryAllGoods() (goods []Goods, err error) {
  21. err = global.GVA_DB.Model(&Goods{}).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error
  22. return
  23. }
  24. func QueryGoodsList(limit, offset, commodityId, warehouseId, storageAreaId, placeId int) (goods []Goods, total int64, err error) {
  25. // 创建db
  26. db := global.GVA_DB.Model(&Goods{}).Debug()
  27. // 如果有条件搜索 下方会自动创建搜索语句
  28. if commodityId != 0 {
  29. db = db.Where("commodity_id = ?", commodityId)
  30. }
  31. if warehouseId != 0 {
  32. db = db.Where("warehouse_id = ?", warehouseId)
  33. }
  34. if storageAreaId != 0 {
  35. db = db.Where("storage_area_id = ?", storageAreaId)
  36. }
  37. if placeId != 0 {
  38. db = db.Where("place_id = ?", placeId)
  39. }
  40. err = db.Count(&total).Error
  41. if err != nil {
  42. return
  43. }
  44. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error
  45. return goods, total, err
  46. }
  47. func GetInventory(commodityId, warehouseId, storageAreaId, placeId int) (goods Goods, commodity Commodity, place Place) {
  48. global.GVA_DB.Model(&Goods{}).
  49. Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?",
  50. commodityId, warehouseId, storageAreaId, placeId).
  51. First(&goods)
  52. global.GVA_DB.First(&commodity, commodityId)
  53. global.GVA_DB.First(&place, placeId)
  54. return
  55. }
  56. func (g Goods) CreateGoods() error {
  57. return global.GVA_DB.Create(&g).Error
  58. }
  59. func (g Goods) UpdateGoods() error {
  60. return global.GVA_DB.Where("id = ?", g.ID).Updates(&g).Error
  61. }
  62. func DeleteGoods(id int) error {
  63. return global.GVA_DB.Where("id = ?", id).Unscoped().Delete(&Goods{}).Error
  64. }