| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 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
- }
|