module_dividends_estimate.go 13.1 KB
package allied_creation_cooperation

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"
)

// DividendsEstimateUpdate 更新分红预算
// func (gateway HttplibAlliedCreationCooperation) DividendsEstimateUpdate(param ReqDividendsEstimateUpdate) (*DataDividendsEstimateUpdate, error) {
// 	url := gateway.baseUrL + "/dividends-estimates/{dividendsEstimateId}"
// 	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 DataDividendsEstimateUpdate
// 	err = gateway.GetResponseData(result, &data)
// 	return &data, err
// }

// Dividends-estimatesSearch-dividends-incentives 查询业绩分红
func (gateway HttplibAlliedCreationCooperation) DividendsEstimateSearchDividends(param ReqDividendsEstimateSearchDividend) (*DataDividendsEstimateSearchDividend, error) {
	url := gateway.baseUrL + "/dividends-estimates/search-dividends-incentives"
	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 DataDividendsEstimateSearchDividend
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimatesSearch查询分红预算单
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesSearch(param ReqDividendsEstimateSearch) (*DataDividendsEstimateSearch, error) {
	url := gateway.baseUrL + "/dividends-estimates/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 DataDividendsEstimateSearch
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimatesSearchMoney 查询金额激励分红
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesSearchMoney(param ReqDividendsEstimateSearchMoney) (*DataDividendsEstimateSearchMoney, error) {
	url := gateway.baseUrL + "/dividends-estimates/search-money-incentives"
	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 DataDividendsEstimateSearchMoney
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// Dividends-estimates[dividendsEstimateId}Cancel 取消分红预算
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesCancel(param ReqDividendsEstimateCancel) (*DataDividendsEstimateCancel, error) {
	url := gateway.baseUrL + "/dividends-estimates/" + strconv.Itoa(param.DividendsEstimateId) + "/cancel"
	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 DataDividendsEstimateCancel
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimatesEstimateMoneys 确定预算金额激励分红
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesEstimateMoneys(param ReqDividendsEstimateMoneyIncentives) (*DataDividendsEstimateMoneyIncentives, error) {
	url := gateway.baseUrL + "/dividends-estimates/estimate-money-incentives"
	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 DataDividendsEstimateMoneyIncentives
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimateListDividend 返回业绩激励分红详情
func (gateway HttplibAlliedCreationCooperation) DividendsEstimateListDividend(param ReqDividendsEstimateListDividend) (*DataDividendsEstimateListDividend, error) {
	url := gateway.baseUrL + "/dividends-estimates/list-dividends-incentives"
	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 DataDividendsEstimateListDividend
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimateList 返回分红预算列表
func (gateway HttplibAlliedCreationCooperation) DividendsEstimateList(param ReqDividendsEstimateList) (*DataDividendsEstimateList, error) {
	url := gateway.baseUrL + "/dividends-estimates"
	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 DataDividendsEstimateList
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

//DividendsEstimateGet 返回分红预算详情
func (gateway HttplibAlliedCreationCooperation) DividendsEstimateGet(param ReqDividendsEstimateGet) (*DataDividendsEstimateGet, error) {
	url := gateway.baseUrL + "/dividends-estimates/" + strconv.Itoa(param.DividendsEstimateId)
	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 DataDividendsEstimateGet
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimatesListMoney 返回金额激励分红列表
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesListMoney(param ReqDividendsEstimatesListMoney) (*DataDividendsEstimatesListMoney, error) {
	url := gateway.baseUrL + "/dividends-estimates/list-money-incentives"
	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 DataDividendsEstimatesListMoney
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// DividendsEstimatesBatchCancel 批量取消分红预算
func (gateway HttplibAlliedCreationCooperation) DividendsEstimatesBatchCancel(param ReqDividendsEstimateBatchCancel) (*DataDividendsEstimateBatchCancel, error) {
	url := gateway.baseUrL + "/dividends-estimates/batch-cancel"
	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 DataDividendsEstimateBatchCancel
	err = gateway.GetResponseData(result, &data)
	return &data, err
}