审查视图

pkg/infrastructure/service_gateway/allied_creation_cooperation/module_excel_data.go 8.9 KB
1 2 3 4
package allied_creation_cooperation

import (
	"fmt"
yangfu authored
5
	"github.com/linmadan/egglib-go/utils/json"
6 7 8 9 10 11 12 13

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

// ReqImportDividendsOrder 导入订单数据
type (
	ImportDividendsOrderData struct {
14 15 16 17 18 19 20
		OriginalOrderNum          string `json:"originalOrderNum"`          //来源单号,源单号,订单号
		DividendsCustomerName     string `json:"dividendsCustomerName"`     //订单客户名称
		OrderGoodName             string `json:"orderGoodName"`             //订单产品名称
		OrderTime                 string `json:"orderTime"`                 //订单日期
		RegionName                string `json:"regionName"`                //订单区域名称
		OrderGoodQuantity         string `json:"orderGoodQuantity"`         //订单产品数量
		OrderGoodPrice            string `json:"orderGoodPrice"`            //订单产品单价
21
		Expense                   string `json:"expense"`                   //费用
22
		CooperationContractNumber string `json:"cooperationContractNumber"` //合约编号
23 24 25
	}
	// ReqImportDividendsOrder 请求参数
	ReqImportDividendsOrder struct {
26
		// 分红订单数据
27 28 29 30 31 32
		DividendsOrderData []ImportDividendsOrderData `json:"dividendsOrderData"` //分红订单数据列表
	}
	// DataImportDividendsOrder 响应参数
	DataImportDividendsOrder struct {
		SuccessCount int `json:"successCount"`
		Fail         struct {
33 34 35 36 37 38 39 40 41 42 43
			Header struct { //
				FailReason                string `json:"failReason"`                //'失败原因',
				OriginalOrderNum          string `json:"originalOrderNum"`          //来源单号,源单号,订单号
				DividendsCustomerName     string `json:"dividendsCustomerName"`     //订单客户名称
				OrderGoodName             string `json:"orderGoodName"`             //订单产品名称
				OrderTime                 string `json:"orderTime"`                 //订单日期
				RegionName                string `json:"regionName"`                //订单区域名称
				OrderGoodQuantity         string `json:"orderGoodQuantity"`         //订单产品数量
				OrderGoodPrice            string `json:"orderGoodPrice"`            //订单产品单价
				Expense                   string `json:"expense"`                   //费用
				CooperationContractNumber string `json:"cooperationContractNumber"` //合约编号
44 45
			} `json:"header"`
			Body []struct {
46 47 48 49 50 51 52 53 54 55
				FailReason                string `json:"failReason"`
				OriginalOrderNum          string `json:"originalOrderNum"`          //来源单号,源单号,订单号
				DividendsCustomerName     string `json:"dividendsCustomerName"`     //订单客户名称
				OrderGoodName             string `json:"orderGoodName"`             //订单产品名称
				OrderTime                 string `json:"orderTime"`                 //订单日期
				RegionName                string `json:"regionName"`                //订单区域名称
				OrderGoodQuantity         string `json:"orderGoodQuantity"`         //订单产品数量
				OrderGoodPrice            string `json:"orderGoodPrice"`            //订单产品单价
				Expense                   string `json:"expense"`                   //费用
				CooperationContractNumber string `json:"cooperationContractNumber"` //合约编号
56 57 58 59 60 61 62 63 64
			} `json:"body"`
		} `json:"fail"`
	}
)

//ReqImportDividendsReturnedOrder 导入退货单数据
type (
	ImportDividendsReturnedOrderData struct {
		OriginalOrderNum              string `json:"originalOrderNum"`              //来源单号,源单号,订单号
65
		DividendsReturnedCustomerName string `json:"dividendsReturnedCustomerName"` //退货客户名称
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
		OrderGoodName                 string `json:"orderGoodName"`                 //订单产品名称
		DividendsReturnedDate         string `json:"dividendsReturnedDate"`         //退货日期
		RegionName                    string `json:"regionName"`                    //退货区域名称
		OrderGoodPrice                string `json:"orderGoodPrice"`                //订单产品单价
		OrderGoodQuantity             string `json:"orderGoodQuantity"`             //订单产品数量
		CooperationContractNumber     string `json:"cooperationContractNumber"`     //合约编号
		OrderTime                     string `json:"orderTime"`                     //订单日期
	}
	// ReqImportDividendsReturnedOrder 请求参数
	ReqImportDividendsReturnedOrder struct {
		// 分红退货单数据
		DividendsReturnedOrderData []ImportDividendsReturnedOrderData `json:"dividendsReturnedOrderData"` //分红退货单数据列表
	}
	// DataImportDividendsReturnedOrder 响应参数
	DataImportDividendsReturnedOrder struct {
		SuccessCount int `json:"successCount"`
		Fail         struct {
			Header struct {
84 85 86 87 88 89 90 91 92 93
				FailReason                    string `json:"failReason"`
				OriginalOrderNum              string `json:"originalOrderNum"`              //来源单号,源单号,订单号
				DividendsReturnedCustomerName string `json:"dividendsReturnedCustomerName"` //退货客户名称
				OrderGoodName                 string `json:"orderGoodName"`                 //订单产品名称
				DividendsReturnedDate         string `json:"dividendsReturnedDate"`         //退货日期
				RegionName                    string `json:"regionName"`                    //退货区域名称
				OrderGoodPrice                string `json:"orderGoodPrice"`                //订单产品单价
				OrderGoodQuantity             string `json:"orderGoodQuantity"`             //订单产品数量
				CooperationContractNumber     string `json:"cooperationContractNumber"`     //合约编号
				OrderTime                     string `json:"orderTime"`                     //订单日期
94 95
			} `json:"header"`
			Body []struct {
96 97 98 99 100 101 102 103 104 105
				FailReason                    string `json:"failReason"`
				OriginalOrderNum              string `json:"originalOrderNum"`              //来源单号,源单号,订单号
				DividendsReturnedCustomerName string `json:"dividendsReturnedCustomerName"` //退货客户名称
				OrderGoodName                 string `json:"orderGoodName"`                 //订单产品名称
				DividendsReturnedDate         string `json:"dividendsReturnedDate"`         //退货日期
				RegionName                    string `json:"regionName"`                    //退货区域名称
				OrderGoodPrice                string `json:"orderGoodPrice"`                //订单产品单价
				OrderGoodQuantity             string `json:"orderGoodQuantity"`             //订单产品数量
				CooperationContractNumber     string `json:"cooperationContractNumber"`     //合约编号
				OrderTime                     string `json:"orderTime"`                     //订单日期
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
			} `json:"body"`
		} `json:"fail"`
	}
)

func (gateway HttplibAlliedCreationCooperation) ImportDividendsOrder(param ReqImportDividendsOrder) (*DataImportDividendsOrder, error) {
	url := gateway.baseUrL + "/dividends-orders/import"
	method := "POST"
	req := gateway.CreateRequest(url, method)
	log.Logger.Debug("向业务模块请求数据:导入订单数据", map[string]interface{}{
		"api": method + ":" + url,
	})
	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 DataImportDividendsOrder
	err = gateway.GetResponseData(result, &data)
	return &data, err
}

// ImportDividendsReturnedOrder 导入退货单数据
func (gateway HttplibAlliedCreationCooperation) ImportDividendsReturnedOrder(param ReqImportDividendsReturnedOrder) (*DataImportDividendsReturnedOrder, error) {
	url := gateway.baseUrL + "/dividends-returned-orders/import"
	method := "POST"
	req := gateway.CreateRequest(url, method)
	// oneDemo
	log.Logger.Debug("向业务模块请求数据:导入退货单数据。", map[string]interface{}{
		"api": method + ":" + url,
	})
	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 DataImportDividendsReturnedOrder
	err = gateway.GetResponseData(result, &data)
	return &data, err
}