diff --git a/modules/warorder/api_info.go b/modules/warorder/api_info.go index 968b3833c..354575a11 100644 --- a/modules/warorder/api_info.go +++ b/modules/warorder/api_info.go @@ -18,15 +18,16 @@ func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.WarorderInfoRe // /获取系统公告 func (this *apiComp) Info(session comm.IUserSession, req *pb.WarorderInfoReq) (errdata *pb.ErrorData) { var ( - confs []*cfg.GamePassCheckTaskData - info *pb.DBWarorders - warorder *pb.Warorder - dwarorder *pb.DreamWarorder - activity *pb.DBHuodong - condiIds []int32 - progress []*pb.ConIProgress - err error - ok bool + confs map[int32]*cfg.GamePassCheckTaskData + info *pb.DBWarorders + warorder *pb.Warorder + dwarorder *pb.DreamWarorder + activity *pb.DBHuodong + condiIds []int32 + progress []*pb.ConIProgress + activation []int32 = make([]int32, 0) + err error + ok bool ) if errdata = this.InfoCheck(session, req); errdata != nil { return @@ -74,13 +75,23 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.WarorderInfoReq) (e if dwarorder, ok = info.Dreamwarorder[req.Rtype]; !ok { dwarorder = &pb.DreamWarorder{ - Lv: 1, + Lv: 1, + Opentime: activity.Stime, + Endtime: activity.Etime, + Freeprogress: 0, + Payprogress: 0, } info.Dreamwarorder[req.Rtype] = dwarorder + for _, v := range confs { + if v.Page == 3 { + activation = append(activation, v.Parameter) + } + } } if dwarorder.Opentime != activity.Stime { dwarorder.Opentime = activity.Stime dwarorder.Endtime = activity.Etime + dwarorder.Freeprogress = 0 dwarorder.Payprogress = 0 } @@ -88,20 +99,31 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.WarorderInfoReq) (e daynum := this.module.ModuleTools.GetGlobalConf().Passcheck4DayNum this.module.model.refreshDayTask(dwarorder, confs, daynum) dwarorder.Daytime = configure.Now().Unix() - + for _, v := range dwarorder.Daytasks { + activation = append(activation, confs[v].Parameter) + } } if !utils.IsSameWeek(dwarorder.Weektime) { weeknum := this.module.ModuleTools.GetGlobalConf().Passcheck4WeekNum this.module.model.refreshWeekTask(dwarorder, confs, weeknum) dwarorder.Weektime = configure.Now().Unix() + for _, v := range dwarorder.Weektasks { + activation = append(activation, confs[v].Parameter) + } + } + + if len(activation) > 0 { + if errdata = this.module.ModuleBuried.ActiveCondition(session.GetUserId(), activation...); errdata != nil { + return + } } condiIds = make([]int32, 0) for _, v := range dwarorder.Daytasks { - condiIds = append(condiIds, v) + condiIds = append(condiIds, confs[v].Parameter) } for _, v := range dwarorder.Weektasks { - condiIds = append(condiIds, v) + condiIds = append(condiIds, confs[v].Parameter) } for _, v := range confs { @@ -110,14 +132,14 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.WarorderInfoReq) (e } } - // if progress, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), condiIds...); err != nil { - // errdata = &pb.ErrorData{ - // Code: pb.ErrorCode_ExternalModule, - // Title: pb.ErrorCode_ExternalModule.ToString(), - // Message: err.Error(), - // } - // return - // } + if progress, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), condiIds...); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ExternalModule, + Title: pb.ErrorCode_ExternalModule.ToString(), + Message: err.Error(), + } + return + } } if err = this.module.model.updateUserWarorders(session.GetUserId(), info); err != nil { errdata = &pb.ErrorData{ diff --git a/modules/warorder/configure.go b/modules/warorder/configure.go index 434e8cd1c..d88d69d33 100644 --- a/modules/warorder/configure.go +++ b/modules/warorder/configure.go @@ -137,14 +137,14 @@ func (this *configureComp) updatePassCheckExp() { } // 读取任务配置表 -func (this *configureComp) getGamePassCheckTask() (confs []*cfg.GamePassCheckTaskData, err error) { +func (this *configureComp) getGamePassCheckTask() (confs map[int32]*cfg.GamePassCheckTaskData, err error) { var ( v interface{} ) if v, err = this.GetConfigure(game_passchecktask); err != nil { return } else { - confs = v.(*cfg.GamePassCheckTask).GetDataList() + confs = v.(*cfg.GamePassCheckTask).GetDataMap() } return } diff --git a/modules/warorder/modelWarorder.go b/modules/warorder/modelWarorder.go index eeb946323..4e80d1598 100644 --- a/modules/warorder/modelWarorder.go +++ b/modules/warorder/modelWarorder.go @@ -82,7 +82,7 @@ func (this *modelWarorder) updateUserWarorders(uid string, data *pb.DBWarorders) } //刷新日常任务 -func (this *modelWarorder) refreshDayTask(info *pb.DreamWarorder, confs []*cfg.GamePassCheckTaskData, num int32) { +func (this *modelWarorder) refreshDayTask(info *pb.DreamWarorder, confs map[int32]*cfg.GamePassCheckTaskData, num int32) { var ( tasks []*cfg.GamePassCheckTaskData = make([]*cfg.GamePassCheckTaskData, 0) weight []int32 = make([]int32, 0) @@ -104,7 +104,7 @@ func (this *modelWarorder) refreshDayTask(info *pb.DreamWarorder, confs []*cfg.G } //刷新日常任务 -func (this *modelWarorder) refreshWeekTask(info *pb.DreamWarorder, confs []*cfg.GamePassCheckTaskData, num int32) { +func (this *modelWarorder) refreshWeekTask(info *pb.DreamWarorder, confs map[int32]*cfg.GamePassCheckTaskData, num int32) { var ( tasks []*cfg.GamePassCheckTaskData = make([]*cfg.GamePassCheckTaskData, 0) weight []int32 = make([]int32, 0)