|
|
@@ -313,6 +313,56 @@ public class KfOrderServiceImpl implements IKfOrderService {
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 批量取消订单
|
|
|
+ * @param bo 预定和入住的订单
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public Boolean distributeForRoomStatus(List<KfOrderBo> bo) {
|
|
|
+ boolean flag = false;
|
|
|
+ if(CollectionUtil.isEmpty(bo)){
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+ // 1. 修改订单状态 只有预定和入住的可以退房
|
|
|
+ List<String> orderStatusYd = List.of(HotelBusinessConstants.ORDER_STATUS_YD, HotelBusinessConstants.ORDER_STATUS_RZ);
|
|
|
+ List<KfOrderBo> kfOrderBos = bo.stream().filter(item -> orderStatusYd.contains(item.getOrderStatus())).toList();
|
|
|
+ if(CollectionUtil.isEmpty(kfOrderBos)){
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+ List<KfOrder> convert = new ArrayList<>();
|
|
|
+ kfOrderBos.forEach(item -> {
|
|
|
+ KfOrder kfOrder = new KfOrder();
|
|
|
+ kfOrder.setId(item.getId());
|
|
|
+ kfOrder.setOrderStatus(item.getOrderStatus());
|
|
|
+ if(HotelBusinessConstants.ORDER_STATUS_YD.equals(item.getOrderStatus())){
|
|
|
+ item.setOrderStatus(HotelBusinessConstants.ORDER_STATUS_QX);
|
|
|
+ }else{
|
|
|
+ item.setOrderStatus(HotelBusinessConstants.ORDER_STATUS_TF);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if(CollectionUtil.isEmpty(convert)){
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+ boolean b = baseMapper.updateBatchById(convert);
|
|
|
+ if(!b){
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+ // 2. 修改房间状态 updateRoomStatusBatch
|
|
|
+ List<KfOrder> oks = convert.stream().filter(item -> HotelBusinessConstants.ORDER_STATUS_QX.equals(item.getOrderStatus())).toList();
|
|
|
+ //ok房
|
|
|
+ List<String> okRoomCodes = oks.stream().map(KfOrder::getRoomCode).toList();
|
|
|
+ int i = baseMapper.updateRoomStatusBatch(okRoomCodes, HotelRoomStatusEnum.OK.code());
|
|
|
+
|
|
|
+ List<KfOrder> zfs = convert.stream().filter(item -> HotelBusinessConstants.ORDER_STATUS_TF.equals(item.getOrderStatus())).toList();
|
|
|
+ //脏房
|
|
|
+ List<String> zfRoomCodes = zfs.stream().map(KfOrder::getRoomCode).toList();
|
|
|
+ int j = baseMapper.updateRoomStatusBatch(zfRoomCodes, HotelRoomStatusEnum.ZF.code());
|
|
|
+
|
|
|
+ return i > 0 && j > 0;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 保存前的数据校验
|
|
|
*/
|