// 匹配类型和参数,返回任务条件ID package rtask import cfg "go_dreamfactory/sys/configure/structs" func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { //只查询参数于配置相等的情况下设置condiId,否则返回0 if !soEqual(vals[0], cfg.Data1) { return } condiId = cfg.Id return } func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { if !soGreatEqual(vals[0], cfg.Data1) { return } condiId = cfg.Id return } func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { if !soLessEqual(vals[0], cfg.Data1) { return } condiId = cfg.Id return } // 与每个参数比较 // Deprecated func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { var ( err error paramLen int ) if paramLen, err = lenParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soEqual(vals[0], cfg.Data1) { return } case 2: if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) { return } case 3: if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) { return } case 4: if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) { return } case 5: if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(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 = lenParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soGreatEqual(vals[0], cfg.Data1) { return } case 2: if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) { return } case 3: if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) { return } case 4: if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) { return } case 5: if !(soGreatEqual(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 = lenParam(cfg, vals...); err != nil { return } switch paramLen { case 1: if !soLessEqual(vals[0], cfg.Data1) { return } case 2: if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) { return } case 3: if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) { return } case 4: if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) { return } case 5: if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(vals[4], cfg.Data5)) { return } default: return } condiId = cfg.Id return }