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 }