feat: 会员看原图

This commit is contained in:
wangxinyu 2024-12-13 17:42:12 +08:00
parent 8b6d6a1435
commit 5a3ebbbb7c
4 changed files with 45 additions and 4 deletions

View File

@ -79,6 +79,11 @@ const (
Deleted = 1 //已删除
)
const (
PermanentMember = 1 // 会员
NoPermanentMember = 0 // 非会员
)
// 默认login初始化配置
const (
OriginalLoginMid = -1

View File

@ -88,6 +88,13 @@ func (p *Account) GetRole() int64 {
return *p.Role
}
func (p *Account) GetIsAMember() int64 {
if p == nil || p.IsAMember == nil {
return 0
}
return *p.IsAMember
}
// StreamerAcct 用户结构
type StreamerAcct struct {
Mid *int64 `json:"mid" bson:"_id"` // 用户表Id

View File

@ -3,7 +3,9 @@ package mediafiller
import (
"encoding/json"
"math/rand"
accountproto "service/api/proto/account/proto"
"service/api/proto/gateway/proto"
"service/app/mix/service/logic"
"service/dbstruct"
"service/library/logger"
"time"
@ -20,7 +22,10 @@ func init() {
rand.Seed(time.Now().Unix())
}
var defaultMediaFiller *MediaFiller
var (
defaultMediaFiller *MediaFiller
_DefaultAccount *logic.Account
)
type GetImageByIdsFunc func(ctx *gin.Context, ids []int64) ([]*dbstruct.Image, error)
type GetVideoByIdsFunc func(ctx *gin.Context, ids []int64) ([]*dbstruct.Video, error)
@ -91,12 +96,21 @@ func FillEntity(ctx *gin.Context, entity MediaFillable) error {
return err
}
// 获取用户付费状态
account, err := _DefaultAccount.OpListByMid(ctx, &accountproto.OpListByMidReq{
Mid: &baseReq.Mid,
})
if err != nil {
logger.Error("FillEntity mediafiller component opListByMid failed : %v", err)
return err
}
images := make([]*dbstruct.ToCImage, 0)
videos := make([]*dbstruct.ToCVideo, 0)
for _, imageId := range imageIds {
if image, ok := imageMap[imageId]; ok {
images = append(images, transToCImage(image))
images = append(images, transToCImage(image, account.GetIsAMember()))
}
}
for _, videoId := range videoIds {
@ -151,13 +165,22 @@ func FillList(ctx *gin.Context, list []MediaFillable) error {
return err
}
// 获取用户付费状态
account, err := _DefaultAccount.OpListByMid(ctx, &accountproto.OpListByMidReq{
Mid: &baseReq.Mid,
})
if err != nil {
logger.Error("FillEntity mediafiller component opListByMid failed : %v", err)
return err
}
for _, v := range list {
images := make([]*dbstruct.ToCImage, 0)
videos := make([]*dbstruct.ToCVideo, 0)
for _, imageId := range v.GetImageIds() {
if image, ok := imageMap[imageId]; ok {
images = append(images, transToCImage(image))
images = append(images, transToCImage(image, account.GetIsAMember()))
}
}
for _, videoId := range v.GetVideoIds() {

View File

@ -1,6 +1,7 @@
package mediafiller
import (
"service/api/consts"
"service/dbstruct"
"service/library/logger"
@ -42,7 +43,7 @@ func getVideoMapByIds(ctx *gin.Context, ids []int64) (map[int64]*dbstruct.Video,
}
// todo
func transToCImage(image *dbstruct.Image) *dbstruct.ToCImage {
func transToCImage(image *dbstruct.Image, isAMember int64) *dbstruct.ToCImage {
if image == nil {
return nil
}
@ -50,6 +51,11 @@ func transToCImage(image *dbstruct.Image) *dbstruct.ToCImage {
// 选择内存最小的图片
imgSrcId := image.SelectMinSizeOssId()
// 会员可以查看原图
if isAMember == consts.PermanentMember {
imgSrcId = ""
}
return &dbstruct.ToCImage{
Id: image.Id,
W: image.W,