|
@@ -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
|