module_dividends-order.go 7.9 KB
package allied_creation_cooperation

import (
	"encoding/json"
	"fmt"
	"strconv"

	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log"

	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway"
)

// DividendsOrderAdd 创建分红订单
func (gateway HttplibAlliedCreationCooperation) DividendsOrderAdd(param ReqDividendsOrderAdd) (*DataDividendsOrderAdd, error) {
	url := gateway.baseUrL + "/dividends-orders"
	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 DataDividendsOrderAdd
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsOrderUpdate 更新分红订单
func (gateway HttplibAlliedCreationCooperation) DividendsOrderUpdate(param ReqDividendsOrderUpdate) (*DataDividendsOrderUpdate, error) {
	url := gateway.baseUrL + "/dividends-orders/" + strconv.Itoa(param.DividendsOrderId)
	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 DataDividendsOrderUpdate
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsOrderSearch 查询分红订单
func (gateway HttplibAlliedCreationCooperation) DividendsOrderSearch(param ReqDividendsOrderSearch) (*DataDividendsOrderSearch, error) {
	url := gateway.baseUrL + "/dividends-orders/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 DataDividendsOrderSearch
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// SearchOrderNumber 模糊查询分红订单号
func (gateway HttplibAlliedCreationCooperation) SearchOrderNumber(param ReqSearchOrderNumber) (*DataSearchOrderNumber, error) {
	url := gateway.baseUrL + "/search-order-number"
	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 DataSearchOrderNumber
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsOrderRemove 移除分红订单
func (gateway HttplibAlliedCreationCooperation) DividendsOrderRemove(param ReqDividendsOrderRemove) (*DataDividendsOrderRemove, error) {
	url := gateway.baseUrL + "/dividends-orders/" + strconv.Itoa(param.DividendsOrderId)
	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 DataDividendsOrderRemove
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

//DividendsOrderList 返回分红订单列表
func (gateway HttplibAlliedCreationCooperation) DividendsOrderList(param ReqDividendsOrderList) (*DataDividendsOrderList, error) {
	url := gateway.baseUrL + "/dividends-orders"
	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 DataDividendsOrderList
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsOrderGet 返回分红订单详情
func (gateway HttplibAlliedCreationCooperation) DividendsOrderGet(param ReqDividendsOrderGet) (*DataDividendsOrderGet, error) {
	url := gateway.baseUrL + "/dividends-orders/" + strconv.Itoa(param.DividendsOrderId)
	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 DataDividendsOrderGet
	err = gateway.GetResponseData(result, &data)
	return &data, err
}