1. 设备台账管理API

API列表

编号 API名称 路径 版本
1.0 加载参数及部件信息 /v1/iot/device/stock/load/info 1.0
1.1 新增台账 /v1/iot/device/stock/new 1.0
1.2 台账更新 /v1/iot/device/stock/edit 1.0
1.3 台账分页查询 /v1/iot/device/stock/page-list 1.0
1.4 台账明细 /v1/iot/device/stock/detail 1.0
1.5 台账报停 /v1/iot/device/stock/quit 1.0
1.6 台账批量报停 /v1/iot/device/stock/bat-quit 1.0
1.7 台账报废 /v1/iot/device/stock/scrap 1.0
1.8 台账批量报废 /v1/iot/device/stock/bat-scrap 1.0
1.9 批量导入 /v1/iot/device/stock/import 1.0
2.0 批量导出 /v1/iot/device/stock/export 1.0
2.1 删除 /v1/iot/device/stock/remove 1.0
2.2 恢复 /v1/iot/device/stock/revert 1.0
2.3 项目选择框 /v1/iot/main/customer/house/relation/query/communitys 1.0
2.4 空间选择框 /v1/iot/main/customer/house/relation/query/space 1.0
2.5 启动 /v1/iot/device/stock/start 1.0
2.5 分类树形列表 /v1/iot/device/setting/tree 1.0

API调用

1.0: 加载参数及部件信息

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/load/info

方法:POST

请求参数

名称 位置 类型 必填 描述
typeId body Integer y 设备分类id
spaceCode body Integer y 项目id

请求Body描述(非Form表单数据)

