Browse Source

Merge branch 'develop' of k.zhang/duoduo into test

k.zhang 4 năm trước cách đây
mục cha
commit
4d11b32643

+ 1 - 0
apis/pdd/base.go

@@ -12,6 +12,7 @@ func InitPddDdkRouter(engine *gin.RouterGroup) {
 		v1.POST("/pdd/url/generate", PddDdkGoodsPromotionUrlGenerate) //多多客 生成单品推广链接                                        //多多客 生成单品推广链接
 		v1.POST("/pdd/order/list", PddDdkOrderListIncrementGet)
 		v1.POST("/pdd/pid/query", PddDdkGoodsPidQuery)
+		v1.POST("/pdd/recommend/get", DdkGoodsRecommendGet) //多多进宝商品推荐API
 	}
 }
 func InitSetRouter(engine *gin.RouterGroup) {

+ 73 - 0
apis/pdd/pdd.ddk.goods.recommend.get.go

@@ -0,0 +1,73 @@
+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.55)).Round(2)
+	}
+
+	app.OK(c, outData, app.Success)
+}

+ 3 - 9
apis/pdd/pdd.ddk.goods.search.go

@@ -16,21 +16,13 @@ func PddDdkGoodsSearch(c *gin.Context) {
 	var inData pdd.PddDdkGoodsSearchRequest
 	var outData pdd.PddDdkGoodsSearchResponse
 	var pddErr pdd.ErrorPddResponse
-	//var p []byte
+
 	confIni, err := conf.ConnIni()
 	if err != nil {
 		app.Error(c, 400, err, err.Error())
 		return
 	}
-	//
-	//body, _ := ioutil.ReadAll(c.Request.Body)
-	//if body != nil {
-	//	fmt.Print("请求body内容为:%s", string(body))
-	//}
 
-	//fmt.Print(string(c.Request.Body))
-	//c.Request.Body.Read(p)
-	//fmt.Print("p= ", string(p))
 	err = c.ShouldBindJSON(&inData)
 	if err != nil {
 		app.Error(c, 400, err, err.Error())
@@ -60,6 +52,7 @@ func PddDdkGoodsSearch(c *gin.Context) {
 		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)
@@ -70,6 +63,7 @@ func PddDdkGoodsSearch(c *gin.Context) {
 		app.Error(c, 500, nil, pddErr.ErrorResponse.ErrorMsg)
 		return
 	}
+
 	app.OK(c, outData, app.Success)
 
 }

+ 7 - 7
apis/pdd/pdd.ddk.order.list.increment.get.go

@@ -133,11 +133,11 @@ func PddDdkOrderListIncrementGet(c *gin.Context) {
 				continue
 			}
 
-			walletVal.LatelyAmount = walletVal.LatelyAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.TodayAmount = walletVal.TodayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.TotalAmount = walletVal.TotalAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.YesterdayAmount = walletVal.YesterdayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.AvailableAmount = walletVal.AvailableAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
+			walletVal.LatelyAmount = walletVal.LatelyAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.TodayAmount = walletVal.TodayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.TotalAmount = walletVal.TotalAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.YesterdayAmount = walletVal.YesterdayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.AvailableAmount = walletVal.AvailableAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
 
 			trans.TransStatus = 3
 			trans.OpenID = pidVal.OpenID
@@ -145,8 +145,8 @@ func PddDdkOrderListIncrementGet(c *gin.Context) {
 			if err != nil {
 				continue
 			}
-			walletVal.WithdrawalAmount = transVal.Amount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.AvailableAmount = walletVal.AvailableAmount.Sub(walletVal.WithdrawalAmount).Mul(decimal.NewFromFloat(0.5))
+			walletVal.WithdrawalAmount = transVal.Amount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.AvailableAmount = walletVal.AvailableAmount.Sub(walletVal.WithdrawalAmount).Mul(decimal.NewFromFloat(0.55)).Round(2)
 
 			//更新钱包
 			walletVal.OpenID = pidVal.OpenID

+ 1 - 1
models/mysql/pid.go

@@ -16,7 +16,7 @@ func (p *Pid) TableName() string {
 }
 
 //     自己 上  上上
-//级别 0.5 0.15 0.05  70% 交税+
+//级别 0.55 0.1 0.1  70% 交税+
 func (p *Pid) Get() (Pid, error) {
 	var doc Pid
 	err := orm.Eloquent.Select("pid").Where("open_id = ?  and pid_status = ?", p.OpenID, p.PidStatus).Table(p.TableName()).First(&doc).Error

+ 62 - 0
models/pdd/pdd.ddk.goods.recommend.get.go

@@ -0,0 +1,62 @@
+package pdd
+
+import "github.com/shopspring/decimal"
+
+type DdkGoodsRecommendGetRequest struct {
+	PddDdkBase
+	CatId       string `json:"cat_id"`       //猜你喜欢场景的商品类目,20100-百货,20200-母婴,20300-食品,20400-女装,20500-电器,20600-鞋包,20700-内衣,20800-美妆,20900-男装,21000-水果,21100-家纺,21200-文具,21300-运动,21400-虚拟,21500-汽车,21600-家装,21700-家具,21800-医药;
+	ChannelType string `json:"channel_type"` //进宝频道推广商品: 1-今日销量榜,3-相似商品推荐,4-猜你喜欢(和进宝网站精选一致),5-实时热销榜,6-实时收益榜。默认值5
+	Offset      string `json:"offset"`       //从多少位置开始请求;默认值 : 0,offset需是limit的整数倍,仅支持整页翻页
+	Limit       string `json:"limit"`        //一页请求数量;默认值 : 20
+	Pid         string `json:"pid"`          //推广位id
+}
+
+//type DdkGoodsRecommendGetResponse struct {
+//}
+
+type DdkGoodsRecommendGetResponse struct {
+	GoodsBasicDetailResponse GoodsBasicDetailResponse `json:"goods_basic_detail_response"`
+}
+type List struct {
+	CategoryName         string          `json:"category_name"`
+	CouponRemainQuantity int             `json:"coupon_remain_quantity"`
+	PromotionRate        int64           `json:"promotion_rate"`
+	CatIds               []int           `json:"cat_ids"`
+	CouponMinOrderAmount int             `json:"coupon_min_order_amount"`
+	CategoryID           string          `json:"category_id"`
+	MallID               int             `json:"mall_id"`
+	MallName             string          `json:"mall_name"`
+	CouponTotalQuantity  int             `json:"coupon_total_quantity"`
+	MerchantType         string          `json:"merchant_type"`
+	LgstTxt              string          `json:"lgst_txt"`
+	GoodsName            string          `json:"goods_name"`
+	SalesTip             string          `json:"sales_tip"`
+	GoodsID              int64           `json:"goods_id"`
+	PredictPromotionRate int             `json:"predict_promotion_rate"`
+	DescTxt              string          `json:"desc_txt"`
+	GoodsDesc            string          `json:"goods_desc"`
+	OptName              string          `json:"opt_name"`
+	ShareRate            int             `json:"share_rate"`
+	GoodsThumbnailURL    string          `json:"goods_thumbnail_url"`
+	OptIds               []int           `json:"opt_ids"`
+	OptID                string          `json:"opt_id"`
+	GoodsImageURL        string          `json:"goods_image_url"`
+	ActivityTags         []int           `json:"activity_tags"`
+	HasCoupon            bool            `json:"has_coupon"`
+	MinNormalPrice       int             `json:"min_normal_price"`
+	ServTxt              string          `json:"serv_txt"`
+	UnifiedTags          []string        `json:"unified_tags"`
+	CouponStartTime      int             `json:"coupon_start_time"`
+	MinGroupPrice        int64           `json:"min_group_price"`
+	CouponDiscount       int64           `json:"coupon_discount"`
+	GoodsSign            string          `json:"goods_sign"`
+	CouponEndTime        int             `json:"coupon_end_time"`
+	ExtraCouponAmount    int             `json:"extra_coupon_amount,omitempty"`
+	MinAmount            decimal.Decimal `json:"min_amount"`
+	Rebate               decimal.Decimal `json:"rebate"`
+}
+type GoodsBasicDetailResponse struct {
+	Total     int    `json:"total"`
+	List      []List `json:"list"`
+	RequestID string `json:"request_id"`
+}

+ 7 - 7
report/pdd.ddk.order.list.increment.get.go

@@ -120,11 +120,11 @@ func DdkOrder() {
 				continue
 			}
 
-			walletVal.LatelyAmount = walletVal.LatelyAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.TodayAmount = walletVal.TodayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.TotalAmount = walletVal.TotalAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.YesterdayAmount = walletVal.YesterdayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.AvailableAmount = walletVal.AvailableAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
+			walletVal.LatelyAmount = walletVal.LatelyAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.TodayAmount = walletVal.TodayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.TotalAmount = walletVal.TotalAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.YesterdayAmount = walletVal.YesterdayAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.AvailableAmount = walletVal.AvailableAmount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
 
 			trans.TransStatus = 3
 			trans.OpenID = pidVal.OpenID
@@ -132,8 +132,8 @@ func DdkOrder() {
 			if err != nil {
 				continue
 			}
-			walletVal.WithdrawalAmount = transVal.Amount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.5))
-			walletVal.AvailableAmount = walletVal.AvailableAmount.Sub(walletVal.WithdrawalAmount).Mul(decimal.NewFromFloat(0.5))
+			walletVal.WithdrawalAmount = transVal.Amount.Div(decimal.NewFromInt(100)).Mul(decimal.NewFromFloat(0.55)).Round(2)
+			walletVal.AvailableAmount = walletVal.AvailableAmount.Sub(walletVal.WithdrawalAmount).Mul(decimal.NewFromFloat(0.55)).Round(2)
 
 			//更新钱包
 			walletVal.OpenID = pidVal.OpenID