From d20acf38c36c11ee4428c3e74a17f5870dc61b51 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期四, 16 十一月 2023 09:51:00 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/SRM --- service/test/product.go | 108 ++++++++++++++++++++++++++---------------------------- 1 files changed, 52 insertions(+), 56 deletions(-) diff --git a/service/test/product.go b/service/test/product.go index b4d05c2..8ad82b5 100644 --- a/service/test/product.go +++ b/service/test/product.go @@ -12,54 +12,67 @@ // CreateProduct 鍒涘缓Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) -func (pService *ProductService) CreateProduct(p []*test.Product) (err error) { - err = global.GVA_DB.Create(p).Error +func (pService *ProductService) CreateProduct(pList []*testReq.Product) (err error) { + + products := make([]*test.SupplierMaterial, 0, len(pList)) + + for _, p := range pList { + products = append(products, &test.SupplierMaterial{ + Name: p.Name, + Number: p.Number, + SupplierId: p.SupplierId, + Unit: p.Unit, + PurchasePrice: p.PurchasePrice, + DeliveryTime: p.DeliveryTime, + ShippingDuration: p.ShippingDuration, + Specifications: p.Specifications, + CategoryName: p.CategoryName, + }) + } + + err = global.GVA_DB.Create(products).Error return err } // DeleteProduct 鍒犻櫎Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) -func (pService *ProductService) DeleteProduct(p test.Product) (err error) { - err = global.GVA_DB.Delete(&p).Error +func (pService *ProductService) DeleteProduct(id int) (err error) { + err = global.GVA_DB.Delete(&test.SupplierMaterial{}, "id = ?", id).Error return err } // DeleteProductByIds 鎵归噺鍒犻櫎Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) func (pService *ProductService) DeleteProductByIds(ids request.IdsReq) (err error) { - err = global.GVA_DB.Delete(&[]test.Product{}, "id in ?", ids.Ids).Error + err = global.GVA_DB.Delete(&[]test.SupplierMaterial{}, "id in ?", ids.Ids).Error return err } // UpdateProduct 鏇存柊Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) -func (pService *ProductService) UpdateProduct(p test.Product) (err error) { +func (pService *ProductService) UpdateProduct(p test.SupplierMaterial) (err error) { err = global.GVA_DB.Updates(&p).Error return err } // GetProduct 鏍规嵁id鑾峰彇Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) -func (pService *ProductService) GetProduct(id uint) (p test.Product, err error) { +func (pService *ProductService) GetProduct(id int) (p test.SupplierMaterial, err error) { err = global.GVA_DB.Where("id = ?", id).First(&p).Error return } // GetProductInfoList 鍒嗛〉鑾峰彇Product璁板綍 // Author [piexlmax](https://github.com/piexlmax) -func (pService *ProductService) GetProductInfoList(info testReq.ProductSearch) (list []test.Product, total int64, err error) { +func (pService *ProductService) GetProductInfoList(info testReq.ProductSearch) (list []test.SupplierMaterial, total int64, err error) { limit := info.PageSize offset := info.PageSize * (info.Page - 1) // 鍒涘缓db - db := global.GVA_DB.Model(&test.Product{}) - var ps []test.Product - // 濡傛灉鏈夋潯浠舵悳绱� 涓嬫柟浼氳嚜鍔ㄥ垱寤烘悳绱㈣鍙� + db := global.GVA_DB.Model(&test.SupplierMaterial{}) + var ps []test.SupplierMaterial //鎼滅储妗嗗悎涓�娣诲姞鏌ヨ鏉′欢 if info.Keyword != "" { - db = db.Where("srm_product.name LIKE ?", "%"+info.Keyword+"%").Joins("srm_supplier").Or("srm_supplier.name LIKE ?", "%"+info.Keyword+"%") - } - if info.StartCreatedAt != nil && info.EndCreatedAt != nil { - db = db.Where("created_at BETWEEN ? AND ?", info.StartCreatedAt, info.EndCreatedAt) + db = db.Where("`srm_supplier_material`.name LIKE ?", "%"+info.Keyword+"%").Joins("Supplier").Or("Supplier.name LIKE ?", "%"+info.Keyword+"%") } if info.Name != "" { db = db.Where("name LIKE ?", "%"+info.Name+"%") @@ -67,48 +80,9 @@ if info.Number != "" { db = db.Where("number LIKE ?", "%"+info.Number+"%") } - if info.Unit != "" { - db = db.Where("unit LIKE ?", "%"+info.Unit+"%") - } if info.SupplierId != 0 { db = db.Where("supplier_id = ?", info.SupplierId) - } - - if info.MaximumStock != 0 { - db = db.Where("maximum_stock = ?", info.MaximumStock) - } - - if info.MinimumStock != 0 { - db = db.Where("minimum_stock = ?", info.MinimumStock) - } - - if info.PurchasePrice != 0 { - db = db.Where("purchase_price = ?", info.PurchasePrice) - } - - if info.Specifications != "" { - db = db.Where("specifications LIKE ?", "%"+info.Specifications+"%") - } - - if info.ModelNumber != "" { - db = db.Where("model_number LIKE ?", "%"+info.ModelNumber+"%") - } - - if info.ProductType != "" { - db = db.Where("product_type LIKE ?", "%"+info.ProductType+"%") - } - - if info.SupplierNumber != "" { - db = db.Joins("srm_supplier").Where("srm_supplier.number LIKE ?", "%"+info.SupplierNumber+"%") - } - - if info.DeliveryTime != 0 { - db = db.Where("delivery_time = ?", info.DeliveryTime) - } - - if info.ShippingDuration != 0 { - db = db.Where("shipping_duration = ?", info.ShippingDuration) } err = db.Count(&total).Error @@ -121,14 +95,36 @@ } // GetProducts 鏍规嵁ids鑾峰彇Product璁板綍 -func (pService *ProductService) GetProducts(ids []uint) (p []*test.Product, m map[uint]*test.Product, err error) { +func (pService *ProductService) GetProducts(ids []uint) (p []*test.SupplierMaterial, m map[uint]*test.SupplierMaterial, err error) { err = global.GVA_DB.Where("id in ?", ids).Find(&p).Error if err != nil { return } - m = make(map[uint]*test.Product, len(p)) + m = make(map[uint]*test.SupplierMaterial, len(p)) for _, product := range p { m[product.ID] = product } return } + +// GetMaterials 鑾峰彇鐗╂枡 +func (pService *ProductService) GetMaterials(info testReq.ProductSearch) (list []test.Material, total int64, err error) { + limit := info.PageSize + offset := info.PageSize * (info.Page - 1) + // 鍒涘缓db + db := global.GVA_DB.Model(&test.Material{}) + var ps []test.Material + if info.Keyword != "" { + db = db.Where("name LIKE ? or number LIKE ?", "%"+info.Name+"%", "%"+info.Number+"%") + } + + db = db.Where("purchase_type = ?", test.PurchaseTypeOutSource) + + err = db.Count(&total).Error + if err != nil { + return + } + + err = db.Limit(limit).Offset(offset).Find(&ps).Error + return ps, total, err +} -- Gitblit v1.8.0