一、引言
1.1 迭代目标
1.2 迭代测试记录
| 编号 | 内容 | 测试人员 | 更新时间 |
|---|---|---|---|
| 1 | 测试 | 王绍威 | 2020/4/13 |
二、前端实现
- 1、实现退房页面
```java
//退房的订单信息显示
submitCheckOut(){
CheckOut(this.checkOutDTO.roomId).then((response) => {
}); this.checkout=false; this.getList(); },if(response.data){this.$message.success("退房成功");}
<a name="mG5tp"></a>## 三、后端实现<a name="c0lV5"></a>### 1、退房业务- 1、实现退房办理checkOut接口:```python/*** 对房间进行退房处理** @param roomId* @return 反馈信息*/String checkOut(Integer roomId);
2、退房业务实现
检查前端输入的房号信息,通过房间id查询相关房间状态,当房间是已入住状态时才可办理退房,并修改房间状态为待打扫,并修改相关订单状态为已退房。
/*** 对房间进行退房处理** @param roomId* @return 反馈信息*/@Overridepublic String checkOut(Integer roomId) {//获取正在入住该房间订单信息HotOrder hotOrder = new HotOrder();hotOrder.setRoomId(roomId);HotOrder order = hotOrderMapper.queryAll(hotOrder).get(0);//获取该房间HotRoom room = order.getRoom();//当状态有误时if (room.getRoomStatus() == 1) return room.getRoomNum() + "房是空房,请检查房间状态!";//更新房间状态为(0待打扫,1可入住)room.setRoomClean(0);room.setRoomStatus(1);//更新订单状态和房间状态hotOrder.setOrderStatus(2);hotOrderMapper.update(hotOrder);hotRoomMapper.update(room);return "退房成功";
2、多方式支付+找零
2.1现金支付
/*** 现金支付** @param hotOrderPay 支付明细信息* @return 实付金额与未支付金额的差额*/Double cashPay(HotOrderPay hotOrderPay);/*** 获取订单剩余未支付金额** @param orderId* @return double*/public double getUnpaid(Integer orderId);
```python /**
- 现金支付 *
- @param hotOrderPay 支付明细对象
@return 实付金额与未支付金额的差额 */ @Override public Double cashPay(HotOrderPay hotOrderPay) { Integer orderId = hotOrderPay.getOrderId(); Double unpaid = getUnpaid(orderId); Double payAmount = hotOrderPay.getPayAmount(); //如果已经完全付款,则调用已完成支付方法 if (payAmount >= unpaid) {
hotOrderPay.setPayAmount(unpaid);
} //填充支付信息 //流水号 Date curTime = new Date(); String serialNumber = SerialNumber.newInstance(“PO”,curTime).toString(); hotOrderPay.setPayNo(serialNumber); hotOrderPay.setPayTime(curTime); hotOrderPay.setPayChannel(0); //支付明细插入 hotOrderPayMapper.insert(hotOrderPay); //更新订单状态 this.updateOrderStatus(hotOrderMapper.queryById(orderId)); return payAmount - unpaid; }
/**
* 获取订单剩余未支付金额** @param orderId* @return double*/@Overridepublic double getUnpaid(Integer orderId) {HotOrder order = hotOrderMapper.queryById(orderId);//求出剩余未支付金额HotOrderPay pay = new HotOrderPay();pay.setOrderId(orderId);List<HotOrderPay> payList = hotOrderPayMapper.queryAll(pay);double unpaid = 0;for (HotOrderPay hotOrderPay : payList) {unpaid += hotOrderPay.getPayAmount();}unpaid = order.getOrderTotalAmount() - unpaid;return unpaid;}
四、用例测试
1、退房
| 序号 | 用例 | 实现情况 |
|---|---|---|
| 1 | 工作人员查询房间号 | 通过 |
| 2 | 核实顾客信息并退房 | 通过 |
| 3 | 房间状态修改为待清洁 | 通过 |
| 4 | 订单状态从已入住变为已退房 | 通过 |
2、支付找零
| 序号 | 用例 | 实现情况 |
|---|---|---|
| 1 | 显示应付金额 | 通过 |
| 2 | 输入实付金额和选择付款方式 | 通过 |
| 3 | 系统返回找零金额 | 通过 |
| 4 | 订单支付成功 | 通过 |
五、接口测试
1、找零:
后端计算出应付房费为:2379,
前端返回输入的实付金额:3000,
后端计算找零应为:621。
2、订单支付成功
3、退房
后端返回提示:退房成功


