mh_server/lib/xianmai/xian.go

148 lines
4.1 KiB
Go
Raw Normal View History

2022-08-01 07:14:53 +00:00
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
}