httplib_basic_service_gateway.go 7.7 KB
package service_gateway

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/constant"
	"strings"
	"time"
)

type HttplibBasicServiceGateway struct {
	httplibBaseServiceGateway
}

// AgreeCooperationApplication 同意共创申请
func (serviceGateway *HttplibBasicServiceGateway) AgreeCooperationApplication(
	creationProjectId int64,
	creationProjectName string,
	creationProjectNumber string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/agree-join-creation-project"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creationProjectId"] = creationProjectId
	options["creationProjectName"] = creationProjectName
	options["creationProjectNumber"] = creationProjectNumber
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	_, err := request.JSONBody(options)
	if err != nil {
		return nil, err
	}
	response := make(map[string]interface{})
	err2 := request.ToJSON(&response)
	if err2 != nil {
		return nil, err2
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// RejectCooperationApplication 拒绝共创申请
func (serviceGateway *HttplibBasicServiceGateway) RejectCooperationApplication(
	creationProjectId int64,
	creationProjectName string,
	creationProjectNumber string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/refuse-join-creation-project"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creationProjectId"] = creationProjectId
	options["creationProjectName"] = creationProjectName
	options["creationProjectNumber"] = creationProjectNumber
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	_, err2 := request.JSONBody(options)
	if err2 != nil {
		return nil, err2
	}
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// InformJoinCreationContract 确认共创
func (serviceGateway *HttplibBasicServiceGateway) InformJoinCreationContract(
	creationContractId int64,
	creationContractName string,
	creationContractNumber string,
	creationProjectId int64,
	creationProjectNumber string,
	creationProjectName string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/inform-join-creation-contract"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creationContractId"] = creationContractId
	options["creationContractName"] = creationContractName
	options["creationContractNumber"] = creationContractNumber
	options["creationProjectId"] = creationProjectId
	options["creationProjectNumber"] = creationProjectNumber
	options["creationProjectName"] = creationProjectName
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	_, err2 := request.JSONBody(options)
	if err2 != nil {
		return nil, err2
	}
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// InformExpectedDividends 分红预算消息
func (serviceGateway *HttplibBasicServiceGateway) InformDividendsExpected(
	creationContractId int64,
	creationContractName string,
	creationContractNumber string,
	creationProjectId int64,
	creationProjectName string,
	productName string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
	dividendsEstimateId int64,
	dividendsAmount string,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/inform-expected-dividends"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creationContractId"] = creationContractId
	options["creationContractName"] = creationContractName
	options["creationContractNumber"] = creationContractNumber
	options["creationProjectId"] = creationProjectId
	options["creationProjectName"] = creationProjectName
	options["productName"] = productName
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	options["dividendsEstimateId"] = dividendsEstimateId
	options["dividendsAmount"] = dividendsAmount
	_, err2 := request.JSONBody(options)
	if err2 != nil {
		return nil, err2
	}
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// DividendsEstimate 账期结算
func (serviceGateway *HttplibBasicServiceGateway) DividendsEstimate(
	creditAccountOrderNum string,
	settlementAmount string,
	creditAccountId int64,
	dividendsEstimateId int64,
	dividendsEstimateOrderNumber string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/credit-account/dividends-estimate"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creditAccountOrderNum"] = creditAccountOrderNum
	options["settlementAmount"] = settlementAmount
	options["creditAccountId"] = creditAccountId
	options["dividendsEstimateId"] = dividendsEstimateId
	options["dividendsEstimateOrderNumber"] = dividendsEstimateOrderNumber
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	_, err2 := request.JSONBody(options)
	if err2 != nil {
		return nil, err2
	}
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

// PayCreditAccount 账期支付
func (serviceGateway *HttplibBasicServiceGateway) PayCreditAccount(
	creditAccountOrderNum string,
	settlementAmount string,
	creditAccountId int64,
	dividendsEstimateId int64,
	dividendsEstimateOrderNumber string,
	userId int64,
	userBaseId int64,
	orgId int64,
	companyId int64,
) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "notice-personal/notice-personal/credit-account/payment"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["creditAccountOrderNum"] = creditAccountOrderNum
	options["settlementAmount"] = settlementAmount
	options["creditAccountId"] = creditAccountId
	options["dividendsEstimateId"] = dividendsEstimateId
	options["dividendsEstimateOrderNumber"] = dividendsEstimateOrderNumber
	options["userId"] = userId
	options["userBaseId"] = userBaseId
	options["orgId"] = orgId
	options["companyId"] = companyId
	_, err2 := request.JSONBody(options)
	if err2 != nil {
		return nil, err2
	}
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

func NewHttplibMessageServiceGateway() *HttplibBasicServiceGateway {
	return &HttplibBasicServiceGateway{
		httplibBaseServiceGateway: httplibBaseServiceGateway{
			baseURL:          constant.BASIC_MODULE_HOST,
			connectTimeout:   100 * time.Second,
			readWriteTimeout: 30 * time.Second,
		},
	}
}