module_cooperation_application.go 12.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"
)

// CooperationApplicationUpdaet 更新共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationUpdaet(param ReqCooperationApplicationUpdate) (*DataCooperationApplicationUpdate, error) {
	url := gateway.baseUrL + "/cooperation-applications/" + strconv.Itoa(param.ApplicationId)
	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 DataCooperationApplicationUpdate
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationsBatchApproval 共创申请一键审核
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationsBatchApproval(param ReqCooperationApplicationBatchApproval) (*DataCooperationApplicationBatchApproval, error) {
	url := gateway.baseUrL + "/cooperation-applications/batch-approval"
	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 DataCooperationApplicationBatchApproval
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationCancel 取消共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationCancel(param ReqCooperationApplicationCancel) (*DataCooperationApplicationCancel, error) {
	url := gateway.baseUrL + "/cooperation-applications/" + strconv.Itoa(param.ApplicationId) + "/cancel-application"
	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 DataCooperationApplicationCancel
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationsAgree 审核-同意共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationsAgree(param ReqCooperationApplicationAgree) (*DataCooperationApplicationAgree, error) {
	url := gateway.baseUrL + "/cooperation-applications/agree-cooperation-application"
	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 DataCooperationApplicationAgree
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationsReject审核-拒绝共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationReject(param ReqCooperationApplicationReject) (*DataCooperationApplicationReject, error) {
	url := gateway.baseUrL + "/cooperation-applications/reject-cooperation-application"
	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 DataCooperationApplicationReject
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationAdd 创建共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationAdd(param ReqCooperationApplicationAdd) (*DataCooperationApplicationAdd, error) {
	url := gateway.baseUrL + "/cooperation-applications"
	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 DataCooperationApplicationAdd
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// Cooperation-applicationsSearch 查询共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationsSearch(param ReqCooperationApplicationSearch) (*DataCooperationApplicationSearch, error) {
	url := gateway.baseUrL + "/cooperation-applications/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 DataCooperationApplicationSearch
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationsApply 申请共创
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationsApply(param ReqCooperationApplicationApply) (*DataCooperationApplicationApply, error) {
	url := gateway.baseUrL + "/cooperation-applications/apply-for-cooperation"
	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 DataCooperationApplicationApply
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationRemove 移除共创申请
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationRemove(param ReqCooperationApplicationRemove) (*DataCooperationApplicationRemove, error) {
	url := gateway.baseUrL + "/cooperation-applications/" + strconv.Itoa(param.ApplicationId)
	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 DataCooperationApplicationRemove
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationList 返回共创申请列表
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationList(param ReqCooperationApplicationList) (*DataCooperationApplicationList, error) {
	url := gateway.baseUrL + "/cooperation-applications"
	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 DataCooperationApplicationList
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// CooperationApplicationGet 返回共创申请详情
func (gateway HttplibAlliedCreationCooperation) CooperationApplicationGet(param ReqCooperationApplicationGet) (*DataCooperationApplicationGet, error) {
	url := gateway.baseUrL + "/cooperation-applications/{cooperationApplicationId}"
	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 DataCooperationApplicationGet
	err = gateway.GetResponseData(result, &data)
	return &data, err
}