package managesdk import ( "errors" "git.sxidc.com/go-tools/api_binding/http_binding/response" "git.sxidc.com/go-tools/utils/http_client" ) var currentServiceType ServiceType func SetServiceType(serviceType ServiceType) { currentServiceType = serviceType } func getServicePath() string { switch currentServiceType { case ServiceTypePerson: return "/person" case ServiceTypeResource: return "/resource" case ServiceTypeActivity: return "/activity" case ServiceTypePlan: return "/plan" default: return "/person" } } func Save(params any) (string, error) { postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Post(baseUrl+getServicePath()+"/save", params) if err != nil { return "", err } resp := new(response.IDResponse[string]) err = postResponse.Json(resp) if err != nil { return "", err } if !resp.Success { return "", errors.New(resp.Msg) } return resp.ID, nil } func Query(params any) (*response.InfosData[map[string]any], error) { postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Post(baseUrl+getServicePath()+"/query", params) if err != nil { return nil, err } resp := new(response.InfosResponse[map[string]any]) err = postResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return &resp.InfosData, nil } func Get(id string) (*map[string]any, error) { getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Get(baseUrl+getServicePath()+"/get", http_client.WithRequestQueryParams(map[string]string{ "id": id, })) if err != nil { return nil, err } resp := new(response.InfoResponse[map[string]any]) err = getResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return &resp.Info, nil } func Delete(params any) error { postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Post(baseUrl+getServicePath()+"/delete", params) if err != nil { return err } resp := new(response.MsgResponse) err = postResponse.Json(resp) if err != nil { return err } if !resp.Success { return errors.New(resp.Msg) } return nil } func Options() ([]map[string]any, error) { var path string switch currentServiceType { case ServiceTypePerson: path = "/person/genders" case ServiceTypeResource: path = "/resource/categories" case ServiceTypeActivity: return []map[string]any{}, nil case ServiceTypePlan: return []map[string]any{}, nil default: return nil, errors.New("不支持的服务类型") } getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Get(baseUrl + path) if err != nil { return nil, err } resp := new(response.InfosResponse[map[string]any]) err = getResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return resp.Infos, nil } func States() ([]map[string]any, error) { getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Get(baseUrl + getServicePath() + "/states") if err != nil { return nil, err } resp := new(response.InfosResponse[map[string]any]) err = getResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return resp.Infos, nil } func PredefinedFields() ([]map[string]any, error) { getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Get(baseUrl + getServicePath() + "/predefined-fields") if err != nil { return nil, err } resp := new(response.InfosResponse[map[string]any]) err = getResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return resp.Infos, nil }