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 |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go
index 2251d8e..2a3a9cb 100644
--- a/service/purchase/purchase.go
+++ b/service/purchase/purchase.go
@@ -127,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
 }
 
@@ -200,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)
@@ -209,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
 		}
@@ -261,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