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 (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/tbunionapi"
"math"
"strings"
"sync"
@@ -1967,25 +1968,54 @@ func GetUnionActList(ctx *jxcontext.Context, vendorID, actType int) (actList []*
func ShareUnionLink(ctx *jxcontext.Context, jobID, shareType, linkType int) (link string, err error) {
var (
job = &model.Job{}
db = dao.GetDB()
sid string //推广位ID美团为userID淘宝饿了么本地化暂时是固定的京西推广位IDpdd为表中推广位ID
job = &model.Job{}
db = dao.GetDB()
sid string //推广位ID美团为userID淘宝饿了么本地化暂时是固定的京西推广位IDpdd为表中推广位ID
userID = ctx.GetUserID()
userBinds []*model.UserUnionBind
)
job.ID = jobID
if err = dao.GetEntity(db, job); err != nil {
return "", err
}
vendorID := job.VendorID
handler := partner.GetHandler(vendorID)
//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、分享链接
if handler := partner.GetHandler(job.VendorID); handler != nil {
link, err = handler.ShareUnionLink(ctx, linkType, job.UnionActID, sid, ctx.GetUserID())
if job.VendorID == model.VendorIDMTWM || job.VendorID == model.VendorIDTB {
if linkType == partner.LinkTypeWeiXinMini {
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 err == nil {
link = jxutils.MixWatermarkImg(downloadURL, job.UnionImg, job.UnionQrcodePosition)
if handler != nil {
if link, err = handler.ShareUnionLink(ctx, linkType, job.UnionActID, sid, userID); err == nil {
if vendorID == model.VendorIDMTWM || vendorID == model.VendorIDTB {
if linkType == partner.LinkTypeWeiXinMini {
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 err == nil {
link = jxutils.MixWatermarkImg(downloadURL, job.UnionImg, job.UnionQrcodePosition)
}
}
}
}