128 lines
2.9 KiB
Go
128 lines
2.9 KiB
Go
// 匹配类型和参数,返回任务条件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
|
||
}
|