| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package dao
-
- import (
- "fmt"
-
- "git.x2erp.com/qdy/go-base/model/request/configreq"
- )
-
- // 配置元信息记录结构
- type ConfigMetaRecord struct {
- ID string `db:"id"`
- ConfigName string `db:"config_name"`
- FieldType string `db:"field_type"`
- YamlName string `db:"yaml_name"`
- }
-
- type ConfigMetaParam struct {
- ConfigRequest *configreq.ConfigRequest
- IDS []string //meat配置表的id
- idsMap map[string]string //key是yamlName,值是id,方便通过yamlName查找赋值
- YamlNames []string
- }
-
- // GetConfigStartupParam 得到config_startup表ID集合和yamlName集合
- func GetConfigStartupParam(req *configreq.ConfigRequest) *ConfigMetaParam {
- // 提取 yaml_names
- idsMap := make(map[string]string, len(req.ConfigFields))
- yamlNames := make([]string, 0, len(req.ConfigFields))
- ids := make([]string, 0, len(req.ConfigFields))
- for _, configField := range req.ConfigFields {
- id := fmt.Sprintf("%s.%s", req.YamlRoot, configField.YamlName)
- idsMap[configField.YamlName] = id
- ids = append(ids, id)
- yamlNames = append(yamlNames, configField.YamlName)
- }
-
- return &ConfigMetaParam{
- ConfigRequest: req,
- idsMap: idsMap,
- IDS: ids,
- YamlNames: yamlNames,
- }
- }
-
- // GetConfigStartupParamSVCID 得到config_startup_svc表ID集合和yamlName集合
- func GetConfigStartupParamSVC(serviceName string, req *configreq.ConfigRequest) *ConfigMetaParam {
- // 提取 yaml_names
- idsMap := make(map[string]string, len(req.ConfigFields))
- yamlNames := make([]string, 0, len(req.ConfigFields))
- ids := make([]string, 0, len(req.ConfigFields))
- for _, configField := range req.ConfigFields {
- id := fmt.Sprintf("%s.%s.%s", serviceName, req.YamlRoot, configField.YamlName)
- metaId := fmt.Sprintf("%s.%s", req.YamlRoot, configField.YamlName)
- idsMap[configField.YamlName] = id
- ids = append(ids, metaId)
- yamlNames = append(yamlNames, configField.YamlName)
- }
-
- return &ConfigMetaParam{
- ConfigRequest: req,
- idsMap: idsMap,
- IDS: ids,
- YamlNames: yamlNames,
- }
- }
-
- func (p *ConfigMetaParam) GetID(yamlName string) string {
-
- return p.idsMap[yamlName]
- }
-
- // GetSvcIDS 获取微服务配置表的ID
- func (p *ConfigMetaParam) GetSvcIDS() []string {
- if p == nil || p.idsMap == nil {
- return []string{}
- }
-
- ids := make([]string, 0, len(p.idsMap))
- for _, value := range p.idsMap {
- ids = append(ids, value)
- }
- return ids
- }
|