place.go 2.4 KB

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