package allied_creation_user import ( "encoding/json" "fmt" "strconv" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log" ) // CompanyCreate 创建企业 func (gateway HttplibAlliedCreationUser) CompanyCreate(param ReqCompanyCreate) (*DataCompanyCreate, error) { url := gateway.baseUrL + "/company" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:创建企业。", 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("获取用户模块请求数据:创建企业。", 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 DataCompanyCreate err = gateway.GetResponseData(result, &data) return &data, err } //CompanyUpdate 更新企业 func (gateway HttplibAlliedCreationUser) CompanyUpdate(param ReqCompanyUpdate) (*DataCompanyUpdate, error) { url := gateway.baseUrL + "/company/" + strconv.FormatInt(param.CompanyId, 10) method := "put" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:更新企业。", 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("获取用户模块请求数据:更新企业。", 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 DataCompanyUpdate err = gateway.GetResponseData(result, &data) return &data, err } // CompanySetCustomizeMenus 更新自定义菜单 func (gateway HttplibAlliedCreationUser) CompanySetCustomizeMenus(param ReqCompanySetCustomizeMenus) (*DataCompanySetCustomizeMenus, error) { url := gateway.baseUrL + "/company/" + strconv.FormatInt(param.CompanyId, 10) + "/customize-menus" method := "put" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:更新自定义菜单。", 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("获取用户模块请求数据:更新自定义菜单。", 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 DataCompanySetCustomizeMenus err = gateway.GetResponseData(result, &data) return &data, err } // CompanyRemove 移除企业 func (gateway HttplibAlliedCreationUser) CompanyRemove(param ReqCompanyRemove) (*DataCompanyRemove, error) { url := gateway.baseUrL + "/company/" + strconv.FormatInt(param.CompanyId, 10) method := "delete" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:移除企业。", 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("获取用户模块请求数据:移除企业。", 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 DataCompanyRemove err = gateway.GetResponseData(result, &data) return &data, err } // CompanyGet 返回企业 func (gateway HttplibAlliedCreationUser) CompanyGet(param ReqCompanyGet) (*DataCompanyGet, error) { url := gateway.baseUrL + "/company/" + strconv.Itoa(param.CompanyId) method := "GET" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:返回企业。", 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("获取用户模块请求数据:返回企业。", 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 DataCompanyGet err = gateway.GetResponseData(result, &data) return &data, err } func (gateway HttplibAlliedCreationUser) AuditCompany(param ReqCompanyAudit) (DataCompanyAudit, error) { url := gateway.baseUrL + fmt.Sprintf("/company/%d/audit", param.CompanyId) method := "post" req := gateway.CreateRequest(url, method) moduleDesc := "审核公司" //TODO traceID log.Logger.Debug("向用户模块请求数据:"+moduleDesc, map[string]interface{}{ "api": method + ":" + url, "param": param, }) req, err := req.JSONBody(param) if err != nil { return nil, fmt.Errorf("%v失败:%w", moduleDesc, err) } byteResult, err := req.Bytes() if err != nil { return nil, fmt.Errorf("%v失败:%w", moduleDesc, err) } var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return nil, fmt.Errorf("解析错误:%w", err) } var data DataCompanyAudit err = gateway.GetResponseData(result, &data) return data, err } func (gateway HttplibAlliedCreationUser) EnableCompany(param ReqCompanyEnable) (DataCompanyEnable, error) { url := gateway.baseUrL + fmt.Sprintf("/company/%d/enable", param.CompanyId) method := "post" req := gateway.CreateRequest(url, method) moduleDesc := "启用公司" //TODO traceID log.Logger.Debug("向用户模块请求数据:"+moduleDesc, map[string]interface{}{ "api": method + ":" + url, "param": param, }) req, err := req.JSONBody(param) if err != nil { return nil, fmt.Errorf("%v失败:%w", moduleDesc, err) } byteResult, err := req.Bytes() if err != nil { return nil, fmt.Errorf("%v失败:%w", moduleDesc, err) } var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return nil, fmt.Errorf("解析错误:%w", err) } var data DataCompanyEnable err = gateway.GetResponseData(result, &data) return data, err } // CompanySearch 返回企业列表 func (gateway HttplibAlliedCreationUser) CompanySearch(param ReqCompanySearch) (*DataCompanySearch, error) { url := gateway.baseUrL + "/company/search" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:返回企业列表。", 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("获取用户模块请求数据:返回企业列表。", 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 DataCompanySearch err = gateway.GetResponseData(result, &data) return &data, err } // CompanyGetCustomizeMenus 返回自定义菜单列表 func (gateway HttplibAlliedCreationUser) CompanyGetCustomizeMenus(param ReqCompanyGetCustomizeMenus) (*DataCompanyGetCustomizeMenus, error) { url := gateway.baseUrL + "/company/" + strconv.FormatInt(param.CompanyId, 10) + "/customize-menus?menuCategory=" + param.MenuCategory method := "get" req := gateway.CreateRequest(url, method) log.Logger.Debug("向用户模块请求数据:返回自定义菜单列表。", 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("获取用户模块请求数据:返回自定义菜单列表。", 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 DataCompanyGetCustomizeMenus err = gateway.GetResponseData(result, &data) return &data, err }