storageArea.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package godown
  2. import (
  3. "server/global"
  4. )
  5. type StorageArea struct {
  6. global.GVA_MODEL
  7. Name string `json:"name" form:"name" gorm:"comment:库区名称"`
  8. Genre int `json:"genre" form:"genre" gorm:"comment:库区类型"`
  9. CommodityGenre CommodityGenre `json:"commodityGenre" form:"commodityGenre" gorm:"foreignKey:Genre;references:id;"`
  10. WarehouseId int `json:"warehouseId" form:"warehouseId" gorm:"comment:仓库"`
  11. Warehouse Warehouse `json:"warehouse" form:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
  12. IsEffective bool `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
  13. Places []Place `json:"places" form:"places" gorm:"foreignKey:StorageAreaID;"`
  14. }
  15. func (StorageArea) TableName() string {
  16. return "storage_area"
  17. }
  18. func QueryAllStorageArea() (storageAreas []StorageArea, err error) {
  19. err = global.GVA_DB.Where("is_effective = true").Preload("CommodityGenre").Find(&storageAreas).Error
  20. return storageAreas, err
  21. }
  22. func QueryStorageAreaList(limit, offset, genre, warehouseId int, name string) (storageAreas []StorageArea, total int64, err error) {
  23. // 创建db
  24. db := global.GVA_DB.Model(&StorageArea{})
  25. // 如果有条件搜索 下方会自动创建搜索语句
  26. if genre != 0 {
  27. db = db.Where("genre = ?", genre)
  28. }
  29. if warehouseId != 0 {
  30. db = db.Where("warehouse_id = ?", warehouseId)
  31. }
  32. if name != "" {
  33. db = db.Where("name LIKE?", "%"+name+"%")
  34. }
  35. err = db.Count(&total).Error
  36. if err != nil {
  37. return
  38. }
  39. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Warehouse").Preload("CommodityGenre").Find(&storageAreas).Error
  40. return storageAreas, total, err
  41. }
  42. func (sa StorageArea) CreateStorageArea() error {
  43. return global.GVA_DB.Create(&sa).Error
  44. }
  45. func (sa StorageArea) UpdateStorageArea() error {
  46. return global.GVA_DB.Where("id = ?", sa.ID).Updates(&sa).Error
  47. }
  48. func (sa StorageArea) SwitchStorageArea() error {
  49. return global.GVA_DB.Select("is_effective").Where("id = ?", sa.ID).Updates(&sa).Error
  50. }
  51. func (sa StorageArea) DeleteStorageArea() error {
  52. return global.GVA_DB.Unscoped().Delete(&sa).Error
  53. }