package validevents import ( "joybuywork/internal/repository/model" "joybuywork/internal/repository/mtype" "joybuywork/internal/service/provider/players" ) type cash struct { base addRecords []*model.FissionCashRecord } func (s *cash) Open(helper, beHelper *model.FissionUser) (setHelp bool, err error) { if !s.Req.NewUser { return } cashP, err := players.NewCash(s.Ctx, beHelper) if err != nil { return } err = cashP.InviteOne(helper.ID) if err != nil { return } return } func (s *cash) 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, tasks) if err != nil { return } return } func (s *cash) Install(helper, beHelper *model.FissionUser) (setHelp bool, err error) { tasks, setHelp, err := s._getInstallTasks(helper.CampaignID) if err != nil { return } err = s._fixTaskDo(beHelper, helper, tasks) if err != nil { return } return } func (s *cash) _fixTaskDo(user, helper *model.FissionUser, tasks []*model.FissionCampaignTask) (err error) { cashP, err := players.NewCash(s.Ctx, user) if err != nil { return } if s.Req.NewUser { err = cashP.InviteOne(helper.ID) if err != nil { return } } if len(tasks) == 0 { return } for _, task := range tasks { switch task.PropMark { case mtype.FissionCampaignTaskPropMarkChance: err = s._taskEffectDo(user, task, func() (err error) { return cashP.EffectInvite(helper.ID, task.Percent) }) if err != nil { return } } } return }