From 5ff9d6e51c7911454ade06515edcacf1246fd5fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Sat, 18 Jun 2022 10:17:54 +0800 Subject: [PATCH] - update service/pinduoduo --- service/pinduoduo/{app.go => client.go} | 58 ++++++++++--------- service/pinduoduo/{pgsql.go => log.go} | 4 +- service/pinduoduo/params.go | 8 +-- .../pdd.ddk.cms.prom.url.generate.go | 6 +- service/pinduoduo/pdd.ddk.goods.detail.go | 6 +- .../pinduoduo/pdd.ddk.goods.pid.generate.go | 4 +- .../pdd.ddk.goods.promotion.url.generate.go | 6 +- .../pinduoduo/pdd.ddk.goods.recommend.get.go | 6 +- service/pinduoduo/pdd.ddk.goods.search.go | 6 +- .../pdd.ddk.member.authority.query.go | 6 +- service/pinduoduo/pdd.ddk.order.detail.get.go | 4 +- .../pdd.ddk.order.list.increment.get.go | 4 +- .../pinduoduo/pdd.ddk.order.list.range.get.go | 4 +- service/pinduoduo/pdd.ddk.resource.url.gen.go | 6 +- .../pinduoduo/pdd.ddk.rp.prom.url.generate.go | 6 +- .../pinduoduo/pdd.ddk.top.goods.list.query.go | 6 +- service/pinduoduo/pdd.goods.cats.get.go | 4 +- service/pinduoduo/pdd.goods.opt.get.go | 4 +- 18 files changed, 77 insertions(+), 71 deletions(-) rename service/pinduoduo/{app.go => client.go} (59%) rename service/pinduoduo/{pgsql.go => log.go} (93%) diff --git a/service/pinduoduo/app.go b/service/pinduoduo/client.go similarity index 59% rename from service/pinduoduo/app.go rename to service/pinduoduo/client.go index d6e1dc1b..0f5746f8 100644 --- a/service/pinduoduo/app.go +++ b/service/pinduoduo/client.go @@ -11,33 +11,39 @@ import ( "strings" ) -// App 公共请求参数 -type App struct { - clientId string // POP分配给应用的client_id - clientSecret string // POP分配给应用的client_secret - mediaId string // 媒体ID - Pid string // 推广位 - pgsql *gorm.DB // pgsql数据库 +type ConfigClient struct { + ClientId string // POP分配给应用的client_id + ClientSecret string // POP分配给应用的client_secret + MediaId string // 媒体ID + Pid string // 推广位 + PgsqlDb *gorm.DB // pgsql数据库 +} + +type Client struct { client *gorequest.App // 请求客户端 log *golog.Api // 日志服务 logTableName string // 日志表名 logStatus bool // 日志状态 + config *ConfigClient // 配置 } -func NewApp(clientId string, clientSecret string, mediaId string, pid string, pgsql *gorm.DB) *App { - app := &App{clientId: clientId, clientSecret: clientSecret, mediaId: mediaId, Pid: pid} - app.client = gorequest.NewHttp() - app.client.Uri = "https://gw-api.pinduoduo.com/api/router" - if pgsql != nil { - app.pgsql = pgsql - app.logStatus = true - app.logTableName = "pinduoduo" - app.log = golog.NewApi(&golog.ApiConfig{ - Db: pgsql, - TableName: app.logTableName, +func NewClient(config *ConfigClient) *Client { + + c := &Client{config: config} + c.config = config + + c.client = gorequest.NewHttp() + c.client.Uri = "https://gw-api.pinduoduo.com/api/router" + if c.config.PgsqlDb != nil { + c.logStatus = true + c.logTableName = "pinduoduo" + c.log = golog.NewApi(&golog.ApiConfig{ + Db: c.config.PgsqlDb, + TableName: c.logTableName, }) } - return app + + return c } type ErrResp struct { @@ -55,13 +61,13 @@ type CustomParametersResult struct { Uid string `json:"uid"` } -func (app *App) request(params map[string]interface{}) (resp gorequest.Response, err error) { +func (c *Client) request(params map[string]interface{}) (resp gorequest.Response, err error) { // 签名 - app.Sign(params) + c.Sign(params) // 创建请求 - client := app.client + client := c.client // 设置参数 client.SetParams(params) @@ -73,14 +79,14 @@ func (app *App) request(params map[string]interface{}) (resp gorequest.Response, } // 日志 - if app.logStatus == true { - go app.postgresqlLog(gostring.ToString(params["type"]), request) + if c.logStatus == true { + go c.postgresqlLog(gostring.ToString(params["type"]), request) } return request, err } -func (app *App) SalesTipParseInt64(salesTip string) int64 { +func (c *Client) SalesTipParseInt64(salesTip string) int64 { parseInt, err := strconv.ParseInt(salesTip, 10, 64) if err != nil { salesTipStr := salesTip @@ -103,6 +109,6 @@ func (app *App) SalesTipParseInt64(salesTip string) int64 { } } -func (app *App) CommissionIntegralToInt64(GoodsPrice, CouponProportion int64) int64 { +func (c *Client) CommissionIntegralToInt64(GoodsPrice, CouponProportion int64) int64 { return (GoodsPrice * CouponProportion) / 1000 } diff --git a/service/pinduoduo/pgsql.go b/service/pinduoduo/log.go similarity index 93% rename from service/pinduoduo/pgsql.go rename to service/pinduoduo/log.go index e4e2ffd5..78cf08c3 100644 --- a/service/pinduoduo/pgsql.go +++ b/service/pinduoduo/log.go @@ -8,8 +8,8 @@ import ( ) // 记录日志 -func (app *App) postgresqlLog(api string, request gorequest.Response) { - app.log.Record(golog.ApiPostgresqlLog{ +func (c *Client) postgresqlLog(api string, request gorequest.Response) { + c.log.Record(golog.ApiPostgresqlLog{ RequestTime: golog.TimeString{Time: request.RequestTime}, //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 diff --git a/service/pinduoduo/params.go b/service/pinduoduo/params.go index 8e1ee930..4ac10f83 100644 --- a/service/pinduoduo/params.go +++ b/service/pinduoduo/params.go @@ -26,19 +26,19 @@ func NewParamsWithType(_type string, params ...Params) Params { return p } -func (app *App) Sign(p Params) { - p["client_id"] = app.clientId +func (c *Client) Sign(p Params) { + p["client_id"] = c.config.ClientId // 排序所有的 key var keys []string for key := range p { keys = append(keys, key) } sort.Strings(keys) - signStr := app.clientSecret + signStr := c.config.ClientSecret for _, key := range keys { signStr += key + getString(p[key]) } - signStr += app.clientSecret + signStr += c.config.ClientSecret p["sign"] = createSign(signStr) } diff --git a/service/pinduoduo/pdd.ddk.cms.prom.url.generate.go b/service/pinduoduo/pdd.ddk.cms.prom.url.generate.go index ebdb9a09..80a354d7 100644 --- a/service/pinduoduo/pdd.ddk.cms.prom.url.generate.go +++ b/service/pinduoduo/pdd.ddk.cms.prom.url.generate.go @@ -62,12 +62,12 @@ func NewCmsPromUrlGenerateResult(result CmsPromUrlGenerateResponse, body []byte, // CmsPromUrlGenerate 生成商城-频道推广链接 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.cms.prom.url.generate -func (app *App) CmsPromUrlGenerate(notMustParams ...Params) *CmsPromUrlGenerateResult { +func (c *Client) CmsPromUrlGenerate(notMustParams ...Params) *CmsPromUrlGenerateResult { // 参数 params := NewParamsWithType("pdd.ddk.cms.prom.url.generate", notMustParams...) - params.Set("p_id_list", []string{app.Pid}) + params.Set("p_id_list", []string{c.config.Pid}) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response CmsPromUrlGenerateResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.goods.detail.go b/service/pinduoduo/pdd.ddk.goods.detail.go index bbb1d497..2d2d65bc 100644 --- a/service/pinduoduo/pdd.ddk.goods.detail.go +++ b/service/pinduoduo/pdd.ddk.goods.detail.go @@ -97,12 +97,12 @@ func NewGoodsDetailResult(result GoodsDetailResponse, body []byte, http goreques // GoodsDetail 多多进宝商品详情查询 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.detail -func (app *App) GoodsDetail(notMustParams ...Params) *GoodsDetailResult { +func (c *Client) GoodsDetail(notMustParams ...Params) *GoodsDetailResult { // 参数 params := NewParamsWithType("pdd.ddk.goods.detail", notMustParams...) - params.Set("pid", app.Pid) + params.Set("pid", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsDetailResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.goods.pid.generate.go b/service/pinduoduo/pdd.ddk.goods.pid.generate.go index d5d93ca6..cc483174 100644 --- a/service/pinduoduo/pdd.ddk.goods.pid.generate.go +++ b/service/pinduoduo/pdd.ddk.goods.pid.generate.go @@ -30,11 +30,11 @@ func NewGoodsPidGenerateResult(result GoodsPidGenerateResponse, body []byte, htt // GoodsPidGenerate 创建多多进宝推广位 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.pid.generate -func (app *App) GoodsPidGenerate(notMustParams ...Params) *GoodsPidGenerateResult { +func (c *Client) GoodsPidGenerate(notMustParams ...Params) *GoodsPidGenerateResult { // 参数 params := NewParamsWithType("pdd.ddk.goods.pid.generate", notMustParams...) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsPidGenerateResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.goods.promotion.url.generate.go b/service/pinduoduo/pdd.ddk.goods.promotion.url.generate.go index 51e414c9..acb1fd05 100644 --- a/service/pinduoduo/pdd.ddk.goods.promotion.url.generate.go +++ b/service/pinduoduo/pdd.ddk.goods.promotion.url.generate.go @@ -50,12 +50,12 @@ func NewGoodsPromotionUrlGenerateResult(result GoodsPromotionUrlGenerateResponse // GoodsPromotionUrlGenerate 多多进宝推广链接生成 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.promotion.url.generate -func (app *App) GoodsPromotionUrlGenerate(notMustParams ...Params) *GoodsPromotionUrlGenerateResult { +func (c *Client) GoodsPromotionUrlGenerate(notMustParams ...Params) *GoodsPromotionUrlGenerateResult { // 参数 params := NewParamsWithType("pdd.ddk.goods.promotion.url.generate", notMustParams...) - params.Set("p_id", app.Pid) + params.Set("p_id", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsPromotionUrlGenerateResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.goods.recommend.get.go b/service/pinduoduo/pdd.ddk.goods.recommend.get.go index 40917b6a..9bde9e7b 100644 --- a/service/pinduoduo/pdd.ddk.goods.recommend.get.go +++ b/service/pinduoduo/pdd.ddk.goods.recommend.get.go @@ -79,12 +79,12 @@ func NewGoodsRecommendGetResult(result GoodsRecommendGetResponse, body []byte, h // GoodsRecommendGet 多多进宝商品推荐API // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.recommend.get -func (app *App) GoodsRecommendGet(notMustParams ...Params) *GoodsRecommendGetResult { +func (c *Client) GoodsRecommendGet(notMustParams ...Params) *GoodsRecommendGetResult { // 参数 params := NewParamsWithType("pdd.ddk.goods.recommend.get", notMustParams...) - params.Set("pid", app.Pid) + params.Set("pid", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsRecommendGetResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.goods.search.go b/service/pinduoduo/pdd.ddk.goods.search.go index 48c1ccd1..1960cc27 100644 --- a/service/pinduoduo/pdd.ddk.goods.search.go +++ b/service/pinduoduo/pdd.ddk.goods.search.go @@ -93,12 +93,12 @@ func NewGoodsSearchResult(result GoodsSearchResponse, body []byte, http goreques // GoodsSearch 多多进宝商品查询 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.search -func (app *App) GoodsSearch(notMustParams ...Params) *GoodsSearchResult { +func (c *Client) GoodsSearch(notMustParams ...Params) *GoodsSearchResult { // 参数 params := NewParamsWithType("pdd.ddk.goods.search", notMustParams...) - params.Set("pid", app.Pid) + params.Set("pid", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsSearchResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.member.authority.query.go b/service/pinduoduo/pdd.ddk.member.authority.query.go index 696c365b..1a46d741 100644 --- a/service/pinduoduo/pdd.ddk.member.authority.query.go +++ b/service/pinduoduo/pdd.ddk.member.authority.query.go @@ -25,12 +25,12 @@ func NewMemberAuthorityQueryResult(result MemberAuthorityQueryResponse, body []b // MemberAuthorityQuery 查询是否绑定备案 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.search -func (app *App) MemberAuthorityQuery(notMustParams ...Params) *MemberAuthorityQueryResult { +func (c *Client) MemberAuthorityQuery(notMustParams ...Params) *MemberAuthorityQueryResult { // 参数 params := NewParamsWithType("pdd.ddk.member.authority.query", notMustParams...) - params.Set("pid", app.Pid) + params.Set("pid", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response MemberAuthorityQueryResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.order.detail.get.go b/service/pinduoduo/pdd.ddk.order.detail.get.go index e25af15f..f2acb615 100644 --- a/service/pinduoduo/pdd.ddk.order.detail.get.go +++ b/service/pinduoduo/pdd.ddk.order.detail.get.go @@ -66,13 +66,13 @@ func NewOrderDetailGetResult(result OrderDetailGetResponse, body []byte, http go } // OrderDetailGet 多多进宝商品查询 https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.detail.get -func (app *App) OrderDetailGet(orderSn string) *OrderDetailGetResult { +func (c *Client) OrderDetailGet(orderSn string) *OrderDetailGetResult { // 参数 param := NewParams() param.Set("order_sn", orderSn) params := NewParamsWithType("pdd.ddk.order.detail.get", param) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response OrderDetailGetResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.order.list.increment.get.go b/service/pinduoduo/pdd.ddk.order.list.increment.get.go index 3f332dbe..4730ff25 100644 --- a/service/pinduoduo/pdd.ddk.order.list.increment.get.go +++ b/service/pinduoduo/pdd.ddk.order.list.increment.get.go @@ -71,11 +71,11 @@ func NewOrderListIncrementGetResult(result OrderListIncrementGetResponse, body [ // OrderListIncrementGet 最后更新时间段增量同步推广订单信息 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.list.increment.get -func (app *App) OrderListIncrementGet(notMustParams ...Params) *OrderListIncrementGetResult { +func (c *Client) OrderListIncrementGet(notMustParams ...Params) *OrderListIncrementGetResult { // 参数 params := NewParamsWithType("pdd.ddk.order.list.increment.get", notMustParams...) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response OrderListIncrementGetResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.order.list.range.get.go b/service/pinduoduo/pdd.ddk.order.list.range.get.go index 444c86df..b0dfaf2a 100644 --- a/service/pinduoduo/pdd.ddk.order.list.range.get.go +++ b/service/pinduoduo/pdd.ddk.order.list.range.get.go @@ -71,11 +71,11 @@ func NewOrderListRangeGetResult(result OrderListRangeGetResponse, body []byte, h // OrderListRangeGet 用时间段查询推广订单接口 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.list.range.get -func (app *App) OrderListRangeGet(notMustParams ...Params) *OrderListRangeGetResult { +func (c *Client) OrderListRangeGet(notMustParams ...Params) *OrderListRangeGetResult { // 参数 params := NewParamsWithType("pdd.ddk.order.list.range.get", notMustParams...) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response OrderListRangeGetResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.resource.url.gen.go b/service/pinduoduo/pdd.ddk.resource.url.gen.go index 5f74d412..d12b0ffd 100644 --- a/service/pinduoduo/pdd.ddk.resource.url.gen.go +++ b/service/pinduoduo/pdd.ddk.resource.url.gen.go @@ -51,12 +51,12 @@ func NewResourceUrlGenResult(result ResourceUrlGenResponse, body []byte, http go // ResourceUrlGen 生成多多进宝频道推广 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.pid.generate -func (app *App) ResourceUrlGen(notMustParams ...Params) *ResourceUrlGenResult { +func (c *Client) ResourceUrlGen(notMustParams ...Params) *ResourceUrlGenResult { // 参数 params := NewParamsWithType("pdd.ddk.resource.url.gen", notMustParams...) - params.Set("pid", app.Pid) + params.Set("pid", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response ResourceUrlGenResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.rp.prom.url.generate.go b/service/pinduoduo/pdd.ddk.rp.prom.url.generate.go index 84ca6ed4..94a8edf4 100644 --- a/service/pinduoduo/pdd.ddk.rp.prom.url.generate.go +++ b/service/pinduoduo/pdd.ddk.rp.prom.url.generate.go @@ -66,12 +66,12 @@ func NewRpPromUrlGenerateResult(result RpPromUrlGenerateResponse, body []byte, h // RpPromUrlGenerate 生成营销工具推广链接 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.rp.prom.url.generate -func (app *App) RpPromUrlGenerate(notMustParams ...Params) *RpPromUrlGenerateResult { +func (c *Client) RpPromUrlGenerate(notMustParams ...Params) *RpPromUrlGenerateResult { // 参数 params := NewParamsWithType("pdd.ddk.rp.prom.url.generate", notMustParams...) - params.Set("p_id_list", []string{app.Pid}) + params.Set("p_id_list", []string{c.config.Pid}) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response RpPromUrlGenerateResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.ddk.top.goods.list.query.go b/service/pinduoduo/pdd.ddk.top.goods.list.query.go index f2c047e5..f9624720 100644 --- a/service/pinduoduo/pdd.ddk.top.goods.list.query.go +++ b/service/pinduoduo/pdd.ddk.top.goods.list.query.go @@ -59,12 +59,12 @@ func NewTopGoodsListQueryResult(result TopGoodsListQueryResponse, body []byte, h // TopGoodsListQuery 多多客获取爆款排行商品接口 // https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.top.goods.list.query -func (app *App) TopGoodsListQuery(notMustParams ...Params) *TopGoodsListQueryResult { +func (c *Client) TopGoodsListQuery(notMustParams ...Params) *TopGoodsListQueryResult { // 参数 params := NewParamsWithType("pdd.ddk.top.goods.list.query", notMustParams...) - params.Set("p_id", app.Pid) + params.Set("p_id", c.config.Pid) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response TopGoodsListQueryResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.goods.cats.get.go b/service/pinduoduo/pdd.goods.cats.get.go index 34aac9ae..c85e86ca 100644 --- a/service/pinduoduo/pdd.goods.cats.get.go +++ b/service/pinduoduo/pdd.goods.cats.get.go @@ -29,13 +29,13 @@ func NewGoodsCatsGetResult(result GoodsCatsGetResponse, body []byte, http gorequ // GoodsCatsGet 商品标准类目接口 // https://open.pinduoduo.com/application/document/api?id=pdd.goods.cats.get -func (app *App) GoodsCatsGet(parentOptId int) *GoodsCatsGetResult { +func (c *Client) GoodsCatsGet(parentOptId int) *GoodsCatsGetResult { // 参数 param := NewParams() param.Set("parent_cat_id", parentOptId) params := NewParamsWithType("pdd.goods.cats.get", param) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsCatsGetResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/service/pinduoduo/pdd.goods.opt.get.go b/service/pinduoduo/pdd.goods.opt.get.go index d11afd9e..f847781b 100644 --- a/service/pinduoduo/pdd.goods.opt.get.go +++ b/service/pinduoduo/pdd.goods.opt.get.go @@ -29,13 +29,13 @@ func NewGoodsOptGetResult(result GoodsOptGetResponse, body []byte, http goreques // GoodsOptGet 查询商品标签列表 // https://open.pinduoduo.com/application/document/api?id=pdd.goods.opt.get -func (app *App) GoodsOptGet(parentOptId int) *GoodsOptGetResult { +func (c *Client) GoodsOptGet(parentOptId int) *GoodsOptGetResult { // 参数 param := NewParams() param.Set("parent_opt_id", parentOptId) params := NewParamsWithType("pdd.goods.opt.get", param) // 请求 - request, err := app.request(params) + request, err := c.request(params) // 定义 var response GoodsOptGetResponse err = json.Unmarshal(request.ResponseBody, &response)