diff --git a/app/mix/dao/elasticsearch.go b/app/mix/dao/elasticsearch.go index bc09c239..a3148f8e 100644 --- a/app/mix/dao/elasticsearch.go +++ b/app/mix/dao/elasticsearch.go @@ -51,11 +51,9 @@ func (es *ElasticSearch) getIndexStreamerAcct() string { func (es *ElasticSearch) CreateStreamerAcct(ctx *gin.Context, streameraccts []*dbstruct.EsStreamerAcct) error { bulk := es.clientMix.Bulk().Index(es.getIndexStreamerAcct()).Refresh("true") for _, streameracct := range streameraccts { - bulk.Add(elastic.NewBulkCreateRequest().Doc(streameracct)) + bulk.Add(elastic.NewBulkCreateRequest().Id(fmt.Sprint(streameracct.Mid)).Doc(streameracct)) } - logger.Info("bulk: %v", bulk) - rsp, err := bulk.Do(ctx) - logger.Info("rsp: %v", rsp) + _, err := bulk.Do(ctx) return err } diff --git a/app/mix/service/business_validator/auth.go b/app/mix/service/business_validator/auth.go index 7bd57cbf..5ad46988 100644 --- a/app/mix/service/business_validator/auth.go +++ b/app/mix/service/business_validator/auth.go @@ -703,6 +703,24 @@ func (l *AuthBusinessValidator) EnsureMediaIsSuccessfullyUploaded(media *dbstruc return l } +func (l *AuthBusinessValidator) EnsureZoneThirdPartnerIsNotZoneCreater(fun func(*gin.Context, int64) (*dbstruct.Zone, error), zid int64, ztpMid int64) *AuthBusinessValidator { + + l.oplist = append(l.oplist, func() { + // 查询空间 + zone, err := fun(l.ctx, zid) + if err != nil { + logger.Error("Zone GetById fail, err: %v", err) + l.ec = errcode.ErrCodeZoneSrvFail + return + } + if zone.GetMid() == ztpMid { + l.ec = errcode.ErrCodeZoneThirdPartnerWrongThirdPartner + return + } + }) + return l +} + // 执行校验 func (a *AuthBusinessValidator) Validate() *AuthBusinessValidator { a.BusinessValidateStream.Validate() diff --git a/app/mix/service/opservice_business_validation.go b/app/mix/service/opservice_business_validation.go index 944eb6c9..2322ff7c 100644 --- a/app/mix/service/opservice_business_validation.go +++ b/app/mix/service/opservice_business_validation.go @@ -1501,3 +1501,21 @@ func (s *Service) OpUpdateZoneMomentBusinessValidate(ctx *gin.Context, req *zone return } + +// 代运营 +func (s *Service) OpCreateZoneThirdPartnerBusinessValidate(ctx *gin.Context, req *zone_third_partner_proto.OpCreateReq) (ec errcode.ErrCode) { + ec = errcode.ErrCodeZoneThirdPartnerSrvOk + + // 1.鉴权校验 + result := businessvalidator.NewAuthBusinessValidator(ctx, req). + EnsureZoneThirdPartnerIsNotZoneCreater(_DefaultZone.GetById, req.ZoneThirdPartner.GetZid(), req.ZoneThirdPartner.GetThirdPartnerMid()). + Validate(). + Collect() + ec, _ = result[0].(errcode.ErrCode) + if ec != errcode.ErrCodeOk { + logger.Error("OpCreateZoneThirdPartner business validation failed!") + return + } + + return +} diff --git a/app/mix/service/service.go b/app/mix/service/service.go index b0ca23e8..a06d72de 100644 --- a/app/mix/service/service.go +++ b/app/mix/service/service.go @@ -3754,6 +3754,10 @@ func (s *Service) OpSetPrivateZoneMoment(ctx *gin.Context, req *zonemomentproto. func (s *Service) OpCreateZoneThirdPartner(ctx *gin.Context, req *zone_third_partner_proto.OpCreateReq) (ec errcode.ErrCode) { ec = errcode.ErrCodeZoneThirdPartnerSrvOk + if ec = s.OpCreateZoneThirdPartnerBusinessValidate(ctx, req); ec != errcode.ErrCodeZoneThirdPartnerSrvOk { + return + } + err := _DefaultZoneThirdPartner.OpCreate(ctx, req) if err != nil { logger.Error("OpCreate fail, req: %v, err: %v", util.ToJson(req), err)