148 lines
4.1 KiB
Go
148 lines
4.1 KiB
Go
|
package xianmai
|
||
|
|
||
|
import (
|
||
|
"github.com/codinl/go-logger"
|
||
|
"strconv"
|
||
|
)
|
||
|
|
||
|
func GameCassetteList(keyword string, pageNum, pageSize int) ([]Cassette, int, error) {
|
||
|
paraMap := map[string]interface{}{
|
||
|
"keyword": keyword,
|
||
|
"pageNum": pageNum,
|
||
|
"pageSize": pageSize,
|
||
|
}
|
||
|
games := make([]Cassette, 0)
|
||
|
resp := &GameCassetteListResp{}
|
||
|
err := GetXianClient().post("game/cassetteList", paraMap, resp)
|
||
|
if err != nil {
|
||
|
logger.Error("err:", err)
|
||
|
return games, 0, err
|
||
|
}
|
||
|
|
||
|
for i, _ := range resp.Data1.List {
|
||
|
cassette := Cassette{
|
||
|
GoodsId: resp.Data1.List[i].GoodsId,
|
||
|
GoodsName: resp.Data1.List[i].GoodsName,
|
||
|
GoodsImg: resp.Data1.List[i].GoodsImg,
|
||
|
Keyword: resp.Data1.List[i].Keyword,
|
||
|
}
|
||
|
games = append(games, cassette)
|
||
|
}
|
||
|
return games, resp.Data1.Pages, nil
|
||
|
}
|
||
|
|
||
|
type GameCheckGoodsReq struct {
|
||
|
GoodsId uint32 `json:"goods_id"`
|
||
|
}
|
||
|
|
||
|
func (m *GameCheckGoodsReq) Get() (*XMCheckGoods, error) {
|
||
|
paraMap := map[string]interface{}{
|
||
|
"goodsId": m.GoodsId,
|
||
|
}
|
||
|
var xmGoods *XMCheckGoods
|
||
|
resp := &GameCheckGoodsResp{}
|
||
|
err := GetXianClient().post("game/check/goods", paraMap, resp)
|
||
|
if err != nil {
|
||
|
logger.Error("err:", err)
|
||
|
return xmGoods, err
|
||
|
}
|
||
|
xmGoods = &XMCheckGoods{
|
||
|
GoodsId: resp.Data1.GoodsId,
|
||
|
GoodsName: resp.Data1.GoodsName,
|
||
|
GoodsImg: resp.Data1.GoodsImg,
|
||
|
}
|
||
|
skus := make([]XMSkuTitle, 0)
|
||
|
problems := make([]XMProblemTitle, 0)
|
||
|
|
||
|
for i, _ := range resp.Data1.SkuTitleVos {
|
||
|
details := make([]XMSkuDetail, 0)
|
||
|
skuTitle := XMSkuTitle{
|
||
|
ProblemId: resp.Data1.SkuTitleVos[i].ProblemId,
|
||
|
ProblemName: resp.Data1.SkuTitleVos[i].ProblemName,
|
||
|
}
|
||
|
for _, vo := range resp.Data1.SkuTitleVos[i].SkuDetailVoList {
|
||
|
skuDetail := XMSkuDetail{
|
||
|
ProblemValueId: vo.ProblemValueId,
|
||
|
ProblemValueName: vo.ProblemValueName,
|
||
|
}
|
||
|
details = append(details, skuDetail)
|
||
|
}
|
||
|
skuTitle.List = details
|
||
|
skus = append(skus, skuTitle)
|
||
|
}
|
||
|
|
||
|
for i, _ := range resp.Data1.ProblemTitleVos {
|
||
|
details := make([]XMSkuDetail, 0)
|
||
|
problemTitle := XMProblemTitle{
|
||
|
ProblemId: resp.Data1.ProblemTitleVos[i].ProblemId,
|
||
|
ProblemName: resp.Data1.ProblemTitleVos[i].ProblemName,
|
||
|
}
|
||
|
for _, vo := range resp.Data1.ProblemTitleVos[i].ProblemDetailVoList {
|
||
|
skuDetail := XMSkuDetail{
|
||
|
ProblemValueId: vo.ProblemValueId,
|
||
|
ProblemValueName: vo.ProblemValueName,
|
||
|
}
|
||
|
details = append(details, skuDetail)
|
||
|
}
|
||
|
problemTitle.List = details
|
||
|
problems = append(problems, problemTitle)
|
||
|
}
|
||
|
xmGoods.Skus = skus
|
||
|
xmGoods.Problems = problems
|
||
|
|
||
|
return xmGoods, nil
|
||
|
}
|
||
|
|
||
|
type GameEvaluationReq struct {
|
||
|
GoodsId int `json:"goods_id"`
|
||
|
GoodsName string `json:"goods_name"`
|
||
|
GoodsImg string `json:"goods_img"`
|
||
|
Keyword string `json:"keyword"`
|
||
|
StoreId uint32 `json:"store_id"`
|
||
|
ProblemAttrList []struct {
|
||
|
ProblemAttrName string `json:"problem_attr_name"`
|
||
|
ProblemAttrId int `json:"problem_attr_id"`
|
||
|
ProblemAttrValueName string `json:"problem_attr_value_name"`
|
||
|
ProblemAttrValueId int `json:"problem_attr_value_id"`
|
||
|
} `json:"problem_attr_list"`
|
||
|
SkuList []struct {
|
||
|
ProblemAttrName string `json:"problem_attr_name"`
|
||
|
ProblemAttrId int `json:"problem_attr_id"`
|
||
|
ProblemAttrValueName string `json:"problem_attr_value_name"`
|
||
|
ProblemAttrValueId int `json:"problem_attr_value_id"`
|
||
|
} `json:"sku_list"`
|
||
|
}
|
||
|
|
||
|
func (m *GameEvaluationReq) Evaluation() (int, error) {
|
||
|
paraMap := map[string]interface{}{
|
||
|
"goodsId": m.GoodsId,
|
||
|
}
|
||
|
problems := make([]XMProblemAttr, 0)
|
||
|
skus := make([]XMProblemAttr, 0)
|
||
|
for i, _ := range m.ProblemAttrList {
|
||
|
attr := XMProblemAttr{
|
||
|
ProblemAttrId: strconv.Itoa(m.ProblemAttrList[i].ProblemAttrId),
|
||
|
ProblemAttrValueId: strconv.Itoa(m.ProblemAttrList[i].ProblemAttrValueId),
|
||
|
}
|
||
|
problems = append(problems, attr)
|
||
|
}
|
||
|
for i, _ := range m.SkuList {
|
||
|
attr := XMProblemAttr{
|
||
|
ProblemAttrId: strconv.Itoa(m.SkuList[i].ProblemAttrId),
|
||
|
ProblemAttrValueId: strconv.Itoa(m.SkuList[i].ProblemAttrValueId),
|
||
|
}
|
||
|
skus = append(skus, attr)
|
||
|
}
|
||
|
paraMap["problemAttrList"] = problems
|
||
|
paraMap["skuList"] = skus
|
||
|
|
||
|
resp := &GameEvaluationResp{}
|
||
|
err := GetXianClient().post("game/evaluation", paraMap, resp)
|
||
|
if err != nil {
|
||
|
logger.Error("err:", err)
|
||
|
return 0, err
|
||
|
}
|
||
|
|
||
|
return resp.Data, nil
|
||
|
}
|