GoFly框架内置的gf对象使用文档说明

框架封装了一些常用的数据类型以及对象获取方法,通过gf.*方法获取。

使用方式:

import "gofly/utils/gf"

数据类型

type (
    GinCtx = gin.Context     // Gin 
    Var    = gvar.Var        // Var is a universal variable interface, like generics.
    Ctx    = context.Context // Ctx is alias of frequently-used type context.Context.
    Meta   = gmeta.Meta      // Meta is alias of frequently-used type gmeta.Meta.
)

type (
    Map        = map[string]interface{}      // Map is alias of frequently-used map type map[string]interface{}.
    MapAnyStr  = map[interface{}]string      // MapAnyStr is alias of frequently-used map type map[interface{}]string.
    MapAnyInt  = map[interface{}]int         // MapAnyInt is alias of frequently-used map type map[interface{}]int.
    MapStrAny  = map[string]interface{}      // MapStrAny is alias of frequently-used map type map[string]interface{}.
    MapStrStr  = map[string]string           // MapStrStr is alias of frequently-used map type map[string]string.
    MapStrInt  = map[string]int              // MapStrInt is alias of frequently-used map type map[string]int.
    MapIntAny  = map[int]interface{}         // MapIntAny is alias of frequently-used map type map[int]interface{}.
    MapIntStr  = map[int]string              // MapIntStr is alias of frequently-used map type map[int]string.
    MapIntInt  = map[int]int                 // MapIntInt is alias of frequently-used map type map[int]int.
    MapAnyBool = map[interface{}]bool        // MapAnyBool is alias of frequently-used map type map[interface{}]bool.
    MapStrBool = map[string]bool             // MapStrBool is alias of frequently-used map type map[string]bool.
    MapIntBool = map[int]bool                // MapIntBool is alias of frequently-used map type map[int]bool.
)

type (
    List        = []Map        // List is alias of frequently-used slice type []Map.
    ListAnyStr  = []MapAnyStr  // ListAnyStr is alias of frequently-used slice type []MapAnyStr.
    ListAnyInt  = []MapAnyInt  // ListAnyInt is alias of frequently-used slice type []MapAnyInt.
    ListStrAny  = []MapStrAny  // ListStrAny is alias of frequently-used slice type []MapStrAny.
    ListStrStr  = []MapStrStr  // ListStrStr is alias of frequently-used slice type []MapStrStr.
    ListStrInt  = []MapStrInt  // ListStrInt is alias of frequently-used slice type []MapStrInt.
    ListIntAny  = []MapIntAny  // ListIntAny is alias of frequently-used slice type []MapIntAny.
    ListIntStr  = []MapIntStr  // ListIntStr is alias of frequently-used slice type []MapIntStr.
    ListIntInt  = []MapIntInt  // ListIntInt is alias of frequently-used slice type []MapIntInt.
    ListAnyBool = []MapAnyBool // ListAnyBool is alias of frequently-used slice type []MapAnyBool.
    ListStrBool = []MapStrBool // ListStrBool is alias of frequently-used slice type []MapStrBool.
    ListIntBool = []MapIntBool // ListIntBool is alias of frequently-used slice type []MapIntBool.
)

type (
    Slice    = []interface{} // Slice is alias of frequently-used slice type []interface{}.
    SliceStr = []string      // SliceStr is alias of frequently-used slice type []string.
    SliceInt = []int         // SliceInt is alias of frequently-used slice type []int.
)

函数对象

IsContain

  • 说明:判断元素是否存在数组中
  • 参数:array是[]interface{},str是string
  • 返回:布尔类
  • 格式:
bool:=gf.IsContain(array,str)

IsContainVal

  • 说明:判断元素是否存在数组中-泛型val
  • 参数:array是• array是[]gvar.Var ,str是gvar.Var
  • 返回:布尔类
  • 格式:
bool:=gf.IsContainVal(array,str)

IsContainStr

  • 说明:判断元素是否存在数组中-字符串类型
  • 参数:array是[]string ,str是string
  • 返回:布尔类
  • 格式:
bool:=gf.IsContainStr(array,str)

IntInVarArray

  • 说明:判断元素是否存在数组中-int类型
  • 参数: target是int,arr是[]*gvar.Var
  • 返回:布尔类
  • 格式:
data_arr:=gf.IntInVarArray(target, arr)

IntInInterfaceArray

  • 说明:Int类型是否存在interface数组中
  • 参数: target是int,arr是[]interface{}
  • 返回:布尔类
  • 格式:
bool:=gf.IntInInterfaceArray(target, arr)

GetIp

ip:=gf.GetIp("39.128.22.15")

GetAllChilIds

  • 说明:批量获取子节点id
  • 参数: tablename是数据表名称,pids是父级id,即数据的pid
  • 返回:子集数据id
  • 格式:
