httplib_user_service_gateway.go 2.5 KB
package service_gateway

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/constant"
	"strings"
	"time"
)

type HttplibUserServiceGateway struct {
	httplibBaseServiceGateway
}

// GetUser 获取用户
func (serviceGateway *HttplibUserServiceGateway) GetUser(uid int64) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "users/get-user"}, "/")
	request := serviceGateway.createRequest(url, "get")
	options := make(map[string]interface{})
	options["uid"] = uid
	request.JSONBody(options)
	response := make(map[string]interface{})
	request.ToJSON(&response)
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// GetCompany 获取公司
func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "companies/ge-company"}, "/")
	request := serviceGateway.createRequest(url, "get")
	options := make(map[string]interface{})
	options["companyId"] = companyId
	request.JSONBody(options)
	response := make(map[string]interface{})
	request.ToJSON(&response)
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// GetOrganization 获取组织信息
func (serviceGateway *HttplibUserServiceGateway) GetOrganization(organizationId int64) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "orgs/get-org"}, "/")
	request := serviceGateway.createRequest(url, "get")
	options := make(map[string]interface{})
	options["orgId"] = organizationId
	request.JSONBody(options)
	response := make(map[string]interface{})
	request.ToJSON(&response)
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// UserInMenu 获取用户菜单模块权限
func (serviceGateway *HttplibUserServiceGateway) UserInMenu(menuCode string) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "users/menu"}, "/")
	request := serviceGateway.createRequest(url, "get")
	options := make(map[string]interface{})
	options["code"] = menuCode
	request.JSONBody(options)
	response := make(map[string]interface{})
	request.ToJSON(&response)
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

func NewHttplibUserServiceGateway() *HttplibUserServiceGateway {
	return &HttplibUserServiceGateway{
		httplibBaseServiceGateway: httplibBaseServiceGateway{
			baseURL:          constant.USER_MODULE_HOST,
			connectTimeout:   100 * time.Second,
			readWriteTimeout: 30 * time.Second,
		},
	}
}