<a name="return">[返回主目录](/doc)</a>
<br><br>
<a name="menu">目录</a>

1. [产品分页查询](#getPage)
2. [查询字典(根据 type 查询所有 name 数据)](#getAllDic)
3. [根据 id 数组查询](#getByIds)
4. [获取组合产品子产品列表](#getItems)
5. [添加/更新产品](#createOrUpdate)
6. [获取 api (list 格式)](#apiList)
7. [获取 api (object 格式)](#apiMap)

## **<a name="getPage"> 产品分页查询 </a>**

[返回到目录](#menu)

#### 参数格式 `JSON`

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/getPage`

#### 参数说明

| 参数名   | 参数类型 | 必选项 | 备注                 |
| -------- | -------- | ------ | -------------------- |
| page     | number   | 可选   | 页数 默认 1          |
| limit    | number   | 可选   | 每页条数 默认 10     |
| types    | list     | 可选   | 所选类别 默认 [1, 2] |
| keywords | string   | 可选   | 关键字               |

#### 参数示例

```javascript
{
     "types": [1],
     "keywords": "s",
     "page": 1,
     "limit": 1
}
```

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":{
        "count":1,
        "rows":[
            {
                "id":7,
                "source_id":10001, // 产品来源 id
                "product_name":"ssda", // 产品名称
                "product_type":1, // 产品类型
                "product_desc":"0", // 产品描述
                "product_property": 0,
                "price":0, // 产品价格
                "cost":0,
                "created_at":"2020-06-29T11:31:35.000Z",
                "updated_at":"2020-06-29T11:31:41.000Z",
                "deleted_at":null,
                "version":0
            }]
    },
    "requestid":"453c672537b8469d848e4c2899273d4d"
}
```

## **<a name="getAllDic"> 产品字典 </a>**

[返回到目录](#menu)

#### 参数格式 `JSON`

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/getAllDic`

#### 参数说明

| 参数名 | 参数类型 | 必选项 | 备注                 |
| ------ | -------- | ------ | -------------------- |
| types  | list     | 可选   | 所选类别 默认 [1, 2] |

#### 参数示例

```javascript
{
     "types": [1, 2]
}
```

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":[
        {
            "id":6,
            "product_type":2,
            "product_name":"asdf",
            "product_property": 0,
            "price":0,
            "ids":[
                1,
                7]
        },
        {
            "id":11,
            "product_type":2,
            "product_name":"testa",
            "product_property": 0,
            "price":1,
            "ids":[
                8,
                9,
                10]
        },
        {
            "id":13,
            "product_type":2,
            "product_name":"testb",
            "product_property": 0,
            "price":1,
            "ids":[
                8,
                9,
                10]
        },
        {
            "id":1,
            "product_type":1,
            "product_name":"ss",
            "product_property": 0,
            "price":0,
            "productitems":[
            ],
            "ids":[
            ]
        },
        {
            "id":7,
            "product_type":1,
            "product_name":"ssda",
            "product_property": 0,
            "price":0,
            "ids":[
            ]
        },
        {
            "id":8,
            "product_type":1,
            "product_name":"test",
            "product_property": 0,
            "price":1,
            "ids":[
            ]
        },
        {
            "id":9,
            "product_type":1,
            "product_name":"test",
            "product_property": 0,
            "price":1,
            "ids":[
            ]
        },
        {
            "id":10,
            "product_type":1,
            "product_name":"test",
            "product_property": 0,
            "price":1,
            "ids":[
            ]
        },
        {
            "id":12,
            "product_type":1,
            "product_name":"testa",
            "product_property": 0,
            "price":1,
            "ids":[
            ]
        }],
    "requestid":"3416a203177940c1b58354132f778f00"
}


```

## **<a name="getByIds"> 根据 id 数组查询 </a>**

[返回到目录](#menu)

#### 参数格式 `JSON`

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/getByIds`

#### 参数说明

| 参数名 | 参数类型 | 必选项 | 备注         |
| ------ | -------- | ------ | ------------ |
| ids    | list     | 必选   | 产品 id 列表 |

#### 参数示例

```javascript
{
     "ids": [1, 2, 6, 7]
}
```

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":[
        {
            "id":6,
            "source_id":10001,
            "product_name":"asdf", // 产品名称
            "product_type":2, // 产品类型
            "product_property": 0,
            "product_desc":"0", // 产品描述
            "price":0, // 产品价格
            "cost":0,
            "created_at":"2020-06-29T03:17:00.000Z",
            "updated_at":"2020-06-29T03:32:12.000Z",
            "deleted_at":null,
            "version":0
        },
        {
            "id":7,
            "source_id":10001,
            "product_name":"ssda",
            "product_type":1,
            "product_property": 0,
            "product_desc":"0",
            "price":0,
            "cost":0,
            "created_at":"2020-06-29T11:31:35.000Z",
            "updated_at":"2020-06-29T11:31:41.000Z",
            "deleted_at":null,
            "version":0
        }],
    "requestid":"d71d44c5c285435784ff386dc0024be7"
}

```

## **<a name="getItems"> 获取组合产品子产品列表 </a>**

[返回到目录](#menu)

#### 参数格式 `JSON`

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/getItems`

#### 参数说明

| 参数名 | 参数类型 | 必选项 | 备注        |
| ------ | -------- | ------ | ----------- |
| id     | number   | 必选   | 组合商品 id |

#### 参数示例

```javascript
{
  "id": 6
}
```

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":[
        {
            "id":1,
            "source_id":10001,
            "product_name":"ss", // 产品名称
            "product_type":1, // 产品类型
            "product_desc":"0", // 产品描述
            "product_property": 0,
            "price":0, // 产品价格
            "cost":0,
            "created_at":"2020-06-28T17:37:28.000Z",
            "updated_at":"2020-06-28T17:37:31.000Z",
            "deleted_at":null,
            "version":0
        },
        {
            "id":7,
            "source_id":10001,
            "product_name":"ssda",
            "product_type":1,
            "product_property": 0,
            "product_desc":"0",
            "price":0,
            "cost":0,
            "created_at":"2020-06-29T11:31:35.000Z",
            "updated_at":"2020-06-29T11:31:41.000Z",
            "deleted_at":null,
            "version":0
        }],
    "requestid":"91c226b3a1024cc5a78dc25acb27ff46"
}

```

## **<a name="createOrUpdate"> 添加/更新产品 </a>**

[返回到目录](#menu)

#### 参数格式 `JSON`

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/createOrUpdate`

#### 参数说明

| 参数名       | 参数类型 | 必选项   | 备注                                                                             |
| ------------ | -------- | -------- | -------------------------------------------------------------------------------- |
| id           | number   | 可选     | 更新产品的主键 如果没有则为创建                                                  |
| source_id    | number   | 可选     | 产品来源 id 默认 10001                                                           |
| product_name | string   | 必选     | 产品名称                                                                         |
| product_type | number   | 必选     | 产品类型 1: 单产品 2: 组合产品                                                   |
| product_desc | string   | 可选     | 产品描述                                                                         |
| price        | number   | 可选     | 默认 0                                                                           |
| cost         | number   | 可选     | 默认 0                                                                           |
| api          | string   | 可选     |                                                                                  |
| items        | list     | 限定必选 | 子产品 id 列表 <br> 如果 product_type 为 2 则必有此项 <br> 如果为 1 则必没有此项 |

#### 参数示例

```javascript
{
     "source_id": 10001,
     "product_name": "testa",
     "product_type": 2,
     "product_property": 0,
     "product_desc": "testa",
     "price": 1,
     "cost": 0,
     "api": "testurla",
     "items":[8, 9, 10]
}
```

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":{
    },
    "requestid":"e6f7a5e50e404296ad47c92f43a54de4"
}
```

## **<a name="apiList"> 获取 api </a>**

[返回到目录](#menu)

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/apiList`

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":[
        {
            "key":"nameTwo_1",
            "name":"姓名二要素-e签宝"
        },
        {
            "key":"sign_1",
            "name":"手动签-e签宝"
        },
        {
            "key":"autoSign_1",
            "name":"静默签-e签宝"
        },
        {
            "key":"bankThree_2",
            "name":"银行卡三要素-兰铂旺"
        },
        {
            "key":"bankFour_2",
            "name":"银行卡四要素-兰铂旺"
        }],
    "requestid":"d8dbbd33f0294f9e8b3fbfac51165f57"
}
```

## **<a name="apiMap"> 获取 api </a>**

[返回到目录](#menu)

#### HTTP 请求方式 `POST`

#### 接口地址 `/web/product/productCtl/apiMap`

#### 返回结果

```javascript
{
    "status":0,
    "msg":"success",
    "data":{
        "nameTwo_1":{
            "key":"nameTwo_1",
            "name":"姓名二要素-e签宝"
        },
        "sign_1":{
            "key":"sign_1",
            "name":"手动签-e签宝"
        },
        "autoSign_1":{
            "key":"autoSign_1",
            "name":"静默签-e签宝"
        },
        "bankThree_2":{
            "key":"bankThree_2",
            "name":"银行卡三要素-兰铂旺"
        },
        "bankFour_2":{
            "key":"bankFour_2",
            "name":"银行卡四要素-兰铂旺"
        }
    },
    "requestid":"08483f755eeb48928e7eb201252b8476"
}
```
