package model import ( "joybuywork/internal/plugins/jsonm" "joybuywork/internal/repository/mtype" "time" ) func (s *FissionCampaignVsSchedule) GetVsTeamIds() (val []int64) { _ = jsonm.StrUnmarshal(s.VsTeamIds, &val) return } func (s *FissionCampaignVsSchedule) SetVsTeamIds(val []int64) { s.VsTeamIds, _ = jsonm.ToSliceString(val) } func (s *FissionCampaignVsSchedule) GetOtherVote() (val []string) { _ = jsonm.StrUnmarshal(s.OtherVote, &val) return } func (s *FissionCampaignVsSchedule) SetOtherVote(val []string) { s.OtherVote, _ = jsonm.ToSliceString(val) } func (s *FissionCampaignVsSchedule) GetStatus() int32 { if s.IsSettlement == mtype.Yes { return mtype.FissionCampaignVsScheduleStatusSettlement } if (s.VoteStart == 0 && s.VoteEnd == 0) || s.VsAt == 0 { return mtype.FissionCampaignVsScheduleStatusNotFinish } now := time.Now().Unix() if s.VoteStart <= now && s.VoteEnd > now { return mtype.FissionCampaignVsScheduleStatusVote } if s.VoteStart > now { return mtype.FissionCampaignVsScheduleStatusWait } if s.IsSettlement == mtype.No && s.VsAt < now { return mtype.FissionCampaignVsScheduleStatusRunning } if s.IsSettlement == mtype.No && s.VsAt >= now { return mtype.FissionCampaignVsScheduleStatusWaitVs } return mtype.FissionCampaignVsScheduleStatusNotFinish } func (s *FissionCampaignVsSchedule) SetSettlement(val *mtype.FissionCampaignVsScheduleSettlement) { s.Settlement, _ = jsonm.ToObjString(val) } func (s *FissionCampaignVsSchedule) GetSettlement() (val mtype.FissionCampaignVsScheduleSettlement) { _ = jsonm.StrUnmarshal(s.Settlement, &val) return } func (s *FissionCampaignVsSchedule) GetOdds() (val string) { if s.OpenOdds == mtype.No { return "1" } slt := s.GetSettlement() if slt.WinType == mtype.FissionCampaignVsScheduleWinTypeDraw { return s.OddsDraw } if slt.WinType == mtype.FissionCampaignVsScheduleWinTypeWin { for i, v := range s.GetVsTeamIds() { if v != slt.WinTeamId { continue } switch i { case 0: return s.OddsLeft case 1: return s.OddsRight } } } return "1" }