# 查询条件用法

## 请求参数

名称 | 类型 | 必填 | 描述
---|---|---|---
filter | multi_filter_condition | 是 | 查询条件
conditions | filter_condition\[\] | 是 | 比较表达式列表，内容如 base_info.mobile eq `"\"+8613000000001\""`的比较条件，多个表达式之间的关系为且。<br>**数据校验规则**：<br>- 长度范围：`0` ～ `10`
field | string | 是 | 筛选条件的左值，值为字段的参数名称。可选的筛选条件见下文 **支持查询的条件** 章节。<br>**示例值**："base_info.mobile"
operator | string | 是 | 比较操作符。可选值有：<br>- eq：等于，支持任何类型的左值<br>- in：属于任一<br>**示例值**："eq"
value | string | 是 | 筛选条件的右值，为转义后的json字符串。<br>- eq匹配字符串，使用 `"\"str\""`<br>- in匹配字符串列表，使用 `"[\"str\"]"`<br>- eq匹配数字列表，使用 `"123"`<br>- in匹配数字列表，使用 `"[123]"`<br>**示例值**："`\"8619922333322\"`"

## 请求示例
```json 
 {
    "filter": {
        "conditions": [
            {
                "field": "work_info.mobile",
                "operator": "eq",
                "value": "\"+8613000000001\""
            },
          	{
                "field": "work_info.staff_status",
                "operator": "eq",
                "value": "1"
            },
            {
                "field": "base_info.departments.department_id",
                "operator": "in",
                "value": "[\"77a83513ge4c9f91\"]"
            }
        ]
    }
}
``` 
## 支持查询的条件
| 对象         | 筛选条件的左值(field)   | 左值类型              | 支持的操作符(operator)       | 筛选条件的右值(value) | 描述        |
| --------- | --------------- | ----   | ----   |----------------- | --------- |
|员工 | `base_info.mobile`| string   | `eq`  | `\"+8613000000001\"` | 按照手机号筛选 |
|员工 | `base_info.mobile`| string | `in`  | `[\"+8613000000000\", \"+8613000000002\"]` | 按照手机号筛选 |
|员工 | `base_info.email`| string   | `eq`  | `\"111@163.com\"` | 按照邮箱筛选 |
|员工 | `base_info.email`| string | `in`  | `[\"111@163.com\", \"222@163.com\"]` | 按照邮箱筛选 |
|员工 | `work_info.job_number`| string   | `eq`  | `\"qwert\"` | 按照工号筛选 |
|员工 | `work_info.job_number`| string | `in`  | `[\"qwert\", \"yuiop\"]` | 按照工号筛选 |
|员工 | `work_info.staff_status`| int   | `eq`  | `1` | 按照员工人事状态筛选(1-5)，**需配合部门ID组合查询**，在职状态(1)、暂不支持离职状态(2)、待入职状态(3)、取消入职状态(4)、待离职状态(5)筛选 |
|员工 | `base_info.departments.department_id`| string | `eq`  | `\"33wqwdsa\"` | 按照部门ID筛选，需**配合人事状态**组合查询 |
|员工 | `base_info.departments.department_id`| string | `in`  | `[\"33wqwdsa\"]` | 按照部门ID筛选，需**配合人事状态**组合查询 |
|部门 | `parent_department_id`| string   | `eq`  | `\"33wqwdsa\"` | 按照父部门ID筛选 |
|部门 | `parent_department_id`| string | `in`  | `[\"33wqwdsa\",\"33wqwdsb\"]` | 按照父部门ID筛选 |

### 右值说明
- 当左值为int类型且操作符为eq时，值为int字符串,即`"1"`
- 当左值为int类型操作符为in时，值为int数组序列化后的值，即`"[1,2]"`
- 当左值为string类型且操作符为eq时，值为string序列化后的字符串,即`"\"1\""`
- 当左值为string类型操作符为in时，值为string数组序列化后的值，即`"[\"1\",\"2\"]"`

