@@ -0,0 +1,127 @@
|
||||
package moduleser
|
||||
|
||||
import (
|
||||
"91porn-server/app/appg"
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/constant/redisconst"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/models/v/marqueemod"
|
||||
"91porn-server/models/v/moduleconfmod"
|
||||
"91porn-server/models/v/modulesectionmod"
|
||||
"91porn-server/models/v/tagmod"
|
||||
"91porn-server/models/v/usermod"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type AnnouncementResp struct {
|
||||
//跑马灯
|
||||
Announcement []string `json:"announcement"`
|
||||
}
|
||||
|
||||
const (
|
||||
repeat = 5
|
||||
usualAnnouncements = `首充任意金额即送7天视频VIP,限时充值返利,最高返利10%,累计充值送大礼,最高赠送1688元,添加游戏专属土豆福利群@pfqipai,不定时发放惊喜大礼`
|
||||
activityAnnouncements = `限时抢购虎虎生威永久卡,金币视频五折折扣,免费赠送50张观影券 `
|
||||
)
|
||||
|
||||
// GetModuleAnnouncements 获取模块下的跑马灯
|
||||
func GetModuleAnnouncements() (AnnouncementResp, error) {
|
||||
marq, err := marqueemod.Get()
|
||||
if err != nil {
|
||||
return AnnouncementResp{}, err
|
||||
}
|
||||
res := AnnouncementResp{Announcement: make([]string, repeat)}
|
||||
for i := 0; i < repeat; i++ {
|
||||
res.Announcement[i] = marq.Content
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func GetPublishTag(uid uint64) (data *tagmod.TagInfoRes, err error) {
|
||||
user, err := usermod.FindUserByUID(uid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if user == nil || user.ID.IsZero() || user.HasLocked || user.HasBanned {
|
||||
return nil, errors.New("user is null")
|
||||
}
|
||||
|
||||
str, err := appg.Redis.Get(redisconst.PublishTagInfoCache)
|
||||
if err != nil {
|
||||
log.Warn(fmt.Sprintf("用户ID:%d;缓存获取广告列表信息异常:%v", uid, err))
|
||||
}
|
||||
|
||||
data = &tagmod.TagInfoRes{}
|
||||
if str != nil {
|
||||
if err = json.Unmarshal([]byte(*str), &data); err == nil {
|
||||
return
|
||||
}
|
||||
log.Warn(fmt.Sprintf("用户ID:%d;解析缓存数据异常:%v", uid, err))
|
||||
}
|
||||
|
||||
// 获取模块
|
||||
moduleConfs, err := moduleconfmod.GetModuleConfByType(moduleconfmod.Community)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var sId []primitive.ObjectID
|
||||
var tagIds []primitive.ObjectID
|
||||
for _, i := range moduleConfs {
|
||||
sId = append(sId, i.ID)
|
||||
}
|
||||
|
||||
sections, err := modulesectionmod.GetBySectionBySids(sId)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(sections) <= 0 {
|
||||
return
|
||||
}
|
||||
for _, s := range sections {
|
||||
if s.TagIds != nil && len(*s.TagIds) > 0 {
|
||||
tagIds = append(tagIds, *s.TagIds...)
|
||||
}
|
||||
}
|
||||
|
||||
if len(tagIds) <= 0 {
|
||||
return
|
||||
}
|
||||
tags, err := tagmod.FindOneTagByIds(tagIds)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
for _, t := range tags {
|
||||
info := tagmod.TagInfo{
|
||||
ID: t.ID,
|
||||
Description: t.Description,
|
||||
FollowCount: t.CollCount,
|
||||
Name: t.TagName,
|
||||
VidCount: t.VideoCount,
|
||||
PlayCount: t.TPlayCount,
|
||||
CoverImg: t.CoverImg,
|
||||
}
|
||||
data.List = append(data.List, info)
|
||||
}
|
||||
|
||||
common.Go(func() {
|
||||
if data != nil {
|
||||
d, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if err = appg.Redis.Set(redisconst.PublishTagInfoCache, d, 15*time.Minute); err != nil {
|
||||
log.Warn(fmt.Sprintf("用户ID:%d;保存缓存数据异常:%v", uid, err))
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user