go-common/app/interface/main/creative/http/app_submit.go
2019-04-22 18:49:16 +08:00

128 lines
3.1 KiB
Go

package http
import (
"context"
"strconv"
"time"
accmdl "go-common/app/interface/main/creative/model/account"
"go-common/app/interface/main/creative/model/archive"
"go-common/app/interface/main/creative/model/faq"
"go-common/app/interface/main/creative/model/watermark"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
"go-common/library/sync/errgroup"
)
func appArcDescFormat(c *bm.Context) {
params := c.Request.Form
ip := metadata.String(c, metadata.RemoteIP)
typeidStr := params.Get("typeid")
cpStr := params.Get("copyright")
lang := params.Get("lang")
// check user
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
typeid, err := strconv.ParseInt(typeidStr, 10, 16)
if typeid < 0 || err != nil {
typeid = 0
}
copyright, err := strconv.ParseInt(cpStr, 10, 16)
if copyright <= 0 || err != nil {
copyright = archive.CopyrightReprint
}
desc, length, err := arcSvc.DescFormatForApp(c, typeid, copyright, lang, ip)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"desc_length": length,
"desc_format": desc,
}, nil)
}
func appArchivePre(c *bm.Context) {
ip := metadata.String(c, metadata.RemoteIP)
params := c.Request.Form
plat := params.Get("platform")
lang := params.Get("lang")
if lang != "en" {
lang = "ch"
}
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
var (
err error
mf *accmdl.MyInfo
wm *watermark.Watermark
g = &errgroup.Group{}
ctx = context.TODO()
faqs = make(map[string]*faq.Faq)
recFriends []*accmdl.Friend
lotteryCheck bool
)
g.Go(func() error {
mf, err = accSvc.MyInfo(ctx, mid, ip, time.Now())
if err != nil {
log.Info("accSvc.MyInfo (%d) err(%v)", mid, err)
}
if mf != nil {
mf.Commercial = arcSvc.AllowCommercial(c, mid)
}
return nil
})
g.Go(func() error {
wm, err = wmSvc.WaterMark(ctx, mid)
if err != nil {
log.Info("wmSvc.WaterMark (%d) err(%+v) WaterMark(%+v)", mid, err, wm)
}
if len(wm.URL) == 0 {
wm.State = 1
}
return nil
})
g.Go(func() error {
faqs = faqSvc.Pre(ctx)
return nil
})
g.Go(func() error {
lotteryCheck, _ = dymcSvc.LotteryUserCheck(ctx, mid)
return nil
})
g.Go(func() error {
recFriends, _ = accSvc.RecFollows(ctx, mid)
return nil
})
g.Wait()
uploadinfo, _ := whiteSvc.UploadInfoForMainApp(mf, plat, mid)
mf.DymcLottery = lotteryCheck
c.JSON(map[string]interface{}{
"uploadinfo": uploadinfo,
"typelist": arcSvc.AppTypes(c, lang),
"myinfo": mf,
"arctip": arcSvc.ArcTip,
"activities": arcSvc.Activities(c),
"watermark": wm,
"fav": arcSvc.Fav(c, mid),
"tip": vsSvc.AppManagerTip,
"cus_tip": vsSvc.CusManagerTip,
// common data
"camera_cfg": appSvc.CameraCfg,
"module_show": arcSvc.AppModuleShowMap(mid, lotteryCheck),
"icons": appSvc.Icons(),
"faqs": faqs,
"rec_friends": recFriends,
}, nil)
}