Просмотр исходного кода

feature: 酒店系统
1.入住时同时设置客房的状态为入住

luoyb 1 год назад
Родитель
Сommit
65acc6b5e4

+ 10 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemotePtRoomService.java

@@ -20,4 +20,14 @@ public interface RemotePtRoomService {
     Boolean batchSet(RemotePtRoomBatchSetBo bo);
     Boolean batchSet(RemotePtRoomBatchSetBo bo);
 
 
     RemotePtRoomVo selectVoById(Long id) ;
     RemotePtRoomVo selectVoById(Long id) ;
+
+    /**
+     * 更新客房的状态
+     *
+     * @param roomCode   房间号
+     * @param tenantId   租户Id
+     * @param roomStatus
+     * @return 更新结果
+     */
+    Boolean updateGuestRoomStatus(String roomCode, String tenantId, String roomStatus);
 }
 }

+ 13 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/dubbo/RemotePtRoomServiceImpl.java

@@ -50,4 +50,17 @@ public class RemotePtRoomServiceImpl implements RemotePtRoomService {
         PtRoomVo vo = roomService.queryById(id);
         PtRoomVo vo = roomService.queryById(id);
         return MapstructUtils.convert(vo,RemotePtRoomVo.class);
         return MapstructUtils.convert(vo,RemotePtRoomVo.class);
     }
     }
+
+    /**
+     * 更新客房的状态
+     *
+     * @param roomCode   房间号
+     * @param tenantId   租户Id
+     * @param roomStatus 房间状态
+     * @return 更新结果
+     */
+    @Override
+    public Boolean updateGuestRoomStatus(String roomCode, String tenantId, String roomStatus) {
+        return roomService.updateGuestRoomStatus(roomCode, tenantId, roomStatus);
+    }
 }
 }

+ 9 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/IPtRoomService.java

@@ -1,7 +1,5 @@
 package org.dromara.backstage.basics.service;
 package org.dromara.backstage.basics.service;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.dromara.backstage.basics.domain.PtRoom;
 import org.dromara.backstage.basics.domain.bo.PtRoomBatchSetBo;
 import org.dromara.backstage.basics.domain.bo.PtRoomBatchSetBo;
 import org.dromara.backstage.basics.domain.vo.PtAreaVo;
 import org.dromara.backstage.basics.domain.vo.PtAreaVo;
 import org.dromara.backstage.basics.domain.vo.PtRoomVo;
 import org.dromara.backstage.basics.domain.vo.PtRoomVo;
@@ -98,4 +96,13 @@ public interface IPtRoomService {
      * @return
      * @return
      */
      */
     Map<String, Long> getCountByStatus();
     Map<String, Long> getCountByStatus();
+    /**
+     * 更新客房的状态
+     *
+     * @param roomCode   房间号
+     * @param tenantId   租户Id
+     * @param roomStatus 房间状态
+     * @return 更新结果
+     */
+    Boolean updateGuestRoomStatus(String roomCode, String tenantId, String roomStatus);
 }
 }

+ 17 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtRoomServiceImpl.java

@@ -2,7 +2,6 @@ package org.dromara.backstage.basics.service.impl;
 
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.map.MapUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.dromara.backstage.basics.domain.bo.PtRoomBatchSetBo;
 import org.dromara.backstage.basics.domain.bo.PtRoomBatchSetBo;
 import org.dromara.backstage.basics.domain.vo.PtAreaVo;
 import org.dromara.backstage.basics.domain.vo.PtAreaVo;
@@ -347,4 +346,21 @@ public class PtRoomServiceImpl implements IPtRoomService {
         }
         }
         return baseMapper.deleteByIds(ids) > 0;
         return baseMapper.deleteByIds(ids) > 0;
     }
     }
