package validevents import ( "joybuywork/internal/repository/model" "joybuywork/internal/repository/mtype" "joybuywork/internal/service/provider/players" ) type keep struct { base } func (s *keep) Event(user *model.FissionUser) (targetNum int32, setHelp bool, err error) { kg, err := players.NewKeepDog(s.Ctx, user) if err != nil { return } targetData, err := s._event(user, func(user *model.FissionUser, tasks []*model.FissionCampaignTask) (err error) { return kg.FinishTask(tasks...) }) if err != nil { return } targetNum = targetData.targetNum return } func (s *keep) Register(helper, beHelper *model.FissionUser) (setHelp bool, err error) { tasks, setHelp, err := s._getRegisterTasks(helper.CampaignID) if err != nil || len(tasks) == 0 { return } err = s._fixTaskDo(beHelper, helper.ID, tasks) if err != nil { return } return } func (s *keep) Install(helper, beHelper *model.FissionUser) (setHelp bool, err error) { tasks, setHelp, err := s._getInstallTasks(helper.CampaignID) if err != nil || len(tasks) == 0 { return } err = s._fixTaskDo(beHelper, helper.ID, tasks) if err != nil { return } return } // 用户固定事件任务 func (s *keep) _fixTaskDo(user *model.FissionUser, helperUserId int64, tasks []*model.FissionCampaignTask) (err error) { kg, err := players.NewKeepDog(s.Ctx, user) if err != nil { return } for _, task := range tasks { switch task.PropMark { case mtype.FissionCampaignTaskPropMarkChance: err = s._taskEffectDo(user, task, func() (err error) { return kg.EffectInvite(helperUserId) }) if err != nil { return } } } return s.hasChildInvite(user, helperUserId, nil) }