订单 - 扫描 预约 -停用
<p><strong>简要描述:</strong></p>
<ul>
<li>生成预约订单</li>
</ul>
<p><strong>修改时间:</strong></p>
<table>
<thead>
<tr>
<th>修改时间</th>
<th>修改内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>2019-06-27 11:19:01 星期四</td>
<td>添加</td>
<td>ckinghan</td>
</tr>
</tbody>
</table>
<p>*错误代码:**</p>
<table>
<thead>
<tr>
<th>错误代码</th>
<th>说明</th>
<th>添加时间</th>
<th>修改人</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>参数校验失败</td>
<td>2019-06-27 10:58:50 星期四</td>
<td>ckinghan</td>
</tr>
<tr>
<td>4023</td>
<td>预约订单创建失败</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>440005</td>
<td>服务器内部错误-内部服务调用错误</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4024</td>
<td>检查用户未完成订单失败</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4018</td>
<td>用户存在未结束订单</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4019</td>
<td>未查询到桩信息</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4022</td>
<td>充电桩不支持预约</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4011</td>
<td>预约费信息不存在或已删除</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4020</td>
<td>预约费通道已关闭</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4021</td>
<td>用户余额不足</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4023</td>
<td>枪信息不存在</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>2051</td>
<td>冻结金额失败</td>
<td></td>
<td>ckinghan</td>
</tr>
<tr>
<td>4025</td>
<td>请选择要预约的枪口号</td>
<td></td>
<td>ckinghan</td>
</tr>
</tbody>
</table>
<p><strong>实现逻辑描述:</strong></p>
<pre><code>检查传输数据
检查桩数据
检查枪状态
检查预约数据
检查用户是否有未完成订单
冻结金额
生成订单
通知桩</code></pre>
<p><strong>涉及表:</strong></p>
<ul>
<li><code>t_user(用户表)</code></li>
<li><code>t_user_frozen_amount_log(用户冻结金额记录表)</code></li>
<li><code>t_charger_order(用户充电、预约订单表)</code></li>
</ul>
<p><strong>流程:</strong></p>
<pre><code>-</code></pre>
<p><strong>请求URL:</strong></p>
<ul>
<li><code>{{url}}/app/app/order/addAppointmentOrder</code></li>
</ul>
<p><strong>请求方式:</strong></p>
<ul>
<li>POST</li>
</ul>
<p><strong>请求参数说明:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">键</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">scanData</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">扫描的数据(通信编号14位+TCU编号2位+枪口号2位)</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">预约时间</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例</strong></p>
<pre><code>{{url}}/app/app/order/addAppointmentOrder?scanData=00000000000000010101&time=5</code></pre>
<p><strong>返回参数说明</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">返回码</td>
<td style="text-align: left;">0 为成功</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">返回信息</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">- data</td>
<td style="text-align: left;">Object</td>
<td style="text-align: left;">返回携带的数据</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">id</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">uuid</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">uuid</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">orderNo</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订单编号</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">isOver</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">订单是否完成:;0未完成、1已完成、2超时、3手动取消(结束)</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">orderName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订单名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">userId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">用户ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">userName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">用户名</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">userType</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">用户帐户类型: 0APP_WX、1卡、2VIN、3、企业用户</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">agentId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">代理商ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">agentName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">代理商名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">enterpariseId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">enterpariseId</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">enterpariseName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">企业名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appotherEnterpariseNameId</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">第三方企业名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">orderType</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">订单类型: 0预约订单、1充电订单</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">orderFlag</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">订单标志: 0平台订单、1第三方平台订单</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">payStatus</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">支付状态: :0未支付、1已支付</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">startTime</td>
<td style="text-align: left;">Date</td>
<td style="text-align: left;">开始时间</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">endTime</td>
<td style="text-align: left;">Date</td>
<td style="text-align: left;">结束时间</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">充电时长 单位:秒</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerNumber</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">充电量 度、千瓦时</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerType</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电方式:01:电量控制充电;02:时间控制充电;03:金额控制充电;04:自动充满05:定时启动充电</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">startSoc</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">起始SOC 百分比</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">endSoc</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">结束SOC 百分比</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">startMeter</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">起始电表值</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">endMeter</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">结束电表值</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">startAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">起始余额 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">endAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">结束余额 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerFee</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">充电费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">serviceFee</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">服务费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentFee</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">预约费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingFee</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">停车费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">totalAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">总费用 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">actualAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">实收费用: 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">serviceId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">服务费ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">invoiceFlag</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">是否开发票: 0不开发票、1开具发票</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">pileId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">充电桩ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">pileSn</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电桩出厂编号</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">pileName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电桩名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">driveType</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">充电桩设备类型: 0交流、1直流、2交直流一体</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">gunId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">充电枪ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">gunNo</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电枪编号</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">gunType</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">充电枪类型 0交流、1直流、2交直流一体</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">stationId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">充电桩归属电站ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">stationName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电站名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentNo</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">预约订单号</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">预约费ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">预约费名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentFlag</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">是否预约: 0未预约、1预约</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">预约时长 :分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentUnitTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">预约时间计费单位 分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentPrice</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">预约时间计费单位单价 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">appointmentAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">预约费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">停车费ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">停车收费名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">停车时长 :分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingUnitTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">停车计费时间单位 :分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingUnitTimePrice</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">停车时间单位收费 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerAfterFreeTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">充电之后多少分钟内免收停车费单位:分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">chargerBeforeFreeTime</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">充电之前多少分钟内免收停车费单位:分钟</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingAmount</td>
<td style="text-align: left;">BigDecimal</td>
<td style="text-align: left;">停车费金额 单位:元</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">parkingFeeType</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">停车费收取方式: 0分时收费、1一次性收费、2免费、</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">reasonId</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">充电结束原因ID</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">reasonName</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">充电结束原因名称</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">delFlag</td>
<td style="text-align: left;">Integer</td>
<td style="text-align: left;">是否删除: :0正常、1删除</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">createBy</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">createBy</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">createTime</td>
<td style="text-align: left;">Date</td>
<td style="text-align: left;">创建时间</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">updateBy</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">最后更新人</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">updateTime</td>
<td style="text-align: left;">Date</td>
<td style="text-align: left;">最后更新时间</td>
<td style="text-align: left;">-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例</strong></p>
<pre><code>{
"code": 0,
"msg": "success",
"data": {
"id": 10,
"uuid": "59591f85-1ed5-41f2-9931-34eaf4af88e5",
"orderNo": "00007001561604917987",
"isOver": 0,
"orderName": null,
"userId": 7,
"userName": "17327870807",
"userType": 0,
"appId": "wx07e7e64417d90717",
"agentId": 1,
"agentName": "admin",
"enterpariseId": null,
"enterpariseName": null,
"otherEnterpariseName": null,
"orderType": 0,
"orderFlag": 0,
"payStatus": 0,
"startTime": "2019-06-27 11:08:37",
"endTime": null,
"chargerTime": null,
"chargerNumber": null,
"chargerType": null,
"startSoc": null,
"endSoc": null,
"startMeter": null,
"endMeter": null,
"startAmount": null,
"endAmount": null,
"chargerFee": null,
"serviceFee": null,
"appointmentFee": null,
"parkingFee": null,
"totalAmount": null,
"actualAmount": null,
"serviceId": null,
"invoiceFlag": 0,
"pileId": 7,
"pileSn": "123456",
"pileName": "充电桩3",
"driveType": 0,
"gunId": 16,
"gunNo": "01",
"gunType": 1,
"stationId": 1,
"stationName": "站点名称2",
"appointmentNo": null,
"appointmentId": 1,
"appointmentName": "预约扣费规则2-",
"appointmentFlag": 1,
"appointmentTime": 30,
"appointmentUnitTime": 5,
"appointmentPrice": 0.55,
"appointmentAmount": 0,
"parkingId": null,
"parkingName": null,
"parkingTime": null,
"parkingUnitTime": null,
"parkingUnitTimePrice": null,
"chargerAfterFreeTime": null,
"chargerBeforeFreeTime": null,
"parkingAmount": null,
"parkingFeeType": null,
"reasonId": null,
"reasonName": null,
"delFlag": 0,
"createBy": null,
"createTime": "2019-06-27 11:08:37",
"updateBy": null,
"updateTime": null
}
}</code></pre>