ids:=gf.GetAllChilIds(tablename,pids)

GetAllChilId

  • 说明:获取所有子级ID
  • 参数: tablename是数据表名称,pid是父级id,即数据的pid
  • 返回:子集数据id,类型是[]interface{}
  • 格式:
ids:=gf.GetAllChilId(tablename,pid)

MergeArr

  • 说明:合并数组-两个数组合并为一个数组
  • 参数: a是[]*gvar.Var,b是[]interface{}
  • 返回:[]interface{}
  • 格式:
data:=gf.MergeArr(a,b)

ArrayMerge

  • 说明:把逗号拼接的字符串数据组,打散成数组-后台权限数据
  • 参数: data是[]*gvar.Var
  • 返回:[]interface{}
  • 格式:
data_arr:=gf.ArrayMerge(data)

Axplode

  • 说明:把逗号拼接的字符串,打散成数组
  • 参数: data是string
  • 返回:[]interface{}
  • 格式:
data_arr:=gf.Axplode(data)

GetDataAuthor

  • 说明:获取账号的数据权限-acount_id绑定的数据权限
  • 参数: c是Gin框架请求上下文
  • 返回:acount_ids是[]interface{}类,账号id数组;filter是bool类型,true需要权限过滤,false不需权限过滤
  • 格式:
acount_ids,filter:=gf.GetDataAuthor(c)
//使用
if filter { //需要权限过滤
  whereMap.Set("account_id IN(?)", account_id)
}

JSONToString

  • 说明:转JSON编码为字符串
  • 参数: data是interface{}
  • 返回:string
  • 格式:
data_str:=gf.JSONToString(data)

StringToJSON

  • 说明:字符串转JSON编码
  • 参数: val是interface{}
  • 返回:interface{}
  • 格式:
data_str:=gf.StringToJSON(val)

GetTreeArray

  • 说明:获取树状数组
  • 参数:list是gform.Result类型数据,pid是最上级id(int64),itemprefix是新标题加的前缀(string)
  • 返回:gform.Result
  • 格式:
list:=gf.GetTreeArray(list,pid,itemprefix)

GetTreeToList

  • 说明:将getTreeArray的得到树形数组转为二维数组
  • 参数: list是[]Map,field是标题字段
  • 返回:[]Map
  • 格式:
list:=gf.GetTreeToList(list,field)

ArrayMerge_x

  • 说明:多个map数组数据拼接
  • 参数: 可添加多个map 不限个数,如:gf.ArrayMerge_x(a,b,c,d)
  • 返回:[]Map
  • 格式:
list:=gf.ArrayMerge_x(a,b...)

GetRuleTreeArrayByPack

  • 说明:通父级pid把二维数据组转children的树形数组。
  • 参数:list是gform.Result,pid是父级id
  • 返回:gform.Result
  • 格式:
tree:=gf.GetRuleTreeArrayByPack(list,pid)

GetRulesID

  • 说明:获取子菜单包含的父级ID
  • 参数:tablename是表名称(string),field是父级字段如:pid,menus子菜单id数组(interface{})
  • 返回:interface{}
  • 格式:
pids:=gf.GetRulesID(tablename,field,menus)

getParentID

  • 说明:获取单条数据所有父级ID
  • 参数:tablename是表名称(string),field是父级字段如:pid,id子菜单id(interface{})
  • 返回:interface{}
  • 格式:
pids:=gf.getParentID(tablename,field,menus)

UniqueArr

  • 说明:数组数据去重
  • 参数:datas是[]interface{}
  • 返回:[]interface{}
  • 格式:
pids:=gf.UniqueArr(datas)

MergeArr_interface

  • 说明:合并两个数组数据
  • 参数:a、b是[]interface{}
  • 返回:[]interface{}
  • 格式:
pids:=gf.MergeArr_interface(a,b)

ArraymoreMerge

  • 说明:将带有逗号的数组中字符串差分合并为数组
  • 参数:data是[]*gvar.Var
  • 返回:[]interface{}
  • 格式:
data:=gf.ArraymoreMerge(data)

Del_file

  • 说明:批量删除本地附件
  • 参数:file_list是附件路径数组([]*gvar.Var)
  • 返回:无
  • 格式:
 gf.Del_file(file_list)

DelOneFile

  • 说明:删除本地附件
  • 参数:file_path是附件路径(string)
  • 返回:无
  • 格式:
gf.DelOneFile(file_path)

DbHaseField

  • 说明:判断数据表是否存在某个字段
  • 参数:tablename是表名称(string),fields是字段名(string)
  • 返回:无
  • 格式:
bool:=gf.DbHaseField(tablename, fields)

GetEditId

  • 说明:获取请求参数id-用于数据保存或更新
  • 参数:idstr是id参数(interface{})
  • 返回:float64
  • 格式:
