From 504f3e9bc274bcd6c7221e738802e0e5d4aef36f Mon Sep 17 00:00:00 2001
From: lishihai <dslsh@dscom>
Date: 星期四, 20 六月 2024 17:07:02 +0800
Subject: [PATCH] 查询属性值和对象 通过主键ID查询

---
 models/attribute.go |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/models/attribute.go b/models/attribute.go
index 19fc906..92ca831 100644
--- a/models/attribute.go
+++ b/models/attribute.go
@@ -25,6 +25,7 @@
 		PageNum  int
 		PageSize int
 		Orm      *gorm.DB
+		Keyword  string
 	}
 )
 
@@ -47,6 +48,17 @@
 }
 
 func (slf *Attribute) BeforeCreate(tx *gorm.DB) (err error) {
+	if len(slf.SelectValues) != 0 {
+		bts, err := json.Marshal(slf.SelectValues)
+		if err != nil {
+			return err
+		}
+		slf.SelectValue = string(bts)
+	}
+	return nil
+}
+
+func (slf *Attribute) BeforeUpdate(tx *gorm.DB) (err error) {
 	if len(slf.SelectValues) != 0 {
 		bts, err := json.Marshal(slf.SelectValues)
 		if err != nil {
@@ -97,6 +109,10 @@
 	slf.Name = name
 	return slf
 }
+func (slf *AttributeSearch) SetEntityType(entityType EntityType) *AttributeSearch {
+	slf.EntityType = entityType
+	return slf
+}
 
 func (slf *AttributeSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
@@ -108,10 +124,16 @@
 	if slf.Order != "" {
 		db = db.Order(slf.Order)
 	}
+	if slf.EntityType != 0 {
+		db = db.Where("entity_type = ?", slf.EntityType)
+	}
 
 	if slf.Name != "" {
 		db = db.Where("name = ?", slf.Name)
 	}
+	if slf.Keyword != "" {
+		db = db.Where("id like ? or data_type like ? ", fmt.Sprintf("%%%v%%", slf.Keyword), fmt.Sprintf("%%%v%%", slf.Keyword))
+	}
 
 	return db
 }

--
Gitblit v1.8.0