package manage import ( model2 "ArmedPolice/app/common/model" "ArmedPolice/app/controller/basic" "ArmedPolice/app/model" "ArmedPolice/app/service" ) type MaterialSuppler struct{ *service.Session } type MaterialSupplerHandle func(session *service.Session) *MaterialSuppler type ( // MaterialSupplerBasic 基本信息 MaterialSupplerBasic struct { basic.CommonIDString *model.ManageMaterialSupplierBasic SupplierID string `json:"supplier_id"` Stock float64 `json:"stock"` } ) func (c *MaterialSuppler) List() (*basic.PageDataResponse, error) { return &basic.PageDataResponse{Data: nil, Count: 0}, nil } // Select 筛选信息 func (c *MaterialSuppler) Select(materialID uint64) ([]*MaterialSupplerBasic, error) { mManageMaterSupplier := model.NewManageMaterialSupplier() out, err := mManageMaterSupplier.Basic(model2.NewWhere("m_s.material_id", materialID)) if err != nil { return nil, err } list := make([]*MaterialSupplerBasic, 0) for _, v := range out { mManageMaterSupplier.SetID(v.ID) stock := v.Stock - v.FrozenStock if stock < 0 { stock = 0 } list = append(list, &MaterialSupplerBasic{ CommonIDString: basic.CommonIDString{ID: mManageMaterSupplier.GetEncodeID()}, ManageMaterialSupplierBasic: v, SupplierID: (&model2.Model{ID: v.SupplierID}).GetEncodeID(), Stock: stock, }) } return list, nil } // Form 数据操作 func (c *MaterialSuppler) Form(materialID, supplierID uint64, stock float64) error { mManageMaterSupplier := model.NewManageMaterialSupplier() var count int64 if err := model2.Count(mManageMaterSupplier.ManageMaterialSupplier, &count, model2.NewWhere("material_id", materialID), model2.NewWhere("supplier_id", supplierID)); err != nil { return err } mManageMaterSupplier.MaterialID = materialID mManageMaterSupplier.SupplierID = supplierID mManageMaterSupplier.Stock = stock return model2.Create(mManageMaterSupplier.ManageMaterialSupplier) } // Delete 删除操作 func (c *MaterialSuppler) Delete(id uint64) error { mManageMaterSupplier := model.NewManageMaterialSupplier() mManageMaterSupplier.SetID(id) return model2.Delete(mManageMaterSupplier.ManageMaterialSupplier) } func NewMaterialSuppler() MaterialSupplerHandle { return func(session *service.Session) *MaterialSuppler { return &MaterialSuppler{session} } }