Forráskód Böngészése

新增处理支持deletedAt查询

fancl 3 éve
szülő
commit
a48d940ab6
1 módosított fájl, 11 hozzáadás és 1 törlés
  1. 11 1
      entity.go

+ 11 - 1
entity.go

@@ -5,6 +5,7 @@ import (
 	"encoding/csv"
 	"encoding/csv"
 	"encoding/json"
 	"encoding/json"
 	"fmt"
 	"fmt"
+	"gorm.io/gorm/schema"
 	"path"
 	"path"
 	"reflect"
 	"reflect"
 	"strconv"
 	"strconv"
@@ -354,6 +355,10 @@ func (e *Entity) isKvMapping() bool {
 
 
 // getMappingValue 获取映射值
 // getMappingValue 获取映射值
 func (e *Entity) getMappingValue(namespace string) []mappingValue {
 func (e *Entity) getMappingValue(namespace string) []mappingValue {
+	var (
+		deletedAtField *schema.Field
+		query          *gorm.DB
+	)
 	if !e.isKvMapping() {
 	if !e.isKvMapping() {
 		return nil
 		return nil
 	}
 	}
@@ -361,7 +366,12 @@ func (e *Entity) getMappingValue(namespace string) []mappingValue {
 		return v.([]mappingValue)
 		return v.([]mappingValue)
 	}
 	}
 	values := make([]mappingValue, 0)
 	values := make([]mappingValue, 0)
-	if err := e.opts.DB.Select(e.mappingLabelField+" AS label", e.mappingValueField+" AS value").Where("namespace=?", namespace).Table(e.model.TableName()).Scan(&values).Error; err == nil {
+	query = e.opts.DB.Select(e.mappingLabelField+" AS label", e.mappingValueField+" AS value")
+	//添加支持deletedAt功能逻辑
+	if deletedAtField = e.statement.Schema.LookUpField("DeletedAt"); deletedAtField != nil {
+		query.Where(map[string]interface{}{deletedAtField.DBName: nil})
+	}
+	if err := query.Where("namespace=?", namespace).Table(e.model.TableName()).Scan(&values).Error; err == nil {
 		e.lruCache.Add(namespace+":mappingValue", values)
 		e.lruCache.Add(namespace+":mappingValue", values)
 	}
 	}
 	return values
 	return values