package activity import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "go_dreamfactory/utils" ) //参数校验 func (this *apiComp) GetHdDataCheck(session comm.IUserSession, req *pb.ActivityGetHdDataReq) (errdata *pb.ErrorData) { return } // 活动活动 func (this *apiComp) GetHdData(session comm.IUserSession, req *pb.ActivityGetHdDataReq) (errdata *pb.ErrorData) { var ( result []*pb.DBActivityData activity *pb.DBHuodong err error ) curTime := configure.Now().Unix() for _, id := range req.Oid { if activity, err = this.module.modelhdList.getHdListByHdId(id); err != nil { if activity.Stime > curTime || curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 continue } } //key := fmt.Sprintf("%s-%s", session.GetUserId(), id) list, _ := this.module.modelhdData.getHddataByOid(session.GetUserId(), id) if activity.Itype == comm.HdTypeSign && !utils.IsToday(list.Lasttime) { list.Lasttime = curTime list.Val += 1 update := make(map[string]interface{}) update["lasttime"] = list.Lasttime update["val"] = list.Val this.module.modelhdData.ModifyActivityList(session.GetUserId(), list.Id, update) } // 开服等级活动 if activity.Itype == comm.HdLevel { if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { if list.Val != user.Lv { list.Val = user.Lv list.Lasttime = curTime update := make(map[string]interface{}) update["lasttime"] = list.Lasttime update["val"] = list.Val this.module.modelhdData.ModifyActivityList(session.GetUserId(), list.Id, update) } } } // 获取开服庆典活动 if activity.Itype == comm.HdCelebration { // key := fmt.Sprintf("%s-%s", session.GetUserId(), id) if data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), id); err == nil { // 注意 Gotarr:map[int32]int32 key value 已经挑战的次数 if !utils.IsToday(data.Lasttime) { // 不是今天重置 data.Lasttime = configure.Now().Unix() data.Gotarr = make(map[int32]int32) // 计算进度 data.Val = int32((configure.Now().Unix()-activity.Stime)/24*3600) + 1 update := make(map[string]interface{}) update["lasttime"] = data.Lasttime update["val"] = data.Val update["gotarr"] = data.Gotarr this.module.modelhdData.ModifyActivityList(session.GetUserId(), data.Id, update) result = append(result, data) } else { // 第一次进入 _sub := (configure.Now().Unix() - activity.Stime) data.Val = int32(_sub/(24*3600)) + 1 update := make(map[string]interface{}) update["val"] = data.Val this.module.modelhdData.ModifyActivityList(session.GetUserId(), data.Id, update) } } } result = append(result, list) } session.SendMsg(string(this.module.GetType()), "gethddata", &pb.ActivityGetHdDataResp{ Data: result, }) return }