diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java index f237926bb..22eb72802 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java @@ -283,13 +283,18 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic if (!StringUtils.equals(pileReservationInfo.getMemberId(), dto.getMemberId())) { return; } + if (StringUtils.equals(pileReservationInfo.getStatus(), Constants.ONE)) { + sendReservationCommandAndAssertSuccess(pileReservationInfo, dto.getMemberId(), "02"); + } pileReservationInfo.setDelFlag(DelFlagEnum.DELETE.getValue()); + pileReservationInfo.setStatus(Constants.ZERO); pileReservationInfoMapper.updateByPrimaryKey(pileReservationInfo); } @Override public int createReservation(CreateReservedDTO dto) { PileReservationInfo reservedInfo = selectByPileConnectorCode(dto.getPileConnectorCode()); + boolean activeBeforeUpdate = reservedInfo != null && StringUtils.equals(reservedInfo.getStatus(), Constants.ONE); if (reservedInfo == null) { reservedInfo = new PileReservationInfo(); reservedInfo.setCreateBy(dto.getMemberId()); @@ -320,6 +325,11 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic reservedInfo.setReservationType("recurring"); reservedInfo.setFreq("daily"); + if (!isTimeSlotAvailable(reservedInfo.getMemberId(), reservedInfo.getPileSn(), + reservedInfo.getStartTime(), reservedInfo.getEndTime(), reservedInfo.getId())) { + throw new BusinessException(ReturnCodeEnum.CODE_UPDATE_RESERVED_STATUS_REFUSED); + } + sendReservationCommandAndAssertSuccess(reservedInfo, dto.getMemberId(), activeBeforeUpdate ? "03" : "01"); this.insertOrUpdateSelective(reservedInfo); return reservedInfo.getId(); }