代码拉取完成,页面将自动刷新
package funcs
import "reflect"
// 从 查询条件 生成查询 map
// 一般用于生成查询条件, 给GORM的 Where() 用
// query结构体每个属性都设置成指针类型
// 属性值不为空的就说明此属性的值要做为查询条件, 会被放到生成的 map 里
// WARNING: 会忽略不是指针类型的字段, 如果要做到更灵活, 以后再扩展
func QueryFetchConditionMap(query any, conditionMap map[string]interface{}) {
dataType := reflect.TypeOf(query)
dataValues := reflect.ValueOf(query)
numField := dataType.NumField()
for fieldIdx := 0; fieldIdx < numField; fieldIdx++ {
elem := dataValues.Field(fieldIdx)
if elem.Kind() == reflect.Struct {
QueryFetchConditionMap(elem.Interface(), conditionMap)
continue
}
if elem.IsZero() || elem.Kind() != reflect.Ptr {
continue
}
conditionMap[dataType.Field(fieldIdx).Name] = elem.Elem().Interface()
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。