Refactor query conditions to improve readability

and maintainability.
This commit is contained in:
2023-11-13 22:52:22 +08:00
parent de647cbe8f
commit e2b59f4fdf

View File

@@ -292,7 +292,12 @@ func main() {
// 拼接查询条件, 超级简洁写法 // 拼接查询条件, 超级简洁写法
var addCondition = func(conditions *strings.Builder, key, column string) { var addCondition = func(conditions *strings.Builder, key, column string) {
if values := QueryConditions(key); len(values) > 0 { if values := QueryConditions(key); len(values) > 0 {
conditions.WriteString(fmt.Sprintf(" AND %s IN (%s)", column, strings.Join(values, ","))) if conditions.Len() > 0 {
conditions.WriteString(" AND")
} else {
conditions.WriteString(" WHERE")
}
conditions.WriteString(fmt.Sprintf(" %s IN (%s)", column, strings.Join(values, ",")))
} }
} }
var conditions strings.Builder var conditions strings.Builder
@@ -315,14 +320,14 @@ func main() {
idsStr[i] = strconv.FormatInt(v, 10) idsStr[i] = strconv.FormatInt(v, 10)
} }
if len(idsStr) > 0 { if len(idsStr) > 0 {
conditions.WriteString(fmt.Sprintf(" AND id IN (%s)", strings.Join(idsStr, ","))) // 拼接查询条件 if conditions.Len() > 0 {
conditions.WriteString(" AND")
} else {
conditions.WriteString(" WHERE")
}
conditions.WriteString(fmt.Sprintf(" id IN (%s)", strings.Join(idsStr, ","))) // 拼接查询条件
} }
} }
if conditions.Len() > 0 {
conditionsStr := conditions.String()
conditionsStr = strings.Replace(conditionsStr, " AND", "", 1) // 去掉第一个 AND
conditionsStr = " WHERE" + conditionsStr // 拼接 WHERE
}
// 获取图片列表 // 获取图片列表
var images ListView var images ListView