+    /**
+     * 更新客房的状态
+     *
+     * @param roomCode   房间号
+     * @param tenantId   租户Id
+     * @param roomStatus 房间状态
+     * @return 更新结果
+     */
+    @Override
+    public Boolean updateGuestRoomStatus(String roomCode, String tenantId, String roomStatus) {
+        LambdaUpdateWrapper<PtRoom> luw = new LambdaUpdateWrapper<>();
+        luw.set(PtRoom::getStatus,roomStatus);
+        luw.eq(PtRoom::getRoomCode, roomCode);
+        luw.eq(PtRoom::getTenantId, tenantId);
+
+        return baseMapper.update(null,luw)>0;
+    }
 }
 }

+ 17 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.basics.service.IPtRoomService;
 import org.dromara.backstage.business.lock.LockBusiness;
 import org.dromara.backstage.business.lock.LockBusiness;
 import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
@@ -27,9 +28,11 @@ import org.dromara.backstage.payment.domain.vo.PtBagVo;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.backstage.payment.service.IPtUserAccountService;
 import org.dromara.backstage.payment.service.IPtUserAccountService;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.constant.HotelBusinessConstants;
 import org.dromara.common.core.constant.HotelBusinessConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.common.core.domain.model.ErrorInfo;
+import org.dromara.common.core.enums.HotelRoomStatusEnum;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.core.enums.RoomCardTypeEnum;
 import org.dromara.common.core.enums.RoomCardTypeEnum;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
@@ -79,6 +82,7 @@ public class TraineeBusiness {
     private final LockBusiness lockBusiness;
     private final LockBusiness lockBusiness;
     private final KafkaNormalProducer kafkaProducer;
     private final KafkaNormalProducer kafkaProducer;
     private final SelfBusiness selfBusiness;
     private final SelfBusiness selfBusiness;
+    private final IPtRoomService roomService;
 
 
     /**
     /**
      * 获取报到学员信息
      * 获取报到学员信息
@@ -334,13 +338,26 @@ public class TraineeBusiness {
         }
         }
     }
     }
 
 
+    /**
+     * 设置学员报到状态
+     * @param bo 学员报到业务对象
+     * @param ycTraineeVo 学员信息
+     */
     private void setCheckInfoStatus(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
     private void setCheckInfoStatus(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
+        //更新报到状态
         Boolean result = remoteDeptService.updateCheckInStatus(Long.valueOf(bo.getDeptId()),Long.valueOf(bo.getUserId()));
         Boolean result = remoteDeptService.updateCheckInStatus(Long.valueOf(bo.getDeptId()),Long.valueOf(bo.getUserId()));
         if(result){
         if(result){
             ycTraineeVo.setCheckinState(1);
             ycTraineeVo.setCheckinState(1);
         }
         }
+        //更新客房状态
+        result = roomService.updateGuestRoomStatus(bo.getRoomCode(), DefaultConstants.TENANT_ID, HotelRoomStatusEnum.YZ.code());
     }
     }
 
 
+    /**
+     * 发送报到信息到kafka
+     * @param bo 学员报到业务对象
+     * @param ycTraineeVo 学员信息
+     */
     private void sendCheckInMessageToKafka(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
     private void sendCheckInMessageToKafka(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
         TraineeCheckIn traineeCheckIn = new TraineeCheckIn();
         TraineeCheckIn traineeCheckIn = new TraineeCheckIn();
         traineeCheckIn.setOtherSysId(ycTraineeVo.getOtherId());
         traineeCheckIn.setOtherSysId(ycTraineeVo.getOtherId());

+ 1 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfOrderServiceImpl.java

@@ -302,6 +302,7 @@ public class KfOrderServiceImpl implements IKfOrderService {
                 this.insertByBo(bo);
                 this.insertByBo(bo);
             }
             }
             guestTeamService.setGuestCheckInStatus(bo.getGuestId(), bo.getTeamId());
             guestTeamService.setGuestCheckInStatus(bo.getGuestId(), bo.getTeamId());
+
             KfOrderBo queryBo = new KfOrderBo();
             KfOrderBo queryBo = new KfOrderBo();
             queryBo.setId(bo.getId());
             queryBo.setId(bo.getId());
             queryBo.setOrderStatus(HotelBusinessConstants.ORDER_STATUS_RZ);
             queryBo.setOrderStatus(HotelBusinessConstants.ORDER_STATUS_RZ);