feat: 会员看原图
This commit is contained in:
parent
8b6d6a1435
commit
5a3ebbbb7c
|
@ -79,6 +79,11 @@ const (
|
|||
Deleted = 1 //已删除
|
||||
)
|
||||
|
||||
const (
|
||||
PermanentMember = 1 // 会员
|
||||
NoPermanentMember = 0 // 非会员
|
||||
)
|
||||
|
||||
// 默认login初始化配置
|
||||
const (
|
||||
OriginalLoginMid = -1
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue