package pdd

import (
	"duoduo/conf"
	"fmt"
	"github.com/asmcos/requests"
	"reflect"
	"strconv"
)

//
func DuoDuoGet(url string) (outData string, err error) {

	req := requests.Requests()
	resp, err := req.Get(url)

	if err != nil {
		return "", err
	} else {
		fmt.Print("resp = ", resp.R)
		return resp.Text(), err
	}

}

func Sign() {

}

// 解析 拼接请求
func Get(getData interface{}, url string) (outData string, err error) {

	//加载配置
	confIni, errConf := conf.ConnIni()
	if errConf != nil {
		fmt.Println(errConf)
	}

	host := confIni.MustValue("tisp", "postadd")

	// 1、通过json变量来获取所有Get的参数
	parameter := ""

	getType := reflect.TypeOf(getData)
	getValue := reflect.ValueOf(getData)
	for i := 0; i < getType.NumField(); i++ {

		valueType := getType.Field(i).Type.String()
		value := getValue.Field(i)
		tagName := getType.Field(i).Tag.Get("json")

		// 如果是int类型,并且是0,抛弃
		if valueType == "int" && value.Int() != 0 {
			if parameter != "" {
				parameter += "&"
			}
			parameter += tagName + "=" + strconv.FormatInt(value.Int(), 10)
		}

		// 如果是string类型,并且是空字符串,抛弃。
		if valueType == "string" && value.String() != "" {
			if parameter != "" {
				parameter += "&"
			}
			parameter += tagName + "=" + value.String()
		}
	}

	// 2、组合Url
	urlAddress := fmt.Sprintf("%s%s?%s", host, url, parameter)
	fmt.Println("url = ", urlAddress)

	// 3、请求Html

	req := requests.Requests()
	resp, err := req.Get(urlAddress)
	if err != nil {
		fmt.Println("err = ", err.Error())
		return "", err
	} else {
		return resp.Text(), nil
	}
}