{
    typeId:'123',
    spaceCode:'12233'
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 返回数据
figureType data int y 编码类型
name data String y 设备名
unit data String y 数量单位
domainSystem String JSONArray y 专业系统
params data JSONArray y 参数信息
typeId params int y 分类id
fieldId params int y 字段id
fieldName params String y 字段类型
fieldType params String y text,number,date,select
selectValue params String N 如果是fieldType是select,该值为下拉框的枚举值
notNull params int y 参数是否必填1:是, 2:否
parts data Array y 部件信息
typeId parts int y 分类id
partName parts String y 名称
返回结果示例
{
    "code": 200,
    "data": {
        "typeName": "测试090989",
        "updateTime": null,
        "dir": "279-280-304",
        "params": [
            {
                "fieldName": "电机大小种类",
                "notNull": 1,
                "selectValue": "",
                "id": 2,
                "fieldType": "text",
                "orgId": "1",
                "fieldId": 2
            }
        ],
        "name": "风扇鑫111",
        "orgId": "50541",
        "typeCode": "CSYRENAME-`CS1.1RENAME-3",
        "createBy": null,
        "unit": "个",
        "createTime": "2021-10-13 08:53:19",
        "updateBy": null,
        "domainSystem": "测试一rename-`测试1.1rename",
        "figureType": 1,
        "parts": [],
        "id": 46,
        "settingId": 304
    },
    "message": "success"
}

API调用

1.1: 新增台账

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/new

方法:POST

请求参数

名称 位置 类型 必填 描述
typeId body Integer y 设备分类id
orgId body String y 业务组织id
typeName body String y 设备分类名称
domainSystem body String y 专业系统
spacePos body int y 空间位置
spacePosCode body String y 空间位置编号
netPos body int n 网络位置
brand body String N 品牌
model body String N 型号
spaceName body String N 项目
spaceCode body String N 项目id
figureType body int N 编码类型 ,1:一位一码、2:一类一码
count body int Y 数量
posMark body String n 位置描述
name body String y 设备名称
params body Array y 参数信息
startTime body date Y 启动时间
expireTime body date Y 质保时限
fieldName params String y 字段类型
fieldType params String y text,number,date,select
selectValue params String N 如果是fieldType是select,该值为下拉框的枚举值
notNull params int y 参数是否必填1:是, 2:否
paramValue params String N 参数值
parts body Array y 部件信息
partValue parts String Y 部件文案
partName parts String Y 部件名

请求Body描述(非Form表单数据)

{
  typeId:,
  typeName:“生活水泵”,
  spacePos:"1栋1单元1层",
  spacePosCode:'11011011010101010122',
  orgId : "123",
  netPos:"中国电信广东",
spaceName:'1号公馆',
spaceCode:'11110222',
  posMark:"xxx",  
  name:"风扇",
"brand": "品牌1",
"model":"型号a",
"figureType", 1,
"count": 23,
  startTime : '2020-01-02',
  expireTime : '2023-01-02',
    params:[{
            "fieldId":"11",
            "paramValue":"xx牌水泵",
            "fieldName":"品牌"
            },{
            "fieldId":"11",
            "paramValue":"2021-5-4",
            "fieldName":"日期"
            },{
            "fieldId":"11",
            "paramValue":"低耗",
            "fieldName":"能耗"
            }],
  parts:[
    {
      "partName":"定子绕组" ,
      "partValue":"参数文案"
    }, {
       "partName":"质量",
        "partValue":"参数文案"
    }]
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

1.2: 台账更新

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/edit

方法:POST

请求参数

名称 位置 类型 必填 描述
id body int 记录id
version body int y 版本号
spacePos body int y 空间位置
spacePosCode body String y 空间位置编号
params body Array y 参数信息
startTime body date Y 启动时间
expireTime body date Y 质保时间
brand body String N 品牌
model body String N 型号
figureType body int N 编码类型 ,1:一位一码、2:一类一码
count body int Y 数量
id params Integer y 参数id
fieldName params String y 字段类型
fieldType params String y text,number,date,select
selectValue params String N 如果是fieldType是select,该值为下拉框的枚举值
notNull params int y 参数是否必填1:是, 2:否
paramValue params String N 参数值
parts body Array y 部件信息
id parts Integer y 字段id
partValue parts String Y 部件文案
partName parts String Y 部件名

请求Body描述(非Form表单数据)

{
    id:12,
    version:12,
  startTime : '2020-01-02',
  expireTime : '2023-01-02',
  spacePos:"1栋1单元1层",
  spacePosCode:'11011011010101010122',
  "brand": "品牌1",
  "model":"型号a",
  "figureType", 1,
  "count": 23,
    params:[{
            "id":36,
            "typeId":"11",
            "fieldName":"品牌",
            "fieldType":"text", 
            "notNull":"2",
            "paramValue":"xx牌水泵"
            },{
            "id":13,
            "typeId":"11",
            "fieldName":"启动日期",
            "fieldType":"date", 
            "notNull":"1",
            "paramValue":"2021-5-4"
            },{
            "id":14,
            "typeId":"11",
            "fieldName":"耗能",
            "fieldType":"select", 
            "select":"低耗,高耗",
            "paramValue":"低耗",
            "notNull":"1"
            }],
  parts:[
    {
      "id":54,
      "partName":"定子绕组" ,
      "partValue":"参数文案"
    }, {
        "id":44,
       "partName":"质量",
        "partValue":"参数文案"
    }]
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

1.3: 台账分页查询

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/page-list

方法:POST

请求参数

名称 位置 类型 必填 描述
pageNo body int y 页码
pageSize body int y 一页多少条记录
orgId body String y 业务组织id
deviceStatus body array N 状态
deviceStatus body array N 状态
name body String N 名称
spaceName body String N 项目
spaceCode body String N 项目id
spacePos body String N 空间位置
typeId body String N 设备分类
dir body String N 设备分类层级关系 如果是第二层 专业id - 系统id, 如果是第一层, 传专业id
figureType body String N 编码类型 ,1:一位一码、2:一类一码
isSmart record int 智能设备 1:是, 2:否

请求Body描述(非Form表单数据)

{
    pageNo:1,
    pageSize:10,
    orgId : "123",
    deviceStatus: [1, 2, 3],
    name: "xx电梯",
    spaceName:"xx项目",
    figureType:1,
    spaceCode:"1232",
    spacePos:"1栋2层4号",
    typeId:12
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
pageNo data int 第几页
pageSize data int 一页多少条记录
total data int 一共多少条记录
records data JSONArray 记录集合
id record int 记录id
version record int y 版本号
stockCode record String 设备编码
deviceStatus record int 设备状态1:正常,2:报停 3:报废
area record String 区域
name record String 设备名称
spaceName record String 项目名称
spaceCode record String 项目id
spacePos record String 空间位置
posMark record String 位置补充描述
domainSystem record String 专业系统
isSmart record int 智能设备 1:是, 2:否
figureType body String N 编码类型 ,1:一位一码、2:一类一码
brand body String N 品牌
model body String N 型号
figureType body int N 编码类型 ,1:一位一码、2:一类一码
count body int Y 数量
startTime body date Y 启动时间
expireTime body date Y 质保时间
remainTime body int Y 剩余保质天数
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
    page:2,
    size:10,
    total:200,
    records:[
        {
            id:11,
            version:12,
            stockCode:"BJ-XAA-ZZZ-01",
            deviceStatus:1,
            area:"华北",    
            spaceName:'王府一号',
            spaceCode:'123',
            name:"x水泵",
            spacePos:"1栋1单元1层",
            domainSystem:"给排水-给水系统",
            "brand": "品牌1",
            "model":"型号a",
            "figureType", 1,
            "count": 23,
        }
]}
}

1.4: 台账明细

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/detail

方法:POST

请求参数

名称 位置 类型 必填 描述
id body int y 台账id

请求Body描述(非Form表单数据)

{
 id:1
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
version 顶层 int y 版本号
id data int y 设备id
stockCode data String y 设备编码
spaceName data String y 设备分类名称
deviceStatus data int Y 设备状态1:正常,2:报停 3:报废
name data String y 设备名称
spacePos data String y 空间位置
netPos data String y 网络位置
PosMark data String y 位置描述
isSmart data String y 智能设备:1:是, 2:否
quitTime data date y 报停时间
brand body String N 品牌
model body String N 型号
figureType body int N 编码类型 ,1:一位一码、2:一类一码
count body int Y 数量
remainTime body int Y 剩余保质天数
quitReason data String y 报停原因
typeId data string y 设备分类id
typeName data string y 设备分类
domainSystem data String y 专业系统
params data Array y 参数信息
fieldName params String y 字段类型
fieldType params String y text,number,date,select
selectValue params String N 如果是fieldType是select,该值为下拉框的枚举值
paramValue params String N 参数值
parts data Array y 部件信息
partValue parts String Y 部件文案
partName parts String Y 部件名
返回结果示例
{
  code:200,
  message:"success",
  data:{
        id:11,
        stockCode:"BJ-XAA-ZZZ-01",
        deviceStatus:1,
        spaceName:'王府一号',
        name:"x水泵",
        version:12,
        spacePos:"1栋1单元1层",
        area:"华北",    
        netPos:"中国电信广东",
          posMark:"xxx",  
        quitTime:"2021-7-6 :10:00:00",
        quitMark:"设备无法运行",
        isSmart: "2",
          "brand": "品牌1",
          "model":"型号a",
          "figureType", 1,
          "count": 23,
        params:[{
                "typeId":"11",
                "fieldName":"品牌",
                "fieldType":"text",  
                "paramValue":"xx牌水泵"
                },{
                "typeId":"11",
                "fieldName":"启动日期",
                "fieldType":"date",  
                "paramValue":"2021-5-4"
                },{
                "typeId":"11",
                "fieldName":"耗能",
                "fieldType":"select", 
                "select":"低耗,高耗",
                "paramValue":"低耗", 
                }]
    parts:[
        {
        "partName":"定子绕组" ,
        "partValue":"参数文案"
        }, {
        "partName":"质量",
            "partValue":"参数文案"
        }]

  }
}

1.5: 台账报停

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/quit

方法:POST

请求参数

名称 位置 类型 必填 描述
id 顶层 int y 设备id
quitTime 顶层 date y 报停时间
resumeTime 顶层 date N 启动时间
version 顶层 int y 版本号
quitReason 顶层 String y 报停原因

请求Body描述(非Form表单数据)

{ 
    id:"12",
    quitTime:"2020-12-12 10:00:00",
    startTime:"2021-12-12 10:00:00",
    version:12,
    quitReason:"用不了"
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

1.6: 台账批量报停

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/bat-quit

方法:POST

请求参数

名称 位置 类型 必填 描述
quitTime 顶层 date y 报停时间
startTime 顶层 date N 启动时间
quitReason 顶层 String y 报停原因
records 顶层 ObjectArray y 报停设备数据
id records int y 设备id
version records int y 版本号

请求Body描述(非Form表单数据)

{  
    quitTime:"2020-12-12 10:00:00",
    startTime:"2021-12-12 10:00:00", 
    quitReason:"用不了"
    records:[{
        id:11,
        version:12
    },{
        id:12,
        version:13
    }]
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

1.7: 台账报废

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/scrap

方法:POST

请求参数

名称 位置 类型 必填 描述
id 顶层 int y 设备id
scrapApprPos 顶层 String N 报停审批岗位
version 顶层 int y 版本号
scrapReason 顶层 String y 报停原因

请求Body描述(非Form表单数据)

{ 
    id:"12", 
    scrapApprPos:"xxx岗位",
    version:12,
    scrapReason:"用不了"
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

1.8: 台账批量报废

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/bat-scrap

方法:POST

请求参数

名称 位置 类型 必填 描述
scrapApprPos 顶层 String N 报停审批岗位
scrapReason 顶层 String y 报停原因
records 顶层 ObjectArray y 报停设备数据
id records int y 设备id
version records int y 版本号

请求Body描述(非Form表单数据)

{  
    scrapApprPos:"xxx岗位", 
    scrapReason:"用不了",
    records:[{
        id:11,
        version:12
    },{
        id:12,
        version:13
    }]
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

2.0: 台账导出

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/export

方法:POST

请求参数

名称 位置 类型 必填 描述
orgId body String y 业务组织id
spaceName body String N 项目
spacePos body String N 空间位置
typeId body String N 设备分类

请求Body描述(非Form表单数据)

{
    orgId : "123",
    spaceName:"xx项目",
    spacePos:"1栋2层4号",
    typeId:12
}

返回信息

返回参数类型

JSON

返回参数

返回excel文件字节流

返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
    page:2,
    size:10,
    total:200,
    records:[
        {
            id:11,
            version:12,
            stockCode:"BJ-XAA-ZZZ-01",
            deviceStatus:1,
            area:"华北",    
            spaceName:'王府一号',
            name:"x水泵",
            spacePos:"1栋1单元1层",
            domainSystem:"给排水-给水系统"
        }
]}
}

2.1: 台账删除

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/remove

方法:POST

请求参数

名称 位置 类型 必填 描述
id 顶层 int y 设备id
version 顶层 int y 版本号

请求Body描述(非Form表单数据)

{ 
    id:"12", 
    version:12
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

2.2: 台账恢复

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/revert

方法:POST

请求参数

名称 位置 类型 必填 描述
id 顶层 int y 设备id
version 顶层 int y 版本号

请求Body描述(非Form表单数据)

{ 
    id:"12", 
    version:12
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

2.3: 项目选项框

描述

请求信息

URL:/v1/iot/main/customer/house/relation/query/communitys

Method: POST

body: JSON格式约定

入参dto:

字段 字段类型 是否必填(默认否) 说明
org_code String 业务组织编码,用户数据权限控制的

请求示例:

{
    "org_code":"901"
}
字段 字段类型 是否必填(默认否) 说明
space_name String 项目名称
space_code String 项目编号

返回示例:

{
    "code":"200",
    "message": "成功",
    "result": [
        {
            "create_by": null,
            "update_by": null,
            "create_time": "2020-11-07T10:21:57.000+0000",
            "update_time": "2020-11-11T05:59:25.000+0000",
            "id": 9885,
            "parentid": null,
            "space_id": null,
            "parent_space_id": null,
            "community_id": null,
            "space_name": "简岸花园",
            "full_space_name": "简岸花园",
            "parent_code": null,
            "space_code": "1000",
            "space_type": "COMMUNITY",
            "space_sort": "COMMUNITY",
            "src": 1
        },
        {
            "create_by": null,
            "update_by": null,
            "create_time": "2020-11-07T10:21:57.000+0000",
            "update_time": "2020-11-11T05:59:25.000+0000",
            "id": 9887,
            "parentid": null,
            "space_id": null,
            "parent_space_id": null,
            "community_id": null,
            "space_name": "海岸花园",
            "full_space_name": "海岸花园",
            "parent_code": null,
            "space_code": "1002",
            "space_type": "COMMUNITY",
            "space_sort": "COMMUNITY",
            "src": 1
        }
    ],
    "pageNo": 0,
    "pageSize": 0,
    "total": 0,
    "totalPage": 0
}

2.4: 空间位置

描述

请求信息

URL:/v1/iot/main/customer/house/relation/query/spaces

Method: POST

body: JSON格式约定

入参dto:

字段 字段类型 是否必填(默认否) 说明
space_code String 最深层级空间Code space_type String 空间类型

请求示例:

{
"space_code":"1003",
"space_type":"ZONE"
}
或
{
"space_code":"1003",
"space_type":"STRUCTURE"
}
或
{
"space_code":"1003",
"space_type":"BUILDING"
}
或
{
"space_code":"1003",
"space_type":"HOUSE"
}

返回示例:

字段 字段类型 是否必填(默认否) 说明
full_space_name String 空间全名 space_Code String 空间编号
{
    "code":"200",
    "message": "成功",
    "result": [
        {
            "create_by": null,
            "update_by": null,
            "create_time": "2020-11-07T10:21:57.000+0000",
            "update_time": "2020-11-11T05:59:25.000+0000",
            "id": 9890,
            "parentid": 9889,
            "space_id": null,
            "parent_space_id": null,
            "community_id": null,
            "space_name": "8栋",
            "full_space_name": "简岸花园-建筑物8-8栋",
            "parent_code": "1005",
            "space_code": "100010051006",
            "space_type": "BUILDING",
            "space_sort": "STRUCTURE",
            "src": 1,
            "org_id": null,
            "province": null,
            "city": null,
            "district": null,
            "detail": null,
            "lon": 0.0,
            "lat": 0.0,
            "children": null,
            "parent_name": null,
            "org_ids": null,
            "pageNo": 0,
            "pageSize": 0,
            "list": null
        }
    ],
    "pageNo": 0,
    "pageSize": 0,
    "total": 0,
    "totalPage": 0
}

2.5: 台账启动

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/stock/start

方法:POST

请求参数

名称 位置 类型 必填 描述
id 顶层 int y 设备id
startTime 顶层 Date N 启动时间
version 顶层 int y 版本号

请求Body描述(非Form表单数据)

{ 
    id:"12", 
    startTime:'2020-1-2',
    version:12
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING 响应码标识
message 顶层 STRING 响应消息文本
data 顶层 JSONObject 响应数据对象
返回结果示例
{
  "code": "200",
  "message": "success",
  "data": {
  }
}

2.6: 分类树形列表

描述

请求信息

HTTP协议:HTTP,HTTPS

uri:/v1/iot/device/setting/tree

方法:POST

请求参数

名称 位置 类型 必填 描述
orgId body String y 业务组织id
typeOnly body int n 如果值为1 ,即只查询有设备分类相关的节点

请求Body描述(非Form表单数据)

{
"orgId":"111"
}

返回信息

返回参数类型

JSON

返回参数

名称 位置 类型 必填 描述
code 顶层 STRING y 响应码标识
message 顶层 STRING y 响应消息文本
data 顶层 JSONArray y 专业集合
id data Integer y 专业id
name data string y 专业名称
grade data int y 树状级别:值为1,1为专业级别
children data JSONArray y 系统集合
id children String y 系统id
pid children String y 父id
name children String y 系统名称
id children String y 系统名称
pid children String y 父id
grade children Integer y 树状级别:值为2, 2为系统级别
children children JSONArray y 分类集合
id children Integer y 分类id
pid children String y 父id
name children String y 分类名称
grade children String y 树状级别:值为3, 3为分类级别
typeId children String y 分类id
返回结果示例
{
  code:200,
  message:"success",
  data:[
    {
      id:1,
      name:"给排水",
      grade:1,
      children:[
          {
            id:22,
            pid:1,
            name:"给水系统",
            grade:2,
            children:[
                {
                id:33,
                 pid:22,
                name: "A1生活水泵",
                grade:3,
                typeId : 1122
                }
              ]
          },{
            id:23,
             pid:22,
            name:"排水系统",
            grade:2,
            type:[...]
          }
          ...
      ]
    } , 
    {
      id:2,
      name: "消防",
      grade :2,
      system:[...],
    }
    ...
  ]
}

results matching ""

    No results matching ""