Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

config_request_ids.go 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package dao
  2. import (
  3. "fmt"
  4. "git.x2erp.com/qdy/go-base/model/request/configreq"
  5. )
  6. // 配置元信息记录结构
  7. type ConfigMetaRecord struct {
  8. ID string `db:"id"`
  9. ConfigName string `db:"config_name"`
  10. FieldType string `db:"field_type"`
  11. YamlName string `db:"yaml_name"`
  12. }
  13. type ConfigMetaParam struct {
  14. ConfigRequest *configreq.ConfigRequest
  15. IDS []string //meat配置表的id
  16. idsMap map[string]string //key是yamlName,值是id,方便通过yamlName查找赋值
  17. YamlNames []string
  18. }
  19. // GetConfigStartupParam 得到config_startup表ID集合和yamlName集合
  20. func GetConfigStartupParam(req *configreq.ConfigRequest) *ConfigMetaParam {
  21. // 提取 yaml_names
  22. idsMap := make(map[string]string, len(req.ConfigFields))
  23. yamlNames := make([]string, 0, len(req.ConfigFields))
  24. ids := make([]string, 0, len(req.ConfigFields))
  25. for _, configField := range req.ConfigFields {
  26. id := fmt.Sprintf("%s.%s", req.YamlRoot, configField.YamlName)
  27. idsMap[configField.YamlName] = id
  28. ids = append(ids, id)
  29. yamlNames = append(yamlNames, configField.YamlName)
  30. }
  31. return &ConfigMetaParam{
  32. ConfigRequest: req,
  33. idsMap: idsMap,
  34. IDS: ids,
  35. YamlNames: yamlNames,
  36. }
  37. }
  38. // GetConfigStartupParamSVCID 得到config_startup_svc表ID集合和yamlName集合
  39. func GetConfigStartupParamSVC(serviceName string, req *configreq.ConfigRequest) *ConfigMetaParam {
  40. // 提取 yaml_names
  41. idsMap := make(map[string]string, len(req.ConfigFields))
  42. yamlNames := make([]string, 0, len(req.ConfigFields))
  43. ids := make([]string, 0, len(req.ConfigFields))
  44. for _, configField := range req.ConfigFields {
  45. id := fmt.Sprintf("%s.%s.%s", serviceName, req.YamlRoot, configField.YamlName)
  46. metaId := fmt.Sprintf("%s.%s", req.YamlRoot, configField.YamlName)
  47. idsMap[configField.YamlName] = id
  48. ids = append(ids, metaId)
  49. yamlNames = append(yamlNames, configField.YamlName)
  50. }
  51. return &ConfigMetaParam{
  52. ConfigRequest: req,
  53. idsMap: idsMap,
  54. IDS: ids,
  55. YamlNames: yamlNames,
  56. }
  57. }
  58. func (p *ConfigMetaParam) GetID(yamlName string) string {
  59. return p.idsMap[yamlName]
  60. }
  61. // GetSvcIDS 获取微服务配置表的ID
  62. func (p *ConfigMetaParam) GetSvcIDS() []string {
  63. if p == nil || p.idsMap == nil {
  64. return []string{}
  65. }
  66. ids := make([]string, 0, len(p.idsMap))
  67. for _, value := range p.idsMap {
  68. ids = append(ids, value)
  69. }
  70. return ids
  71. }