检索精度 precision

This commit is contained in:
2024-11-16 23:10:53 +08:00
parent d3d68d4bb5
commit b32486305c

View File

@@ -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),
))
}
}