Merge pull request 'feat-IRONFANS-70' (#305) from feat-IRONFANS-70 into test
Reviewed-on: http://121.41.31.146:3000/wishpal_ironfan/service/pulls/305
This commit is contained in:
commit
cb592d0113
|
@ -180,6 +180,7 @@ var ErrCodeMsgMap = map[ErrCode]string{
|
||||||
ErrCodeZoneMomentSrvFail: "私密圈动态服务错误",
|
ErrCodeZoneMomentSrvFail: "私密圈动态服务错误",
|
||||||
ErrCodeZoneMomentNotExist: "私密圈动态不存在",
|
ErrCodeZoneMomentNotExist: "私密圈动态不存在",
|
||||||
ErrCodePaidZoneMomentCreateTimesReachedUpperbound: "付费动态不能多于免费动态",
|
ErrCodePaidZoneMomentCreateTimesReachedUpperbound: "付费动态不能多于免费动态",
|
||||||
|
ErrCodeZoneMomentImagesNotEnoughForEncryption: "预览图片数不得大于等于上传图片数",
|
||||||
|
|
||||||
ErrCodeZoneMomentThumbsUpSrvFail: "私密圈点赞服务错误",
|
ErrCodeZoneMomentThumbsUpSrvFail: "私密圈点赞服务错误",
|
||||||
ErrCodeZoneMomentThumbsUpNotExist: "私密圈点赞不存在",
|
ErrCodeZoneMomentThumbsUpNotExist: "私密圈点赞不存在",
|
||||||
|
@ -445,6 +446,7 @@ const (
|
||||||
ErrCodeZoneMomentSrvFail ErrCode = -34001 // 私密圈动态服务错误
|
ErrCodeZoneMomentSrvFail ErrCode = -34001 // 私密圈动态服务错误
|
||||||
ErrCodeZoneMomentNotExist ErrCode = -34002 // 私密圈动态不存在
|
ErrCodeZoneMomentNotExist ErrCode = -34002 // 私密圈动态不存在
|
||||||
ErrCodePaidZoneMomentCreateTimesReachedUpperbound ErrCode = -34003 // 私密圈付费动态创建次数已达上限
|
ErrCodePaidZoneMomentCreateTimesReachedUpperbound ErrCode = -34003 // 私密圈付费动态创建次数已达上限
|
||||||
|
ErrCodeZoneMomentImagesNotEnoughForEncryption ErrCode = -34004 // 私密圈图片贴图片数量少于可预览图片数
|
||||||
|
|
||||||
// ZoneMomentThumbsUp: 35xxx
|
// ZoneMomentThumbsUp: 35xxx
|
||||||
ErrCodeZoneMomentThumbsUpSrvOk ErrCode = ErrCodeOk
|
ErrCodeZoneMomentThumbsUpSrvOk ErrCode = ErrCodeOk
|
||||||
|
|
|
@ -549,7 +549,7 @@ func (s *Service) ApiCreateZoneMomentBusinessValidate(ctx *gin.Context, req *zon
|
||||||
ec = errcode.ErrCodeMomentSrvOk
|
ec = errcode.ErrCodeMomentSrvOk
|
||||||
|
|
||||||
pType := int64(0)
|
pType := int64(0)
|
||||||
switch util.DerefInt64(req.ZoneMoment.CType) {
|
switch req.ZoneMoment.GetCType() {
|
||||||
case consts.ZoneMomentCType_Free:
|
case consts.ZoneMomentCType_Free:
|
||||||
pType = consts.AccountPunishment_BlockFromCreatingFreeZoneMoment
|
pType = consts.AccountPunishment_BlockFromCreatingFreeZoneMoment
|
||||||
case consts.ZoneMomentCType_Paid:
|
case consts.ZoneMomentCType_Paid:
|
||||||
|
@ -563,7 +563,8 @@ func (s *Service) ApiCreateZoneMomentBusinessValidate(ctx *gin.Context, req *zon
|
||||||
EnsureSuchAccountPunishmentNotExist(req.GetBaseRequest().Mid, consts.AccountPunishment_BlockFromCreatingZoneMoment, _DefaultAccountPunishment.OpListByMidAndType).
|
EnsureSuchAccountPunishmentNotExist(req.GetBaseRequest().Mid, consts.AccountPunishment_BlockFromCreatingZoneMoment, _DefaultAccountPunishment.OpListByMidAndType).
|
||||||
EnsureSuchAccountPunishmentNotExist(req.GetBaseRequest().Mid, pType, _DefaultAccountPunishment.OpListByMidAndType).
|
EnsureSuchAccountPunishmentNotExist(req.GetBaseRequest().Mid, pType, _DefaultAccountPunishment.OpListByMidAndType).
|
||||||
EnsureZoneMomentCreateTimesNotReachedDailyUpperbound(_DefaultZoneMomentCreateTimes.OpGetAndUpdate, req.GetBaseRequest().Mid).
|
EnsureZoneMomentCreateTimesNotReachedDailyUpperbound(_DefaultZoneMomentCreateTimes.OpGetAndUpdate, req.GetBaseRequest().Mid).
|
||||||
EnsureAmongZoneMomentsPaidItemsLessThanFreeItems(_DefaultZoneMoment.OpCountByMidAndCType, req.GetBaseRequest().Mid, util.DerefInt64(req.CType)).
|
EnsureAmongZoneMomentsPaidItemsLessThanFreeItems(_DefaultZoneMoment.OpCountByMidAndCType, req.GetBaseRequest().Mid, req.ZoneMoment.GetCType()).
|
||||||
|
EnsureZoneMomentImagesEnoughForEncryption(req.ZoneMoment.GetMType(), req.ZoneMoment.MediaComp, req.ZoneMoment.GetMediaVisibleRange()).
|
||||||
Validate().
|
Validate().
|
||||||
Collect()
|
Collect()
|
||||||
ec, _ = resultList[0].(errcode.ErrCode)
|
ec, _ = resultList[0].(errcode.ErrCode)
|
||||||
|
|
|
@ -437,6 +437,23 @@ func (l *AuthBusinessValidator) EnsureZoneMomentCreateTimesNotReachedDailyUpperb
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *AuthBusinessValidator) EnsureZoneMomentImagesEnoughForEncryption(mType int64, media *dbstruct.MediaComponent, mediaVisibleRange int64) *AuthBusinessValidator {
|
||||||
|
l.oplist = append(l.oplist, func() {
|
||||||
|
|
||||||
|
if mType == consts.MediaTypeVideo {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(media.GetImageIds()) <= int(mediaVisibleRange) {
|
||||||
|
logger.Error("images of this zone moment are not enough for encryption")
|
||||||
|
l.ec = errcode.ErrCodeZoneMomentImagesNotEnoughForEncryption
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return l
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 执行校验
|
// 执行校验
|
||||||
func (a *AuthBusinessValidator) Validate() *AuthBusinessValidator {
|
func (a *AuthBusinessValidator) Validate() *AuthBusinessValidator {
|
||||||
a.BusinessValidateStream.Validate()
|
a.BusinessValidateStream.Validate()
|
||||||
|
|
|
@ -883,9 +883,13 @@ func (s *Service) utilUnThumbsZoneMoment(ctx *gin.Context, req *zonemomentproto.
|
||||||
|
|
||||||
// 加密未解锁身份的动态
|
// 加密未解锁身份的动态
|
||||||
func (s *Service) utilEncryptInaccessibleZoneMoment(vo *zonemomentproto.ApiZoneMomentVO) {
|
func (s *Service) utilEncryptInaccessibleZoneMoment(vo *zonemomentproto.ApiZoneMomentVO) {
|
||||||
if util.DerefInt64(vo.MType) == consts.MediaTypeImg {
|
if vo.GetMType() == consts.MediaTypeImg {
|
||||||
imageIds := vo.MediaComp.GetImageIds()
|
imageIds := vo.MediaComp.GetImageIds()
|
||||||
mediaVisibleRange := util.DerefInt64(vo.MediaVisibleRange)
|
mediaVisibleRange := vo.GetMediaVisibleRange()
|
||||||
|
// 为0也至少下发一张图片
|
||||||
|
if mediaVisibleRange == 0 {
|
||||||
|
mediaVisibleRange = 1
|
||||||
|
}
|
||||||
if len(imageIds) <= int(mediaVisibleRange) {
|
if len(imageIds) <= int(mediaVisibleRange) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -907,7 +911,7 @@ func (s *Service) utilFillIsZoneMomentUnlocked(vo *zonemomentproto.ApiZoneMoment
|
||||||
case consts.ZoneMomentCType_Paid:
|
case consts.ZoneMomentCType_Paid:
|
||||||
if vo.IsSuperfanshipUnlocked == consts.IsSuperfanshipUnlocked_Yes { // 超粉解锁
|
if vo.IsSuperfanshipUnlocked == consts.IsSuperfanshipUnlocked_Yes { // 超粉解锁
|
||||||
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
||||||
} else if util.DerefInt64(vo.IsIronfanVisible) == consts.IsIronfanVisible_Yes && vo.IsIronfanshipUnlocked == consts.IsIronfanshipUnlocked_Yes { // 铁粉可见
|
} else if vo.GetIsIronfanVisible() == consts.IsIronfanVisible_Yes && vo.IsIronfanshipUnlocked == consts.IsIronfanshipUnlocked_Yes { // 铁粉可见
|
||||||
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
||||||
} else if momentIdZmuMap[vo.ZoneMoment.GetId()].IsUnlock() { // 动态已购买
|
} else if momentIdZmuMap[vo.ZoneMoment.GetId()].IsUnlock() { // 动态已购买
|
||||||
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
vo.SetIsZoneMomentUnlocked(consts.IsZoneMomentUnlocked_Yes)
|
||||||
|
|
|
@ -67,6 +67,20 @@ func (p *ZoneMoment) GetCType() int64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *ZoneMoment) GetMediaVisibleRange() int64 {
|
||||||
|
if p != nil && p.MediaVisibleRange != nil {
|
||||||
|
return *p.MediaVisibleRange
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ZoneMoment) GetIsIronfanVisible() int64 {
|
||||||
|
if p != nil && p.IsIronfanVisible != nil {
|
||||||
|
return *p.IsIronfanVisible
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
func (p *ZoneMoment) GetUt() int64 {
|
func (p *ZoneMoment) GetUt() int64 {
|
||||||
if p != nil && p.Ut != nil {
|
if p != nil && p.Ut != nil {
|
||||||
return *p.Ut
|
return *p.Ut
|
||||||
|
|
Loading…
Reference in New Issue