perf: 移动features模块配置序列号结构体到be.ems/lib/config
This commit is contained in:
111
lib/config/map.go
Normal file
111
lib/config/map.go
Normal file
@@ -0,0 +1,111 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
"be.ems/lib/global"
|
||||
)
|
||||
|
||||
type Uri2Object struct {
|
||||
Uri string `yaml:"uri"`
|
||||
Object []Object `yaml:"object"`
|
||||
}
|
||||
|
||||
type Object struct {
|
||||
Name string `yaml:"name"`
|
||||
Syntax string `yaml:"syntax"`
|
||||
Oid string `yaml:"oid"`
|
||||
}
|
||||
|
||||
var uri2Object []Uri2Object
|
||||
|
||||
func ReadMap(pfile string) (ret error) {
|
||||
file, err := ioutil.ReadFile(pfile)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = yaml.Unmarshal(file, &uri2Object)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
/*
|
||||
for _, v := range uri2Object {
|
||||
log.Println(v)
|
||||
}
|
||||
*/
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetOid(uri string, oids *[]string) *[]string {
|
||||
for _, v := range uri2Object {
|
||||
if uri == v.Uri {
|
||||
for _, o := range v.Object {
|
||||
*oids = append(*oids, o.Oid)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return oids
|
||||
}
|
||||
|
||||
func GetOidByFileds(uri string, fields []string, oids *[]string) *[]string {
|
||||
for _, v := range uri2Object {
|
||||
if uri == v.Uri {
|
||||
for _, o := range v.Object {
|
||||
if global.IsContain(o.Name, fields) || len(fields) == 0 {
|
||||
*oids = append(*oids, o.Oid)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return oids
|
||||
}
|
||||
|
||||
type NameOid struct {
|
||||
Name string
|
||||
Oid string
|
||||
}
|
||||
|
||||
type NameValue struct {
|
||||
Name string
|
||||
Value string
|
||||
}
|
||||
|
||||
func GetDataOid(Uri string, nameOids *[]NameOid) *[]NameOid {
|
||||
var nameOid NameOid
|
||||
for _, v := range uri2Object {
|
||||
if Uri == v.Uri {
|
||||
for _, o := range v.Object {
|
||||
nameOid.Name = o.Name
|
||||
nameOid.Oid = o.Oid
|
||||
*nameOids = append(*nameOids, nameOid)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nameOids
|
||||
}
|
||||
|
||||
func GetDataOidByFields(uri string, fields []string, nameOids *[]NameOid) *[]NameOid {
|
||||
var nameOid NameOid
|
||||
for _, v := range uri2Object {
|
||||
if uri == v.Uri {
|
||||
for _, o := range v.Object {
|
||||
nameOid.Name = o.Name
|
||||
nameOid.Oid = o.Oid
|
||||
if len(fields) == 0 || global.IsContainP(nameOid.Name, &fields, len(fields)) {
|
||||
*nameOids = append(*nameOids, nameOid)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nameOids
|
||||
}
|
||||
Reference in New Issue
Block a user