检索精度 precision
This commit is contained in:
@@ -778,19 +778,32 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
// 逗号分割且去除空格
|
||||
colors := strings.Split(strings.ReplaceAll(p.Args["color"].(string), " ", ""), ",")
|
||||
for index, color := range colors {
|
||||
|
||||
var precision int = 10
|
||||
if strings.Contains(color, ":") {
|
||||
re := regexp.MustCompile(`^#([0-9a-fA-F]{6}):(\d+)$`)
|
||||
matches := re.FindStringSubmatch(color)
|
||||
num, err := strconv.Atoi(matches[2])
|
||||
if err != nil {
|
||||
fmt.Println("数字精度转换失败:", err)
|
||||
return nil, err
|
||||
}
|
||||
precision = num
|
||||
}
|
||||
|
||||
r, g, b, err := hexToRGB(color)
|
||||
if err != nil {
|
||||
fmt.Println("hexToRGB", index, err)
|
||||
return nil, err
|
||||
}
|
||||
fmt.Println(color, r, g, b)
|
||||
fmt.Println(color, r, g, b, precision)
|
||||
query = query.Where(goqu.And(
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_r", index)).Gt(r-10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_r", index)).Lt(r+10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_g", index)).Gt(g-10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_g", index)).Lt(g+10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_b", index)).Gt(b-10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_b", index)).Lt(b+10),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_r", index)).Gt(r-precision),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_r", index)).Lt(r+precision),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_g", index)).Gt(g-precision),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_g", index)).Lt(g+precision),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_b", index)).Gt(b-precision),
|
||||
goqu.L(fmt.Sprintf("web_images.color_%d_b", index)).Lt(b+precision),
|
||||
))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user