From 2716487d13f3521adeb25a48aa07a89f885d32c7 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期一, 09 十月 2023 09:36:08 +0800
Subject: [PATCH] 仓库功能修改

---
 models/material.go |   38 ++++++++++++++++++++++++++++++++------
 1 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/models/material.go b/models/material.go
index dd74cb1..77f3181 100644
--- a/models/material.go
+++ b/models/material.go
@@ -77,11 +77,12 @@
 		//MaterialTypes   []constvar.MaterialType
 		Keyword string
 		//SetTemplateType constvar.SetTemplateType
-		Order    string
-		PageNum  int
-		PageSize int
-		Ids      []string
-		Orm      *gorm.DB
+		Order       string
+		PageNum     int
+		PageSize    int
+		Ids         []string
+		Orm         *gorm.DB
+		CategoryIds []int
 	}
 
 	IdAndName struct {
@@ -152,6 +153,15 @@
 	slf.TemplateID = id
 	return slf
 }
+func (slf *MaterialSearch) SetCategoryId(id int) *MaterialSearch {
+	slf.CategoryId = id
+	return slf
+}
+
+func (slf *MaterialSearch) SetCategoryIds(ids []int) *MaterialSearch {
+	slf.CategoryIds = ids
+	return slf
+}
 
 //
 //func (slf *MaterialSearch) SetSetTemplateType(setType constvar.SetTemplateType) *MaterialSearch {
@@ -207,7 +217,7 @@
 	//}
 
 	if slf.Keyword != "" {
-		db = db.Where("name LIKE ? or id LIKE ? ", "%"+slf.Keyword+"%", "%"+slf.Keyword+"%")
+		db = db.Where("name LIKE ? ", "%"+slf.Keyword+"%")
 	}
 
 	if slf.Order != "" {
@@ -222,6 +232,12 @@
 	}
 	if slf.IsSale {
 		db = db.Where("is_sale = ?", 1)
+	}
+	if slf.CategoryId > 0 {
+		db = db.Where("category_id = ?", slf.CategoryId)
+	}
+	if len(slf.CategoryIds) > 0 {
+		db = db.Where("category_id in ?", slf.CategoryIds)
 	}
 
 	return db
@@ -496,3 +512,13 @@
 	Amount         decimal.Decimal          `json:"amount" gorm:"type:decimal(20,2);not null;comment:鏁伴噺"`       //鏁伴噺
 	Unit           string                   `json:"unit" gorm:"type:varchar(31);comment:鍗曚綅"`
 }
+
+func (slf *MaterialSearch) Update(record *Material) error {
+	var db = slf.build()
+
+	if err := db.Omit("CreatedAt").Updates(record).Error; err != nil {
+		return fmt.Errorf("save err: %v, record: %+v", err, record)
+	}
+
+	return nil
+}

--
Gitblit v1.8.0