package pdd import ( "duoduo/conf" "duoduo/models/pdd" "duoduo/tools" "duoduo/tools/app" "fmt" "github.com/gin-gonic/gin" "github.com/shopspring/decimal" "time" ) func DdkGoodsRecommendGet(c *gin.Context) { var inData pdd.DdkGoodsRecommendGetRequest var outData pdd.DdkGoodsRecommendGetResponse var pddErr pdd.ErrorPddResponse confIni, err := conf.ConnIni() if err != nil { app.Error(c, 400, err, err.Error()) return } err = c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } inData.ClientId = confIni.MustValue("pdd", "client_id") inData.Type = "pdd.ddk.goods.recommend.get" inData.Timestamp = fmt.Sprintf("%d", time.Now().Unix()) inData.DataType = "JSON" inData.Sign = "sign" sign, err := DDKSign(inData) if err != nil { app.Error(c, 400, err, err.Error()) return } inData.Sign = sign val, err := PostDDk(inData, nil) if err != nil { app.Error(c, 400, err, err.Error()) return } err = tools.JsonUnmarshal(val, &pddErr) if err != nil { app.Error(c, 500, err, err.Error()) return } if pddErr.ErrorResponse.ErrorCode != 0 { app.Error(c, 500, err, pddErr.ErrorResponse.ErrorMsg) return } err = tools.JsonUnmarshal(val, &outData) if err != nil { app.Error(c, 500, err, err.Error()) return } for i := 0; i < len(outData.GoodsBasicDetailResponse.List); i++ { outData.GoodsBasicDetailResponse.List[i].MinAmount = decimal.NewFromInt(outData.GoodsBasicDetailResponse.List[i].MinGroupPrice).Sub(decimal.NewFromInt(outData.GoodsBasicDetailResponse.List[i].CouponDiscount)).Div(decimal.NewFromInt(100)).Round(2) outData.GoodsBasicDetailResponse.List[i].Rebate = outData.GoodsBasicDetailResponse.List[i].MinAmount.Mul(decimal.NewFromInt(outData.GoodsBasicDetailResponse.List[i].PromotionRate)).Div(decimal.NewFromInt(1000)).Mul(decimal.NewFromFloat(0.6)).Round(2) } app.OK(c, outData, app.Success) }