From b3a318b7f707ca49fa9127881bbe709654eaa761 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 27 九月 2023 17:27:51 +0800
Subject: [PATCH] 报表功能开发

---
 models/operation.go |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/models/operation.go b/models/operation.go
index 5f20228..1fd2daf 100644
--- a/models/operation.go
+++ b/models/operation.go
@@ -41,6 +41,7 @@
 		Orm      *gorm.DB
 		Preload  bool
 		Disuse   bool
+		Ids      []int
 	}
 )
 
@@ -102,6 +103,15 @@
 	return slf
 }
 
+func (slf *OperationSearch) SetIds(ids []int) *OperationSearch {
+	slf.Ids = ids
+	return slf
+}
+func (slf *OperationSearch) SetStatus(status constvar.OperationStatus) *OperationSearch {
+	slf.Status = status
+	return slf
+}
+
 func (slf *OperationSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&Operation{})
 
@@ -134,6 +144,14 @@
 
 	if slf.Disuse {
 		db = db.Where("operation_type_id = ?", 0)
+	}
+
+	if len(slf.Ids) > 0 {
+		db = db.Where("id in (?)", slf.Ids)
+	}
+
+	if slf.Status > 0 {
+		db = db.Where("status = ?", slf.Status)
 	}
 
 	return db
@@ -236,7 +254,7 @@
 	if slf.PageNum*slf.PageSize > 0 {
 		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
 	}
-	if err := db.Find(&records).Error; err != nil {
+	if err := db.Preload("FromLocation").Preload("ToLocation").Find(&records).Error; err != nil {
 		return records, total, fmt.Errorf("find records err: %v", err)
 	}
 
@@ -252,7 +270,7 @@
 	if slf.PageNum*slf.PageSize > 0 {
 		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
 	}
-	if err := db.Find(&records).Error; err != nil {
+	if err := db.Preload("FromLocation").Preload("ToLocation").Find(&records).Error; err != nil {
 		return records, fmt.Errorf("find records err: %v", err)
 	}
 

--
Gitblit v1.8.0