# 英卡试乘试驾业务

## API
### GET /api/testDrive
获取所有试乘试驾
可选的查询参数
pageSize: 分页返回，一页的大小，如果没有，则表示返回所有
nextMarker: 填入上一页返回的足有一个org:id,默认不填表示从第一页开始返回
sortBy: 排序属性，默认按id升序，如name-表示name降序，id+或id表示id升序(+号需要使用URL彪马%2b)
所有其他查询参数表示过滤属性
如果过滤条件里有一个正则表达式，那么直接比较值是否相等匹配
如果过滤条件里不是正则表达式，那么直接比较值是否相等匹配
return: { total: 34, orgs: [] }. total,符合过滤条件的对象总数;orgs,对象Org的数组
```
GET /api/testDrive?name=%2fs%2fi&biz_mode=1&pageSize=1&nextMarker=2&sortBy=name
```

### POST /api/testDrive
创建一个试乘试驾
```javascript
{
    name: '试乘试驾', // 试乘试驾全名
    short_name: 'bjmc', // 试乘试驾简称,通常为英文或数字
    status: 1, // 0-禁用,1-启用 缺省为1
    prov: '武汉', // 省级行政区
    city: '武汉', // 市级行政区
    description: '实验性试乘试驾', // 简要说明性文字
    logo_url: 'http://www.baidu.com/logo.png', // 试乘试驾图标
    address: '北京市望京西路222号', // 试乘试驾地址
    phone: '+86 10 88888888', // 试乘试驾联系电话
    hotline: '+86 400 88888888',  // 试乘试驾热线电话
    biz_mode: 2  //试乘试驾组织代码为：2
}
```

### PUT /api/testDrive/:tDriveId
修改一个试乘试驾
:tDriveId 传入试乘试驾的id和要修改的数据
return: 修改后的试乘试驾数据
```javascript
{
    name: '试乘试驾111', // 试乘试驾全名
}
```

### DELETE /api/testDrive/:tDriveId
删除一个组织
删除一个组织时,也应删除试乘试驾里所有Staff and vehicle
:tDriveId 传入要删除组织的id

### GET /api/testDrive/:tDriveId/staff
查询试乘试驾里所有的职员
可选的查询参数
:tDriveId 试乘试驾的id
pageSize: 分页返回时,一页的大小,如果没有,则表示返回所有
nextMarker: 从哪一个开始返回, 默认不填表示从第1页开始返回
sortBy: 排序属性,默认按id升序.如name-表示按name降序, id+或id表示按id升序(+号需要使用URL编码为%2b)
所有其它查询参数表示过滤属性 如果过滤条件里是一个正则表达式,那么把属性转换为字符串,做字符串匹配; 如果过滤条件里不是正则表达式,那么直接比较值是否相等匹配
return: { total: 34, staffs: [] }. total,符合过滤条件的对象总数;staffs,对象Staff的数组
```
GET /api/testDrive/696/staff?name=meili&pageSize=1&nextMarker=2&sortBy=name
```

### GET /api/testDrive/:tDriveId/staff/:staffId
查询试乘试驾里的一个职员
:tDriveId 试乘试驾的id
:staffId 职员的id
```
GET /api/testDrive/696/staff/388
```

### POST /api/testDrive/:tDriveId/staff
向试乘试驾中增加一个Staff
:tDriveId 试乘试驾的id
```javascript
{
    s4_id: 696,
    name: september,
    phone:13888888888,
    pwd:'0000000000000000000000000000000000000000',
    nick:'九月'
}
```

### PUT /api/testDrive/:tDriveId/staff/:staffId
修改试乘试驾中的一个Staff
:tDriveId 试乘试驾的id
:staffId 职员的id
```javascript
{
    s4_id: 696,
    name: 'september',
    phone:13888888888,
    pwd:'0000000000000000000000000000000000000000',
    nick:'九月'
}
```

### DELETE /api/testDrive/:tDriveId/staff/:staffId
删除试乘试驾中的一个Staff
:tDriveId 试乘试驾的id
:staffId 职员的id

### GET /api/testDrive/:tDriveId/vehicle
查询试乘试驾里所有的车辆
可选的查询参数
:tDriveId 试乘试驾的id
pageSize: 分页返回时,一页的大小,如果没有,则表示返回所有
nextMarker: 从哪一个开始返回, 默认不填表示从第1页开始返回
sortBy: 排序属性,默认按id升序.如id+或id表示按id升序(+号需要使用URL编码为%2b)
所有其它查询参数表示过滤属性 如果过滤条件里是一个正则表达式,那么把属性转换为字符串,做字符串匹配; 如果过滤条件里不是正则表达式,那么直接比较值是否相等匹配
return: { total: 34, vehicles: [] }. total,符合过滤条件的对象总数;vehicles,对象Vehicle的数组
```
GET /api/testDrive/696/vehicle?obd_code=INCAR0000065597&pageSize=1&nextMarker=2&sortBy=name
```

### POST /api/testDrive/:fleedId/vehicle
向试乘试驾中增加一台车
```javascript
{
    s4_id: 696,
    license:"鄂A11122",
    obd_code:"INCAR0000011122",
    brand:11,
    series:13
}
```

### GET /api/testDrive/:tDriveId/vehicle/:vehicleId
查询一台车
:vehicleId 车辆的id
```
GET /api/testDrive/696/vehicle/375
```

### PUT /api/testDrive/:tDriveId/vehicle/:vehicleId
修改一台车
:vehicleId 车辆的id
```javascript
{
    s4_id: 696,
    license:"鄂A11133",
    obd_code:"INCAR0000011133",
    brand:11,
    series:13
}
```

### DELETE /api/testDrive/:tDriveId/vehicle/:vehicleId
删除一台车
:vehicleId 车辆的id

2015-07-17 liz
### GET /api/testDrive/:tDriveId/vehicle/:vehicleId/status
获取一辆车的状态
:vehicleId 车辆的id

### GET /api/testDrive/:tDriveId/vehicle/:vehicleId/pos
获取一辆车的最后位置信息
:vehicleId 车辆的id

