From 41487709f1d0d92e1b6a86ecbab8811deb3b5ac8 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 15 十一月 2023 17:44:22 +0800
Subject: [PATCH] 日志优化

---
 service/purchase/purchase.go |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go
index 2d72725..2a3a9cb 100644
--- a/service/purchase/purchase.go
+++ b/service/purchase/purchase.go
@@ -51,11 +51,9 @@
 		quantity = quantity.Add(product.Amount)
 		totalPrice = totalPrice.Add(product.Price.Mul(product.Amount))
 	}
+	record.Quantity = quantity
 	if !totalPrice.Equal(record.TotalPrice) {
 		return errors.New("浠风◣鎬昏璁$畻閿欒")
-	}
-	if !quantity.Equal(record.Quantity) {
-		return errors.New("浜у搧鏁伴噺璁$畻閿欒")
 	}
 	realTotalPrice = record.CalcRealTotalPrice()
 	if !realTotalPrice.Equal(record.RealTotalPrice) {
@@ -129,20 +127,32 @@
 	limit := info.PageSize
 	offset := info.PageSize * (info.Page - 1)
 	db := global.GVA_DB.Model(&purchase.Purchase{})
+	var ids []uint
+	var purchaseList = make([]*purchase.Purchase, 0)
 	if info.Keyword != "" {
-		db.Distinct("purchases.id").Joins("left join purchase_products on purchase_products.purchase_id = purchases.id").
-			Joins("left join Product on Product.Id = purchase_products.product_id").
-			Joins("left join supplier on supplier.Id = purchases.supplier_id").
-			Where("purchases.name like ?", "%"+info.Keyword+"%").
-			Or("Product.name like ?", "%"+info.Keyword+"%").
-			Or("supplier.name like ?", "%"+info.Keyword+"%")
+		db.Distinct("srm_purchase.id").Joins("left join srm_purchase_products on srm_purchase_products.purchase_id = srm_purchase.id").
+			Joins("left join material on material.id = srm_purchase_products.product_id").
+			Joins("left join srm_supplier on srm_supplier.Id = srm_purchase.supplier_id").
+			Where("srm_purchase.name like ?", "%"+info.Keyword+"%").
+			Or("material.name like ?", "%"+info.Keyword+"%").
+			Or("srm_supplier.name like ?", "%"+info.Keyword+"%")
+		err = db.Limit(limit).Offset(offset).Find(&ids).Error
+		if err != nil {
+			return purchaseList, total, err
+		}
 	}
-	var purchaseList []*purchase.Purchase
+
 	err = db.Count(&total).Error
 	if err != nil {
 		return purchaseList, total, err
 	}
-	err = db.Limit(limit).Offset(offset).Find(&purchaseList).Error
+	if len(ids) != 0 {
+		db = global.GVA_DB.Model(&purchase.Purchase{})
+		err = db.Where("id in (?)", ids).Find(&purchaseList).Error
+	} else {
+		err = db.Limit(limit).Offset(offset).Find(&purchaseList).Error
+	}
+
 	return purchaseList, total, err
 }
 
@@ -202,7 +212,7 @@
 	}
 	productIds := make([]uint, 0, len(productList))
 	for _, product := range productList {
-		productIds = append(productIds, uint(product.ProductId))
+		productIds = append(productIds, product.ID)
 	}
 	productService := &test.ProductService{}
 	_, productMap, err := productService.GetProducts(productIds)
@@ -211,7 +221,7 @@
 	}
 	inspectOrders := make([]*qualityinspect.QualityInspect, 0, len(productList))
 	for _, productItem := range productList {
-		product := productMap[uint(productItem.ProductId)]
+		product := productMap[productItem.ID]
 		if product == nil {
 			continue
 		}
@@ -263,7 +273,7 @@
 
 		for _, item := range list {
 			if item.ID != 0 {
-				err = tx.Save(item).Error
+				err = tx.Where("id = ?", item.ID).Updates(item).Error
 				if err != nil {
 					return err
 				}

--
Gitblit v1.8.0