|
|
@@ -12,6 +12,7 @@ import com.chuanghai.ihotel.constant.RedisKey;
|
|
|
import com.chuanghai.ihotel.constant.TimeConstant;
|
|
|
import com.chuanghai.ihotel.controller.request.RoomLockRequest;
|
|
|
import com.chuanghai.ihotel.controller.request.RoomRealtimeStatuRequest;
|
|
|
+import com.chuanghai.ihotel.controller.request.ToDirtyRequest;
|
|
|
import com.chuanghai.ihotel.dao.RoomRealtimeStatuDao;
|
|
|
import com.chuanghai.ihotel.dto.LockRoomDTO;
|
|
|
import com.chuanghai.ihotel.entity.RoomEntity;
|
|
|
@@ -30,8 +31,7 @@ import org.redisson.api.RedissonClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import javax.validation.constraints.NotNull;
|
|
|
-import javax.validation.constraints.Size;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
@@ -228,6 +228,43 @@ public class RoomRealtimeStatuServiceImpl extends ServiceImpl<RoomRealtimeStatuD
|
|
|
this.saveBatch(collect);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void toDirtyByRoomId(ToDirtyRequest request) {
|
|
|
+ // 房间在当前时间段内不是预定、入住状态时才可以转脏房
|
|
|
+ LocalDate startDay = request.getStartDay();
|
|
|
+ LocalDate endDay = request.getEndDay();
|
|
|
+ LocalDateTime startTime = CommonUtil.localDateToTime(startDay, TimeConstant.INTO_TIME);
|
|
|
+ LocalDateTime endTime = CommonUtil.localDateToTime(endDay, TimeConstant.OUT_TIME);
|
|
|
+ Long roomId = request.getRoomId();
|
|
|
+
|
|
|
+ RoomRealtimeStatuEntity statu = this.getBaseMapper().getByRoomIdAndTime(roomId, startTime, endTime);
|
|
|
+ if (statu == null) {
|
|
|
+ RoomEntity room = roomService.getById(roomId);
|
|
|
+ if (room == null) {
|
|
|
+ throw new RRException(BizCodeEnume.PARAMETER_ERROR, "房间不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ statu = new RoomRealtimeStatuEntity();
|
|
|
+ statu.setRoomId(roomId);
|
|
|
+ statu.setRoomTypeId(room.getRoomTypeId());
|
|
|
+ statu.setStatu(RoomStatuEnum.DIRTY.getCode());
|
|
|
+ statu.setStartTime(startTime);
|
|
|
+ statu.setEndTime(endTime);
|
|
|
+ statu.setBizId(-1L);
|
|
|
+
|
|
|
+ this.save(statu);
|
|
|
+ } else {
|
|
|
+ String statu1 = statu.getStatu();
|
|
|
+ if (RoomStatuEnum.ORDER.getCode().equals(statu1) || RoomStatuEnum.HOLD.getCode().equals(statu1)) {
|
|
|
+ throw new RRException(BizCodeEnume.PERMISSION_DENIED, "当前房间已经被预定或入住不可转脏房");
|
|
|
+ }
|
|
|
+
|
|
|
+ statu.setStatu(RoomStatuEnum.DIRTY.getCode());
|
|
|
+
|
|
|
+ this.updateById(statu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private RoomRealtimeStatuEntity findByBizId(Long bizId) {
|
|
|
QueryWrapper<RoomRealtimeStatuEntity> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("biz_id", bizId);
|