warehouse.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package godown
  2. import "server/global"
  3. type Warehouse struct {
  4. global.GVA_MODEL
  5. Name string `json:"name" form:"name" gorm:"comment:库房名称"`
  6. Location string `json:"location" form:"location" gorm:"comment:库房位置"`
  7. Head string `json:"head" form:"head" gorm:"comment:负责人"`
  8. Remarks string `json:"remarks" form:"remarks" gorm:"comment:备注"`
  9. IsEffective bool `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
  10. StorageAreas []StorageArea `json:"storageAreas" form:"storageAreas" gorm:"foreignKey:WarehouseId"`
  11. }
  12. func (Warehouse) TableName() string {
  13. return "warehouse"
  14. }
  15. func QueryAllWarehouse() (warehouse []Warehouse, err error) {
  16. err = global.GVA_DB.Where("is_effective = true").Model(&Warehouse{}).Preload("StorageAreas").Preload("StorageAreas.Places").Find(&warehouse).Error
  17. return warehouse, err
  18. }
  19. func QueryWarehouseList(limit, offset int, name string) (warehouse []Warehouse, total int64, err error) {
  20. // 创建db
  21. db := global.GVA_DB.Model(&Warehouse{})
  22. // 如果有条件搜索 下方会自动创建搜索语句
  23. if name != "" {
  24. db = db.Where("name LIKE ?", "%"+name+"%")
  25. }
  26. err = db.Count(&total).Error
  27. if err != nil {
  28. return
  29. }
  30. err = db.Order("id desc").Limit(limit).Offset(offset).Find(&warehouse).Error
  31. return warehouse, total, err
  32. }
  33. func (w Warehouse) CreateWarehouse() error {
  34. return global.GVA_DB.Create(&w).Error
  35. }
  36. func (w Warehouse) UpdateWarehouse() error {
  37. return global.GVA_DB.Where("id = ?", w.ID).Updates(&w).Error
  38. }
  39. func (w Warehouse) SwitchWarehouse() error {
  40. return global.GVA_DB.Select("is_effective").Where("id = ?", w.ID).Updates(&w).Error
  41. }
  42. func (w Warehouse) DeleteWarehouse() error {
  43. return global.GVA_DB.Unscoped().Delete(&w).Error
  44. }