This commit is contained in:
suyl
2021-04-26 11:44:59 +08:00
parent 29acc9232f
commit 8600f85a8f
10 changed files with 125 additions and 14 deletions

View File

@@ -3,6 +3,7 @@ package cms
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"git.rosy.net.cn/baseapi/platformapi/tbunionapi"
"math" "math"
"strings" "strings"
"sync" "sync"
@@ -1970,17 +1971,45 @@ func ShareUnionLink(ctx *jxcontext.Context, jobID, shareType, linkType int) (lin
job = &model.Job{} job = &model.Job{}
db = dao.GetDB() db = dao.GetDB()
sid string //推广位ID美团为userID淘宝饿了么本地化暂时是固定的京西推广位IDpdd为表中推广位ID sid string //推广位ID美团为userID淘宝饿了么本地化暂时是固定的京西推广位IDpdd为表中推广位ID
userID = ctx.GetUserID()
userBinds []*model.UserUnionBind
) )
job.ID = jobID job.ID = jobID
if err = dao.GetEntity(db, job); err != nil { if err = dao.GetEntity(db, job); err != nil {
return "", err return "", err
} }
vendorID := job.VendorID
handler := partner.GetHandler(vendorID)
//1、建推广位本地和平台 //1、建推广位本地和平台
if userBinds, err = dao.GetUserUnionBind(db, userID, vendorID); err != nil {
return "", err
}
//本地已有推广位
if len(userBinds) > 0 {
sid = userBinds[0].UnionID
} else {
userBind := &model.UserUnionBind{
UserID: userID,
VendorID: vendorID,
}
dao.WrapAddIDCULDEntity(userBind, ctx.GetUserName())
if handler != nil {
if sid, err = handler.CreateUnionPosition(ctx, userID); err == nil {
if sid == "" {
sid = userID
if vendorID == model.VendorIDTB {
sid = utils.Int2Str(tbunionapi.JxAdzoneID)
}
}
}
}
userBind.UnionID = sid
dao.CreateEntity(db, userBind)
}
//2、分享链接 //2、分享链接
if handler := partner.GetHandler(job.VendorID); handler != nil { if handler != nil {
link, err = handler.ShareUnionLink(ctx, linkType, job.UnionActID, sid, ctx.GetUserID()) if link, err = handler.ShareUnionLink(ctx, linkType, job.UnionActID, sid, userID); err == nil {
if job.VendorID == model.VendorIDMTWM || job.VendorID == model.VendorIDTB { if vendorID == model.VendorIDMTWM || vendorID == model.VendorIDTB {
if linkType == partner.LinkTypeWeiXinMini { if linkType == partner.LinkTypeWeiXinMini {
if resBinary, _, err := jxutils.DownloadFileByURL(link + "?imageView2/1/w/150/h/150/q/75"); err == nil { if resBinary, _, err := jxutils.DownloadFileByURL(link + "?imageView2/1/w/150/h/150/q/75"); err == nil {
if downloadURL, err := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix())+link[strings.LastIndex(link, "/")+1:len(link)]); err == nil { if downloadURL, err := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix())+link[strings.LastIndex(link, "/")+1:len(link)]); err == nil {
@@ -1992,6 +2021,7 @@ func ShareUnionLink(ctx *jxcontext.Context, jobID, shareType, linkType int) (lin
} }
} }
} }
}
return link, err return link, err
} }

View File

@@ -17,7 +17,7 @@ func init() {
partner.HandlerMap[model.VendorIDJDShop] = unionHandler partner.HandlerMap[model.VendorIDJDShop] = unionHandler
} }
func (s *UnionHandler) ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, userID string) (link string, err error) { func (s *UnionHandler) ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, sID, userID string) (link string, err error) {
return "jds", err return "jds", err
} }
@@ -25,3 +25,7 @@ func (s *UnionHandler) ShareUnionLink(ctx *jxcontext.Context, linkType, unionAct
func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (actList []*partner.ActivityList, err error) { func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (actList []*partner.ActivityList, err error) {
return return
} }
func (s *UnionHandler) CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error) {
return sID, err
}

View File

@@ -44,3 +44,7 @@ func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (act
} }
return actList, err return actList, err
} }
func (s *UnionHandler) CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error) {
return sID, err
}

View File

@@ -47,6 +47,7 @@ func init() {
type UnionInterface interface { type UnionInterface interface {
ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, sID, userID string) (link string, err error) ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, sID, userID string) (link string, err error)
GetUnionActList(ctx *jxcontext.Context, actType int) (result []*ActivityList, err error) GetUnionActList(ctx *jxcontext.Context, actType int) (result []*ActivityList, err error)
CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error)
//GetUnionCouponList(ctx *jxcontext.Context) //GetUnionCouponList(ctx *jxcontext.Context)
} }

