mh_server/lib/xianmai/xian_http.go
2022-08-12 10:41:33 +08:00

176 lines
4.9 KiB
Go

package xianmai
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"strings"
)
type XianMaiClient struct {
CustomPhone string `json:"custom_phone"`
BaseURL string `json:"base_url"`
}
var xian *XianMaiClient
func GetXianClient() *XianMaiClient {
if xian == nil {
xian = &XianMaiClient{
CustomPhone: "17080320980",
BaseURL: "https://oam.xianmai.net.cn/",
//BaseURL: "https://test.oam.xianmai.net.cn/",
}
}
return xian
}
func (m *XianMaiClient) post(xmApi string, params map[string]interface{}, resp interface{}) error {
//params.Set("customPhone", m.CustomPhone)
//uri := m.BaseURL + xmApi + params.Encode()
params["customPhone"] = m.CustomPhone
uri := m.BaseURL + xmApi
data, err := json.Marshal(params)
if err != nil {
fmt.Println(err)
return err
}
res, err := http.Post(uri, "application/json;charset=utf-8", strings.NewReader(string(data)))
if err != nil {
fmt.Println(err)
return err
}
//headers["Content-Type"] = "application/json;charset=utf-8"
//res.Header.Set("Content-Type", "application/x-www-form-urlencoded")
defer res.Body.Close()
dataRsp, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return err
}
fmt.Println("dataRsp:", string(dataRsp))
if err = json.Unmarshal(dataRsp, resp); err != nil {
fmt.Println(err)
return err
}
return nil
}
type GameCassetteListResp struct {
Flag bool `json:"flag"`
Code int `json:"code"`
Message string `json:"message"`
Data1 struct {
Total int `json:"total"`
List []struct {
GoodsId int `json:"goodsId"`
GoodsName string `json:"goodsName"`
GoodsImg string `json:"goodsImg"`
Keyword string `json:"keyword"`
} `json:"list"`
PageNum int `json:"pageNum"`
PageSize int `json:"pageSize"`
Size int `json:"size"`
StartRow int `json:"startRow"`
EndRow int `json:"endRow"`
Pages int `json:"pages"`
PrePage int `json:"prePage"`
NextPage int `json:"nextPage"`
IsFirstPage bool `json:"isFirstPage"`
IsLastPage bool `json:"isLastPage"`
HasPreviousPage bool `json:"hasPreviousPage"`
HasNextPage bool `json:"hasNextPage"`
NavigatePages int `json:"navigatePages"`
NavigatepageNums []int `json:"navigatepageNums"`
NavigateFirstPage int `json:"navigateFirstPage"`
NavigateLastPage int `json:"navigateLastPage"`
} `json:"data1"`
Data interface{} `json:"data"`
}
type Cassette struct {
GoodsId int `json:"goods_id"`
GoodsName string `json:"goods_name"`
GoodsImg string `json:"goods_img"`
Keyword string `json:"keyword"`
}
type GameCheckGoodsResp struct {
Flag bool `json:"flag"`
Code int `json:"code"`
Message string `json:"message"`
Data1 struct {
GoodsId int `json:"goodsId"`
GoodsName string `json:"goodsName"`
GoodsImg string `json:"goodsImg"`
SkuTitleVos []struct {
ProblemId int `json:"problemId"`
ProblemName string `json:"problemName"`
Interval int `json:"interval"`
SkuDetailVoList []struct {
ProblemValueId int `json:"problemValueId"`
ProblemValueName string `json:"problemValueName"`
} `json:"skuDetailVoList"`
Toption int `json:"toption"`
Tindex int `json:"tindex"`
} `json:"skuTitleVos"`
ProblemTitleVos []struct {
ProblemId int `json:"problemId"`
ProblemName string `json:"problemName"`
Interval int `json:"interval"`
SkuDetailVoList interface{} `json:"skuDetailVoList"`
ProblemDetailVoList []struct {
ProblemValueId int `json:"problemValueId"`
ProblemValueName string `json:"problemValueName"`
} `json:"problemDetailVoList"`
Toption int `json:"toption"`
Tindex int `json:"tindex"`
} `json:"problemTitleVos"`
} `json:"data1"`
Data interface{} `json:"data"`
}
type XMCheckGoods struct {
GoodsId int `json:"goods_id"`
GoodsName string `json:"goods_name"`
GoodsImg string `json:"goods_img"`
Skus []XMSkuTitle `json:"skus"`
Problems []XMProblemTitle `json:"problems"`
}
type XMSkuTitle struct {
ProblemId int `json:"problem_id"`
ProblemName string `json:"problem_name"`
List []XMSkuDetail `json:"list"`
}
type XMSkuDetail struct {
ProblemValueId int `json:"problem_value_id"`
ProblemValueName string `json:"problem_value_name"`
}
type XMProblemTitle struct {
ProblemId int `json:"problem_id"`
ProblemName string `json:"problem_name"`
List []XMSkuDetail `json:"list"`
}
type XMProblemAttr struct {
ProblemAttrId string `json:"problemAttrId"`
ProblemAttrValueId string `json:"problemAttrValueId"`
}
type GameEvaluationResp struct {
Flag bool `json:"flag"`
Code int `json:"code"`
Message string `json:"message"`
Data1 interface{} `json:"data1"`
Data int `json:"data"`
}