This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user