place.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package dao
  2. import "server/global"
  3. type Place struct {
  4. global.GVA_MODEL
  5. Code string `json:"code" form:"code" gorm:"comment:库位编码"`
  6. ShelfNumber string `json:"shelfNumber" form:"shelfNumber" gorm:"comment:货架号"`
  7. LayerNumber string `json:"layerNumber" form:"layerNumber" gorm:"comment:层号"`
  8. Genre int `json:"genre" form:"genre" gorm:"comment:库区类型"`
  9. StorageAreaGenre StorageAreaGenre `json:"storageAreaGenre" form:"storageAreaGenre" gorm:"foreignKey:Genre;references:id;"`
  10. StorageAreaID int `json:"storageAreaId" form:"storageAreaId" gorm:"comment:所属库区id"`
  11. StorageArea StorageArea `json:"storageArea" form:"storageArea" gorm:"foreignKey:StorageAreaID;references:id;"`
  12. WarehouseId int `json:"warehouseId" form:"warehouseId" gorm:"comment:仓库"`
  13. Warehouse Warehouse `json:"warehouse" form:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
  14. IsEffective bool `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
  15. }
  16. func (Place) TableName() string {
  17. return "place"
  18. }
  19. func QueryAllPlace() (places []Place, err error) {
  20. err = global.GVA_DB.Where("is_effective = true").Find(&places).Error
  21. return
  22. }
  23. func QueryPlaceList(limit, offset, genre, warehouseId, storageAreaId int, name string) (places []Place, total int64, err error) {
  24. // 创建db
  25. db := global.GVA_DB.Model(&Place{})
  26. // 如果有条件搜索 下方会自动创建搜索语句
  27. if genre != 0 {
  28. db = db.Where("genre = ?", genre)
  29. }
  30. if storageAreaId != 0 {
  31. db = db.Where("id = ?", storageAreaId)
  32. }
  33. if warehouseId != 0 {
  34. db = db.Where("warehouse_id = ?", warehouseId)
  35. }
  36. if name != "" {
  37. db = db.Where("name LIKE ?", "%"+name+"%")
  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("StorageArea").Preload("Warehouse").Preload("StorageAreaGenre").Find(&places).Error
  44. return places, total, err
  45. }
  46. func (p Place) CreatePlace() error {
  47. return global.GVA_DB.Create(&p).Error
  48. }
  49. func (p Place) SwitchPlace() error {
  50. return global.GVA_DB.Select("is_effective").Where("id = ?", p.ID).Updates(&p).Error
  51. }
  52. func (p Place) UpdatePlace() error {
  53. return global.GVA_DB.Model(&Place{}).Where("id =?", p.ID).Updates(&p).Error
  54. }
  55. func (p Place) DeletePlace() error {
  56. return global.GVA_DB.Unscoped().Delete(&p).Error
  57. }