| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- 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 PddDdkGoodsSearch(c *gin.Context) {
 
- 	var inData pdd.PddDdkGoodsSearchRequest
 
- 	var outData pdd.PddDdkGoodsSearchResponse
 
- 	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
 
- 	}
 
- 	fmt.Print(inData.Page)
 
- 	fmt.Print(inData.PageSize)
 
- 	inData.ClientId = confIni.MustValue("pdd", "client_id")
 
- 	inData.Type = "pdd.ddk.goods.search"
 
- 	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
 
- 	}
 
- 	fmt.Println("val = ", val)
 
- 	err = tools.JsonUnmarshal(val, &outData)
 
- 	if err != nil {
 
- 		err = tools.JsonUnmarshal(val, &pddErr)
 
- 		if err != nil {
 
- 			app.Error(c, 500, err, err.Error())
 
- 			return
 
- 		}
 
- 		app.Error(c, 500, nil, pddErr.ErrorResponse.ErrorMsg)
 
- 		return
 
- 	}
 
- 	for i := 0; i < len(outData.GoodsSearchResponse.GoodsList); i++ {
 
- 		outData.GoodsSearchResponse.GoodsList[i].MinAmount = decimal.NewFromInt(outData.GoodsSearchResponse.GoodsList[i].MinGroupPrice).Sub(decimal.NewFromInt(outData.GoodsSearchResponse.GoodsList[i].CouponDiscount)).Div(decimal.NewFromInt(100)).Round(2)
 
- 		outData.GoodsSearchResponse.GoodsList[i].Rebate = outData.GoodsSearchResponse.GoodsList[i].MinAmount.Mul(decimal.NewFromInt(outData.GoodsSearchResponse.GoodsList[i].PromotionRate)).Div(decimal.NewFromInt(1000)).Mul(decimal.NewFromFloat(0.6)).Round(2)
 
- 	}
 
- 	app.OK(c, outData, app.Success)
 
- }
 
 
  |