From 985e3b7a74962d1aae5cba3451f3bff35daf5794 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 29 七月 2024 20:08:45 +0800
Subject: [PATCH] 优化查询

---
 controllers/product_controller.go |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 56f6e68..9b81e63 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -142,23 +142,19 @@
 				product.CategoryName = category.Name
 			}
 		}
-		var reorderAmount request.ProductStatisticsAmount
+		var totalAmount decimal.Decimal
 		if err := models.NewOperationSearch().Orm.
 			Table("wms_operation_details").
 			InnerJoins("INNER JOIN wms_operation on wms_operation_details.operation_id=wms_operation.id").
-			Select("wms_operation_details.product_id,SUM(wms_operation_details.amount) as total_count").
+			Select("IFNULL(SUM(wms_operation_details.amount), 0) as total_count").
 			Where("wms_operation_details.product_id=? and wms_operation.`status`=? and wms_operation.base_operation_type in (?)", product.ID, constvar.OperationStatus_Ready, []constvar.BaseOperationType{constvar.BaseOperationTypeIncoming, constvar.BaseOperationTypeOutgoing, constvar.BaseOperationTypeDisuse}).
-			Group("wms_operation_details.product_id").
-			//Order("wms_operation_details.product_id").
-			First(&reorderAmount).Error; err != nil {
+			Scan(&totalAmount).Error; err != nil {
 			if !errors.Is(err, gorm.ErrRecordNotFound) {
 				util.ResponseFormat(c, code.RequestParamError, "浜у搧鏁版嵁缁熻澶辫触")
 				return
-			} else {
-				reorderAmount.TotalAmount = decimal.NewFromInt(0)
 			}
 		}
-		product.PredictionAmount = product.Amount.Add(reorderAmount.TotalAmount)
+		product.PredictionAmount = product.Amount.Add(totalAmount)
 
 		var statisticsList []*request.ProductStatistics
 		if err := models.NewOperationSearch().Orm.Table("wms_operation").

--
Gitblit v1.8.0