// package 更新任务触发后的数据更新 package rtask import ( "go_dreamfactory/pb" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" ) // 覆盖更新 func (this *ModelRtaskRecord) overrideUpdate(uid string, record *pb.DBRtaskRecord, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) { var paramLen int if paramLen, err = lenParam(cfg, vals...); err != nil { return err } if record.Vals == nil { record.Vals = make(map[int32]*pb.RtaskData) } if v, ok := record.Vals[cfg.Id]; ok { v.Data = hasUpdateData(paramLen, v, vals...) } else { data := &pb.RtaskData{ Rtype: cfg.Type, Data: toMap(vals...), Timestamp: configure.Now().Unix(), } record.Vals[cfg.Id] = data } return } // 累计更新 - 招募等 func (this *ModelRtaskRecord) addUpdate(uid string, record *pb.DBRtaskRecord, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) { if record.Vals == nil { record.Vals = make(map[int32]*pb.RtaskData) } //查找任务数据 if v, ok := record.Vals[cfg.Id]; ok { newArr := make([]int32, len(vals)) copy(newArr, vals) srcCount := v.Data[0] newArr[0] = srcCount + vals[0] v.Data = toMap(newArr...) v.Timestamp = configure.Now().Unix() } else { record.Vals[cfg.Id] = &pb.RtaskData{ Data: toMap(vals...), Rtype: cfg.Type, Timestamp: configure.Now().Unix(), } } return }