一、引言

1.1 迭代目标

完成各项关键功能的完整测试,保证系统稳定运行

1.2 迭代测试记录

编号 内容 测试人员 更新时间
1 测试 王绍威 2020/4/13

二、前端实现

  • 1、实现退房页面 ```java //退房的订单信息显示 submitCheckOut(){ CheckOut(this.checkOutDTO.roomId).then((response) => {
    1. if(response.data){
    2. this.$message.success("退房成功");
    3. }
    }); this.checkout=false; this.getList(); },
  1. <a name="mG5tp"></a>
  2. ## 三、后端实现
  3. <a name="c0lV5"></a>
  4. ### 1、退房业务
  5. - 1、实现退房办理checkOut接口:
  6. ```python
  7. /**
  8. * 对房间进行退房处理
  9. *
  10. * @param roomId
  11. * @return 反馈信息
  12. */
  13. String checkOut(Integer roomId);
  • 2、退房业务实现

    • 检查前端输入的房号信息,通过房间id查询相关房间状态,当房间是已入住状态时才可办理退房,并修改房间状态为待打扫,并修改相关订单状态为已退房。

      1. /**
      2. * 对房间进行退房处理
      3. *
      4. * @param roomId
      5. * @return 反馈信息
      6. */
      7. @Override
      8. public String checkOut(Integer roomId) {
      9. //获取正在入住该房间订单信息
      10. HotOrder hotOrder = new HotOrder();
      11. hotOrder.setRoomId(roomId);
      12. HotOrder order = hotOrderMapper.queryAll(hotOrder).get(0);
      13. //获取该房间
      14. HotRoom room = order.getRoom();
      15. //当状态有误时
      16. if (room.getRoomStatus() == 1) return room.getRoomNum() + "房是空房,请检查房间状态!";
      17. //更新房间状态为(0待打扫,1可入住)
      18. room.setRoomClean(0);
      19. room.setRoomStatus(1);
      20. //更新订单状态和房间状态
      21. hotOrder.setOrderStatus(2);
      22. hotOrderMapper.update(hotOrder);
      23. hotRoomMapper.update(room);
      24. return "退房成功";

      2、多方式支付+找零

      2.1现金支付

      1. /**
      2. * 现金支付
      3. *
      4. * @param hotOrderPay 支付明细信息
      5. * @return 实付金额与未支付金额的差额
      6. */
      7. Double cashPay(HotOrderPay hotOrderPay);
      8. /**
      9. * 获取订单剩余未支付金额
      10. *
      11. * @param orderId
      12. * @return double
      13. */
      14. 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) {

        1. 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; }

/**

  1. * 获取订单剩余未支付金额
  2. *
  3. * @param orderId
  4. * @return double
  5. */
  6. @Override
  7. public double getUnpaid(Integer orderId) {
  8. HotOrder order = hotOrderMapper.queryById(orderId);
  9. //求出剩余未支付金额
  10. HotOrderPay pay = new HotOrderPay();
  11. pay.setOrderId(orderId);
  12. List<HotOrderPay> payList = hotOrderPayMapper.queryAll(pay);
  13. double unpaid = 0;
  14. for (HotOrderPay hotOrderPay : payList) {
  15. unpaid += hotOrderPay.getPayAmount();
  16. }
  17. unpaid = order.getOrderTotalAmount() - unpaid;
  18. return unpaid;
  19. }

```

四、用例测试

1、退房

序号 用例 实现情况
1 工作人员查询房间号 通过
2 核实顾客信息并退房 通过
3 房间状态修改为待清洁 通过
4 订单状态从已入住变为已退房 通过

2、支付找零

序号 用例 实现情况
1 显示应付金额 通过
2 输入实付金额和选择付款方式 通过
3 系统返回找零金额 通过
4 订单支付成功 通过

五、接口测试

1、找零:

后端计算出应付房费为:2379,
前端返回输入的实付金额:3000,
后端计算找零应为:621。
image.png

2、订单支付成功

image.png

3、退房

后端返回提示:退房成功
image.png
image.png
image.png