module_dictionary.go 1.3 KB
package allied_creation_basic

import (
	"encoding/json"
	"fmt"

	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log"

	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway"
)

//GetDictionarysByCode 根据code获取字典数据
func (gateway HttplibAlliedCreationBasic) GetDictionarysByCode(param ReqGetDictionaryByCode) (*DataGetDictionaryByCode, error) {
	url := gateway.baseUrL + "/dictionarys/dictionary-code"
	method := "post"
	req := gateway.CreateRequest(url, method)
	//TODO traceID
	log.Logger.Debug("向基础模块请求数据:根据code获取字典数据。", map[string]interface{}{
		"api":   method + ":" + url,
		"param": param,
	})
	req, err := req.JSONBody(param)
	if err != nil {
		return nil, fmt.Errorf("请求字典数据失败:%w", err)
	}

	byteResult, err := req.Bytes()
	if err != nil {
		return nil, fmt.Errorf("获取字典数据失败:%w", err)
	}
	log.Logger.Debug("获取基础模块响应数据:根据code获取字典数据。", map[string]interface{}{
		"result": string(byteResult),
	})
	var result service_gateway.GatewayResponse
	err = json.Unmarshal(byteResult, &result)
	if err != nil {
		return nil, fmt.Errorf("解析字典数据失败:%w", err)
	}
	var data DataGetDictionaryByCode
	err = gateway.GetResponseData(result, &data)
	return &data, err
}