// 匹配类型和参数,返回任务条件ID package rtask import cfg "go_dreamfactory/sys/configure/structs" // 与每个参数比较 func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { var ( err error paramLen int ) if paramLen, err = verifyParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soEqual(vals[0], cfg.Data1) { return } case 2: if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) { return } case 3: if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) { return } case 4: if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) { return } case 5: if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) { return } default: return } condiId = cfg.Id return } func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { var ( err error paramLen int ) if paramLen, err = verifyParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soGreatThan(vals[0], cfg.Data1) { return } case 2: if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) { return } case 3: if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) { return } case 4: if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) { return } case 5: if !(soGreatThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) { return } default: return } condiId = cfg.Id return } // 需要累加更新的查询 func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { var ( err error paramLen int ) if paramLen, err = verifyParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soLessThan(vals[0], cfg.Data1) { return } case 2: if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) { return } case 3: if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) { return } case 4: if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) { return } case 5: if !(soLessThan(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) { return } default: return } condiId = cfg.Id return }