This commit is contained in:
@@ -110,7 +110,7 @@ func (m *PlayerInfo) SetTask(i int, status TaskStatus) error {
|
|||||||
// GetTask 获取第 i 个任务的状态
|
// GetTask 获取第 i 个任务的状态
|
||||||
func (m *PlayerInfo) GetTask(i int) TaskStatus {
|
func (m *PlayerInfo) GetTask(i int) TaskStatus {
|
||||||
i-- //下标减1
|
i-- //下标减1
|
||||||
if i < 0 || i >= 2000 {
|
if i < 0 || i >= 4000 {
|
||||||
return Reserved
|
return Reserved
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,11 +110,19 @@ func buildJSONBArrayAnyCondition(column string, values []uint32) (string, []any)
|
|||||||
clauses := make([]string, 0, len(values)+1)
|
clauses := make([]string, 0, len(values)+1)
|
||||||
params := make([]any, 0, len(values)+1)
|
params := make([]any, 0, len(values)+1)
|
||||||
for _, value := range values {
|
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)
|
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))
|
params = append(params, len(values))
|
||||||
|
|
||||||
return strings.Join(clauses, " AND "), params
|
return strings.Join(clauses, " AND "), params
|
||||||
|
|||||||
Reference in New Issue
Block a user