一、引言
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 反馈信息
*/
@Override
public 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
*/
@Override
public 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、退房
后端返回提示:退房成功