package godown import ( "server/global" ) type Goods struct { global.GVA_MODEL CommodityId int `json:"commodityId" gorm:"comment:商品id"` Commodity Commodity `json:"commodity" gorm:"foreignKey:CommodityId;references:id;"` Number int `json:"number" gorm:"comment:数量"` WarehouseId int `json:"warehouseId" gorm:"comment:仓库id"` Warehouse Warehouse `json:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"` StorageAreaId int `json:"storageAreaId" gorm:"comment:库区id"` StorageArea StorageArea `json:"storageArea" gorm:"foreignKey:StorageAreaId;references:id;"` PlaceId int `json:"placeId" gorm:"comment:库位id"` Place Place `json:"place" gorm:"foreignKey:PlaceId;references:id;"` } func (Goods) TableName() string { return "goods" } func QueryAllGoods() (goods []Goods, err error) { err = global.GVA_DB.Model(&Goods{}).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error return } func QueryGoodsList(limit, offset, commodityId, warehouseId, storageAreaId, placeId int) (goods []Goods, total int64, err error) { // 创建db db := global.GVA_DB.Model(&Goods{}).Debug() // 如果有条件搜索 下方会自动创建搜索语句 if commodityId != 0 { db = db.Where("commodity_id = ?", commodityId) } if warehouseId != 0 { db = db.Where("warehouse_id = ?", warehouseId) } if storageAreaId != 0 { db = db.Where("storage_area_id = ?", storageAreaId) } if placeId != 0 { db = db.Where("place_id = ?", placeId) } err = db.Count(&total).Error if err != nil { return } err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error return goods, total, err } func GetInventory(commodityId, warehouseId, storageAreaId, placeId int) (goods Goods, commodity Commodity, place Place) { global.GVA_DB.Model(&Goods{}). Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?", commodityId, warehouseId, storageAreaId, placeId). First(&goods) global.GVA_DB.First(&commodity, commodityId) global.GVA_DB.First(&place, placeId) return } func (g Goods) CreateGoods() error { return global.GVA_DB.Create(&g).Error } func (g Goods) UpdateGoods() error { return global.GVA_DB.Where("id = ?", g.ID).Updates(&g).Error } func DeleteGoods(id int) error { return global.GVA_DB.Where("id = ?", id).Unscoped().Delete(&Goods{}).Error }