fix
zhangqian
2023-08-18 ae1b07994f7785196d1d3ba1d53215bbded2dbc0
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))