From ae1b07994f7785196d1d3ba1d53215bbded2dbc0 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 18 八月 2023 20:07:29 +0800 Subject: [PATCH] fix --- service/products.go | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/service/products.go b/service/products.go index e8d46e5..249cc9c 100644 --- a/service/products.go +++ b/service/products.go @@ -28,6 +28,9 @@ for _, product := range products { if productIdMap[product.Id] == nil && productNumberMap[product.Number] == nil { newProducts = append(newProducts, product) + } else if productIdMap[product.Id] != nil && slf.CheckProductChanged(productIdMap[product.Id], product) || productNumberMap[product.Number] != nil && slf.CheckProductChanged(productNumberMap[product.Number], product) { + removedProducts = append(removedProducts, product) + newProducts = append(newProducts, product) } productNumberMap2[product.Number] = product } @@ -39,6 +42,13 @@ return } +func (slf ProductsService) CheckProductChanged(originProduct, newProduct *model.Product) bool { + return originProduct.Number != newProduct.Number || + !originProduct.Amount.Equal(newProduct.Amount) || + !originProduct.Price.Equal(newProduct.Price) || + !originProduct.Total.Equal(newProduct.Total) +} + func (slf ProductsService) getMappedProducts(sourceProducts []*model.Product) (map[uint]*model.Product, map[string]*model.Product) { productIdMap := make(map[uint]*model.Product, len(sourceProducts)) productNumberMap := make(map[string]*model.Product, len(sourceProducts)) -- Gitblit v1.8.0