Commit 8466fca6 by 吕明尚

修改续单

parent c2a587fc
......@@ -96,19 +96,27 @@ public class RoomStatusServiceImpl implements RoomStatusService {
private List<RoomStatusVo> generatorRoomStatusList(SStore store,SRoom room,List<SOrder> orderList,SCleanRecords cleanRecords,Date day, Integer orderType, SConsumer user){
String nowTime = "00:00";
Boolean isAvailable;
Boolean isAvailable = false;
if (orderType.equals(OrderTypeEnum.RENEW.getCode())) {
LambdaQueryWrapper<SOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SOrder::getRoomId, room.getId());
queryWrapper.eq(SOrder::getConsumerId, user.getId());
queryWrapper.eq(SOrder::getStatus, OrderStatusEnum.USED.getCode());
//当前时间减15分钟前的订单
queryWrapper.ge(SOrder::getEndDate, DateUtils.addMinutes(DateUtils.getNowDate(), -15));
SOrder one = orderService.getOne(queryWrapper);
if (!ObjectUtils.isEmpty(one) | redisUtil.exists(ReceiptRdeisEnum.ROOM_EXPIRE_TIME.getValue() + one.getOrderNo())) {
isAvailable = true;
if (CollectionUtils.isNotEmpty(orderList)) {
//查询当前用户是否有使用中的订单
orderList = orderList.stream().filter(order -> order.getConsumerId().compareTo(user.getId()) == 0).collect(Collectors.toList());
if (CollectionUtils.isEmpty(orderList)) {
isAvailable = true;
}
} else {
isAvailable = false;
LambdaQueryWrapper<SOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SOrder::getRoomId, room.getId());
queryWrapper.eq(SOrder::getConsumerId, user.getId());
queryWrapper.in(SOrder::getStatus, OrderStatusEnum.USED.getCode(), OrderStatusEnum.INUSE.getCode());
//当前时间减15分钟前的订单
queryWrapper.ge(SOrder::getEndDate, DateUtils.addMinutes(DateUtils.getNowDate(), -15));
SOrder one = orderService.getOne(queryWrapper);
if (!ObjectUtils.isEmpty(one) | redisUtil.exists(ReceiptRdeisEnum.ROOM_EXPIRE_TIME.getValue() + one.getOrderNo())) {
isAvailable = true;
} else {
isAvailable = false;
}
}
} else {
isAvailable = false;
......@@ -122,6 +130,8 @@ public class RoomStatusServiceImpl implements RoomStatusService {
}
List<RoomStatusVo> voList = new ArrayList<>();
String finalNowTime = nowTime;
Boolean finalIsAvailable = isAvailable;
List<SOrder> finalOrderList = orderList;
Arrays.stream(LOCKS).forEach(lock -> {
RoomStatusVo vo = new RoomStatusVo();
Integer lockInt = Integer.parseInt(lock);
......@@ -134,9 +144,9 @@ public class RoomStatusServiceImpl implements RoomStatusService {
vo.setStoreId(store.getId());
vo.setRoomId(room.getId());
vo.setTimeHour(timeHour);
vo.setIsAvailable(isAvailable);
vo.setIsAvailable(finalIsAvailable);
Date timeHourDate = DateUtils.parseDate(timeHour);
setTimeHourStatus(vo,timeHourDate,store,room,orderList,cleanRecords,dayStr,finalNowTime,isToday,orderType, user);
setTimeHourStatus(vo, timeHourDate, store, room, finalOrderList, cleanRecords, dayStr, finalNowTime, isToday, orderType, user);
voList.add(vo);
});
return voList;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment