| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- 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 PddDdkGoodsDetail(c *gin.Context) {
 
- 	var inData pdd.PddDdkGoodsDetailRequest
 
- 	var outData pdd.PddDdkGoodsDetailResponse
 
- 	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.detail"
 
- 	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
 
- 	}
 
- 	outData.GoodsDetailResponse.GoodsDetails[0].MinAmount = decimal.NewFromInt(outData.GoodsDetailResponse.GoodsDetails[0].MinGroupPrice).Sub(decimal.NewFromInt(outData.GoodsDetailResponse.GoodsDetails[0].CouponDiscount)).Div(decimal.NewFromInt(100)).Round(2)
 
- 	outData.GoodsDetailResponse.GoodsDetails[0].Rebate = outData.GoodsDetailResponse.GoodsDetails[0].MinAmount.Mul(decimal.NewFromInt(outData.GoodsDetailResponse.GoodsDetails[0].PromotionRate)).Div(decimal.NewFromInt(1000)).Mul(decimal.NewFromFloat(0.6)).Round(2)
 
- 	app.OK(c, outData, app.Success)
 
- }
 
 
  |