module_company.go 7.6 KB
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/{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
}

// 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
}