package httpcall import ( "context" "errors" ) type CommonConfigData struct { Error string `json:"error"` Errcode string `json:"errcode"` Data struct { OrganName string `json:"organName"` } `json:"data"` } var commonConfig CommonConfigData func (c *Client) getCommonConfig(ctx context.Context) error { var h = map[string]string{ "Accept": "application/json, text/plain, */*", "Content-Type": "application/json", "url-call": "internal", } url := "http://mop-private-init-server:8080/api/v1/mop/mop-private-init-server/common/config" rsp, err := c.Request(ctx).SetHeaders(h).SetResult(&commonConfig).Get(url) if err != nil || rsp.StatusCode() != 200 { return errors.New("mop-private-init-server err") } return nil } type LicenseData struct { OrganName string `json:"organName"` //企业名称 AppCount int `json:"appCount"` //可创建的小程序数量上限 CooAppCount int `json:"cooAppCount"` //应用的数量 BundleIdCount int `json:"bundleIdCount"` //bundleId数量 ReviewOrganCount int `json:"reviewOrganCount"` //可认证通过的企业数量 ExpireTime int64 `json:"expireTime"` //服务有效期 CreateOperAdminByInitServer bool `json:"createOperAdminByInitServer"` //init服务是否创建运营端管理账号 OpenAPM bool `json:"openAPM"` //是否打开APM上报 OpenAppSearch bool `json:"openAppSearch"` OpenApiManage bool `json:"openApiManage"` IsWindows bool `json:"isWindows"` IsMac bool `json:"isMac"` IsLinux bool `json:"isLinux"` IsIOS bool `json:"isIOS"` IsAndroid bool `json:"isAndroid"` IsConfiguration bool `json:"isConfiguration"` IsApiCover bool `json:"isApiCover"` Clients []string `json:"clients"` DeviceNum int `json:"deviceNum"` } type GetLicenseRsp struct { Data LicenseData `json:"data"` Errcode string `json:"errcode"` Errmsg string `json:"error"` } func (c *Client) GetLicense(ctx context.Context) (*LicenseData, error) { if commonConfig.Data.OrganName == "" { c.getCommonConfig(ctx) } var h = map[string]string{ "Accept": "application/json, text/plain, */*", "Content-Type": "application/json", "url-call": "internal", "Organ-Name": commonConfig.Data.OrganName, //私有化部署的时候,需要修改机构名称 } url := "http://mop-license-checker:8080/api/v1/mop/mop-license-checker/license" var licenseInfo GetLicenseRsp rsp, err := c.Request(ctx).SetHeaders(h).SetResult(&licenseInfo).Get(url) if err != nil { return nil, err } if rsp.StatusCode() != 200 { log.Errorf("get license info status code err:%+v,rsp:%+v", rsp.StatusCode(), rsp.String()) return nil, errors.New("status code error") } return &licenseInfo.Data, nil }