1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
昔念
2026-04-15 03:46:55 +08:00
parent 5f47bf0589
commit 5a7e20efec
2 changed files with 11 additions and 3 deletions

View File

@@ -110,7 +110,7 @@ func (m *PlayerInfo) SetTask(i int, status TaskStatus) error {
// GetTask 获取第 i 个任务的状态
func (m *PlayerInfo) GetTask(i int) TaskStatus {
i-- //下标减1
if i < 0 || i >= 2000 {
if i < 0 || i >= 4000 {
return Reserved
}

View File

@@ -110,11 +110,19 @@ func buildJSONBArrayAnyCondition(column string, values []uint32) (string, []any)
clauses := make([]string, 0, len(values)+1)
params := make([]any, 0, len(values)+1)
for _, value := range values {
clauses = append(clauses, fmt.Sprintf(`CAST(? AS text) = ANY(ARRAY(SELECT jsonb_array_elements_text(%s)))`, column))
clauses = append(clauses, fmt.Sprintf(
`EXISTS (SELECT 1 FROM jsonb_array_elements_text(CASE WHEN jsonb_typeof(%s) = 'array' THEN %s ELSE '[]'::jsonb END) AS elem WHERE elem = CAST(? AS text))`,
column,
column,
))
params = append(params, value)
}
clauses = append(clauses, fmt.Sprintf(`jsonb_array_length(%s) = ?`, column))
clauses = append(clauses, fmt.Sprintf(
`CASE WHEN jsonb_typeof(%s) = 'array' THEN jsonb_array_length(%s) ELSE -1 END = ?`,
column,
column,
))
params = append(params, len(values))
return strings.Join(clauses, " AND "), params