View File

@@ -1 +1,27 @@
package pdd package pdd
import (
"git.rosy.net.cn/baseapi/platformapi/pddapi"
"git.rosy.net.cn/jx-callback/business/jxstore/partner"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals/api"
)
type UnionHandler struct {
}
var (
unionHandler *UnionHandler
)
func init() {
partner.HandlerMap[model.VendorIDPDD] = unionHandler
}
func getAPI() (apiobj *pddapi.API) {
if configs, err := dao.QueryConfigs(dao.GetDB(), "pddunionCookie", model.ConfigTypeCookie, ""); err == nil {
api.PddAPI.SetCookieWithStr(configs[0].Value)
}
return api.PddAPI
}

View File

@@ -0,0 +1,18 @@
package pdd
import (
"git.rosy.net.cn/jx-callback/business/jxstore/partner"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
)
func (s *UnionHandler) ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, sID, userID string) (link string, err error) {
return link, err
}
func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (actList []*partner.ActivityList, err error) {
return actList, err
}
func (s *UnionHandler) CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error) {
return sID, err
}

View File

@@ -42,3 +42,7 @@ func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (act
} }
return actList, err return actList, err
} }
func (s *UnionHandler) CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error) {
return sID, err
}

View File

@@ -394,3 +394,21 @@ func GetUserAllWaitRealCashPrice(db *DaoDB, userID string) (price int, err error
err = GetRow(db, &result, sql, sqlParams) err = GetRow(db, &result, sql, sqlParams)
return result.Price, err return result.Price, err
} }
func GetUserUnionBind(db *DaoDB, userID string, vendorID int) (userBinds []*model.UserUnionBind, err error) {
sql := `
SELECT * FROM user_union_bind WHERE deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if userID != "" {
sql += " AND user_id = ?"
sqlParams = append(sqlParams, userID)
}
if vendorID != -1 {
sql += " AND vendor_id = ?"
sqlParams = append(sqlParams, vendorID)
}
err = GetRows(db, &userBinds, sql, sqlParams)
return userBinds, err
}

View File

@@ -267,3 +267,6 @@ mtUnionAppSecret = "84d390777ddf691ff092e744ba26bfdd"
tbUnionAppKey = "32724809" tbUnionAppKey = "32724809"
tbUnionAppSecret = "2c2bce02eab860d486f68aa59a0127d9" tbUnionAppSecret = "2c2bce02eab860d486f68aa59a0127d9"
pddAppKey = "f9d95aaf5856485eabf39588f69a86de"
pddAppSecret = "fa40c1fe356eebc1376ace1d2380ed44e553c602"

View File

@@ -1,6 +1,7 @@
package api package api
import ( import (
"git.rosy.net.cn/baseapi/platformapi/pddapi"
"git.rosy.net.cn/baseapi/platformapi/tbunionapi" "git.rosy.net.cn/baseapi/platformapi/tbunionapi"
"io/ioutil" "io/ioutil"
@@ -45,6 +46,7 @@ import (
var ( var (
MtUnionAPI *mtunionapi.API MtUnionAPI *mtunionapi.API
TbUnionAPI *tbunionapi.API TbUnionAPI *tbunionapi.API
PddAPI *pddapi.API
JdEclpAPI *jdeclpapi.API JdEclpAPI *jdeclpapi.API
JdShopAPI *jdshopapi.API JdShopAPI *jdshopapi.API
@@ -90,6 +92,7 @@ func init() {
func Init() { func Init() {
MtUnionAPI = mtunionapi.New(beego.AppConfig.DefaultString("mtUnionAppKey", ""), beego.AppConfig.DefaultString("mtUnionAppSecret", "")) MtUnionAPI = mtunionapi.New(beego.AppConfig.DefaultString("mtUnionAppKey", ""), beego.AppConfig.DefaultString("mtUnionAppSecret", ""))
TbUnionAPI = tbunionapi.New(beego.AppConfig.DefaultString("tbUnionAppKey", ""), beego.AppConfig.DefaultString("tbUnionAppSecret", "")) TbUnionAPI = tbunionapi.New(beego.AppConfig.DefaultString("tbUnionAppKey", ""), beego.AppConfig.DefaultString("tbUnionAppSecret", ""))
PddAPI = pddapi.New(beego.AppConfig.DefaultString("pddAppKey", ""), beego.AppConfig.DefaultString("pddAppSecret", ""))
if !beego.AppConfig.DefaultBool("disableJdEclp", false) { if !beego.AppConfig.DefaultBool("disableJdEclp", false) {
JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret"))