package dao import "server/global" type Place struct { global.GVA_MODEL Code string `json:"code" form:"code" gorm:"comment:库位编码"` ShelfNumber string `json:"shelfNumber" form:"shelfNumber" gorm:"comment:货架号"` LayerNumber string `json:"layerNumber" form:"layerNumber" gorm:"comment:层号"` Genre int `json:"genre" form:"genre" gorm:"comment:库区类型"` StorageAreaGenre StorageAreaGenre `json:"storageAreaGenre" form:"storageAreaGenre" gorm:"foreignKey:Genre;references:id;"` StorageAreaID int `json:"storageAreaId" form:"storageAreaId" gorm:"comment:所属库区id"` StorageArea StorageArea `json:"storageArea" form:"storageArea" gorm:"foreignKey:StorageAreaID;references:id;"` WarehouseId int `json:"warehouseId" form:"warehouseId" gorm:"comment:仓库"` Warehouse Warehouse `json:"warehouse" form:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"` IsEffective bool `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"` } func (Place) TableName() string { return "place" } func QueryAllPlace() (places []Place, err error) { err = global.GVA_DB.Where("is_effective = true").Find(&places).Error return } func QueryPlaceList(limit, offset, genre, warehouseId, storageAreaId int, name string) (places []Place, total int64, err error) { // 创建db db := global.GVA_DB.Model(&Place{}) // 如果有条件搜索 下方会自动创建搜索语句 if genre != 0 { db = db.Where("genre = ?", genre) } if storageAreaId != 0 { db = db.Where("id = ?", storageAreaId) } if warehouseId != 0 { db = db.Where("warehouse_id = ?", warehouseId) } if name != "" { db = db.Where("name LIKE ?", "%"+name+"%") } err = db.Count(&total).Error if err != nil { return } err = db.Order("id desc").Limit(limit).Offset(offset).Preload("StorageArea").Preload("Warehouse").Preload("StorageAreaGenre").Find(&places).Error return places, total, err } func (p Place) CreatePlace() error { return global.GVA_DB.Create(&p).Error } func (p Place) SwitchPlace() error { return global.GVA_DB.Select("is_effective").Where("id = ?", p.ID).Updates(&p).Error } func (p Place) UpdatePlace() error { return global.GVA_DB.Model(&Place{}).Where("id =?", p.ID).Updates(&p).Error } func (p Place) DeletePlace() error { return global.GVA_DB.Unscoped().Delete(&p).Error }