package third import ( "context" "go-template/business/dto" "go-template/business/exception" "gitea.ckfah.com/cjjy/gocommon/pkg/cerror" "gitea.ckfah.com/cjjy/gocommon/pkg/logger" "gitea.ckfah.com/cjjy/gocommon/pkg/net/httpclent" ) // doc: type ebikeFactoryApi struct { } func NewEbikeFactoryApi() *ebikeFactoryApi { return new(ebikeFactoryApi) } func (*ebikeFactoryApi) GetServerName() string { return "ebike-factory-api" } // 统一抽象一个方法,方便管理 func (this *ebikeFactoryApi) httpRequest(ctx context.Context, path string, params interface{}, result interface{}, options ...httpclent.Option) error { return httpclent.HttpRequestAndDecode(ctx, this.GetServerName(), path, params, result, append(options, httpclent.NacosServerHostOption)...) } func (this *ebikeFactoryApi) GetOpWorkerDetailById(ctx context.Context, opWorkerId uint64) (*dto.OpWorkerDetailData, cerror.Cerror) { path := "/service/v1/op-worker/search-by-ids" params := map[string]interface{}{ "ids": []uint64{opWorkerId}, } response := dto.GetOpWorkerDetailResponse{} err := this.httpRequest(ctx, path, params, &response) if err != nil { // 三方日志要打印warn日志,如果必要的话才打印error日志 logger.Warnc(ctx, "[GetOpWorkerDetail] err,op_worker_id=%d,err=%v", opWorkerId, err) return nil, exception.GetOpWorkerDetailError("获取op_worker信息失败") } if response.Data == nil || len(response.Data) == 0 { logger.Warnc(ctx, "[GetOpWorkerDetail] not fond op_worker,op_worker_id=%d", opWorkerId) return nil, nil } return &response.Data[0], nil }