f_id:=gf.GetEditId(idstr)

StringTimestamp

  • 说明:日期时间转时间戳
  • 参数:timetype时间格式类型  datetime=日期时间 datesecond=日期时间秒date=日期
  • 返回:int64
  • 格式:
timeStamp:=gf.StringTimestamp(timeLayout, timetype)

TimestampString

  • 说明: 时间戳格式化为日期字符串
  • 参数:timedata是时间戳(interface{}),timetype时间格式类型 date=日期 datetime=日期时间 datesecond=日期时间秒
  • 返回:string
  • 格式:
datetime:=gf.TimestampString(timedata, timetype)

GetTalbeFieldVal

  • 说明: 获取某数据表指定id值的对应的字段值
  • 参数:tablename是表名称,field是字段,id需要传递的主键id值
  • 返回:*gvar.Var
  • 格式:
datetime:=gf.GetTalbeFieldVal(tablename, field, id)

GetDicFieldVal

  • 说明: 获取某数据表指定id值的对应的字段值
  • 参数:group_id是分组id,val是对keyvalue值
  • 返回:*gvar.Var
  • 格式:
data:=gf.GetDicFieldVal(group_id, val)

StrContains

  • 说明:判断字符串是否包含指定元素
  • 参数:str是字符串,filed是指定元素
  • 返回:bool
  • 格式:
booldata:=gf.StrContains(str, filed)

SplitAndStr

  • 说明:把字符串打散为数组
  • 参数:str是字符串,step是差分字符
  • 返回:[]string
  • 格式:
data_arr:=gf.SplitAndStr(str, step)

ArrayToStr

  • 说明:把数组按指定字符拼接成字符串
  • 参数:data是数组(interface{}类型),step是差分字符
  • 返回:string
  • 格式:
data_arr:=gf.ArrayToStr(str, step)

StrInArray

  • 说明:判断一个字符串是存在一个字符数组中
  • 参数:target是判断的字符(string类型),str_array是字符串数组
  • 返回:bool
  • 格式:
bool:=gf.StrInArray(target, str_array)

CateAllChilId

  • 说明:获取分类下全部子id
  • 参数:tablename是表名称(string类型),cid是分类id
  • 返回: []interface{}
  • 格式:
bool:=gf.CateAllChilId(tablename, cid)

IsModelPath

  • 说明:判断请求路由是否是该模块
  • 参数:path是路径(string类型),model是模块名称
  • 返回:bool
  • 格式:
bool:=gf.IsModelPath(path, model)

HideStrInfo

  • 说明:隐藏手机号等敏感信息用*替换展示
  • 参数:strtype是类型(email、mobile),vall是内容值
  • 返回:string
  • 格式:
bool:=gf.HideStrInfo(strtype, vall)

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园2.0是高校信息化建设的新阶段,它面对着外部环境变化和内生动力的双重影响。国家战略要求和信息技术的快速发展,如云计算、大数据、物联网等,为智慧校园建设提供了机遇,同时也带来了挑战。智慧校园2.0强调以服务至上的办学理念,推动了教育模式的创新,并对传统人才培养模式产生了重大影响。 智慧校园建设的解决之道是构建一个开放、共享的信息化生态系统,利用互联网思维,打造柔性灵活的基础设施和强大的基础服务能力。这种生态系统支持快速迭代的开发和持续运营交付能力,同时注重用户体验,推动服务创新和管理变革。智慧校园的核心思想是“大平台+微应用+开放生态”,通过解耦、重构和统一运维监控,实现服务复用和深度融合,促进业务的快速迭代和自我演化。 智慧校园的总体框架包括多端协同,即“端”,它强调以人为中心,全面感知和捕获行为数据。这涉及到智能感知设备、超级APP、校园融合门户等,实现一“码”或“脸”通行,提供线上线下服务端的无缝连接。此外,中台战略是智慧校园建设的关键,包括业务中台和数据中台,它们支持教育资源域、教学服务域等多个领域,实现业务的深度融合和数据的全面治理。 在技术层面,智慧校园的建设需要分期进行,逐步解耦应用,优先发展轻量级应用,并逐步覆盖更多业务场景。技术升级路径包括业务数据化、数据业务化、校园设施智联化等,利用IoT/5G等技术实现设备的泛在互联,并通过人工智能与物联网技术的结合,建设智联网。这将有助于实现线上线下一网通办,提升校园安全和学习生活体验,同时支持人才培养改革和后勤管理的精细化。 智慧校园的建设不仅仅是技术的升级,更是对教育模式和管理方式的全面革新。通过构建开放、共享的信息化生态系统,智慧校园能够更好地适应快速变化的教育需求,提供更加个性化和高效的服务,推动教育创新和人才培养的高质量发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值