Преглед на файлове

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

luoyb преди 1 година
родител
ревизия
16dd48c70a

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

@@ -147,6 +147,8 @@ public class TraineeBusiness {
         bo.setCheckInDate(remoteDeptVo.getCheckDate());
         bo.setCheckoutDate(remoteDeptVo.getEndDate());
         // 获取学员作为入住客人的信息
+        bo.setOtherUserId(ycTraineeVo.getOtherId());
+        bo.setOtherDeptId(remoteDeptVo.getOtherId());
         getGuestInfo(bo, ycTraineeVo.getOtherId(), remoteDeptVo.getOtherId());
         // 1.如果当前人员没有住房,则安排房间
         String roomCode = bo.getRoomCode();
@@ -349,8 +351,6 @@ public class TraineeBusiness {
         if(result){
             ycTraineeVo.setCheckinState(1);
         }
-        //更新客房状态
-        result = roomService.updateGuestRoomStatus(bo.getRoomCode(), DefaultConstants.TENANT_ID, HotelRoomStatusEnum.YZ.code());
     }
 
     /**
@@ -358,10 +358,10 @@ public class TraineeBusiness {
      * @param bo 学员报到业务对象
      * @param ycTraineeVo 学员信息
      */
-    private void sendCheckInMessageToKafka(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
+    public void sendCheckInMessageToKafka(YcTraineeBo bo, YcTraineeVo ycTraineeVo){
         TraineeCheckIn traineeCheckIn = new TraineeCheckIn();
-        traineeCheckIn.setOtherSysId(ycTraineeVo.getOtherId());
-        traineeCheckIn.setClassId(ycTraineeVo.getUserClass().getOtherId());
+        traineeCheckIn.setOtherSysId(bo.getOtherUserId());
+        traineeCheckIn.setClassId(bo.getOtherDeptId());
         traineeCheckIn.setCheckinState(true);
         traineeCheckIn.setCheckInDate(bo.getCheckInDate());
         traineeCheckIn.setPayStatus(true);

+ 12 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java

@@ -16,7 +16,6 @@ import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.system.api.domain.vo.RemoteDeptVo;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -80,7 +79,7 @@ public class TraineeController {
      */
     @PostMapping("/api/v1/register")
     public ReturnResult checkInTrainee(@RequestBody YcTraineeBo bo) {
-        if (bo.getCheckinState() == 1) {
+        if (bo.getCheckInState() == 1) {
             return ReturnResult.failure(ResultCodeEnum.RESOURCE_EXISTED, "您已经报到过了,请勿重复报到");
         }
         YcTraineeVo traineeVo = new YcTraineeVo();
@@ -103,6 +102,10 @@ public class TraineeController {
         return ReturnResult.success(list);
     }
 
+    /**
+     * 锁房测试
+     * @return 锁房结果
+     */
     @PostMapping("/api/v1/lock/room")
     public ReturnResult lockRoomTest() {
         // List<RemoteOrderVo> vos= traineeBusiness.selectTeamLockRoom(1858315769720258561L);
@@ -110,4 +113,11 @@ public class TraineeController {
         R<Void> result = traineeBusiness.setDoingClassLockRoom(DateUtil.date());
         return R.isSuccess(result) ? ReturnResult.success() : ReturnResult.failure(result.getCode(), result.getMsg());
     }
+
+    @PostMapping("/api/v1/send/kafka")
+    public ReturnResult sendKafka(@RequestBody YcTraineeBo bo) {
+        traineeBusiness.sendCheckInMessageToKafka(bo,null);
+
+        return ReturnResult.success();
+    }
 }

+ 11 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/domain/bo/yc/YcTraineeBo.java

@@ -8,7 +8,7 @@ import java.io.Serializable;
 import java.util.Date;
 
 /**
- * @ClassName YcTraineeVo
+ * @ClassName YcTraineeBo
  * @Description TODO
  * @Author luoyibo
  * @Date 2024-11-14 08:56
@@ -83,5 +83,14 @@ public class YcTraineeBo implements Serializable {
     /**
      * 报到状态
      */
-    private Integer checkinState;
+    private Integer checkInState;
+    /**
+     * 人员统一标识符
+     */
+    private String otherUserId;
+
+    /**
+     * 所在培训班统一标识符
+     */
+    private String otherDeptId;
 }

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

@@ -8,6 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.api.RemotePtRoomService;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.constant.HotelBusinessConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.enums.HotelRoomStatusEnum;
@@ -41,6 +44,8 @@ import java.util.*;
 @RequiredArgsConstructor
 @Service
 public class KfOrderServiceImpl implements IKfOrderService {
+    @DubboReference
+    private final RemotePtRoomService roomService;
 
     private final KfOrderMapper baseMapper;
     private final IKfTeamService teamService;
@@ -301,8 +306,10 @@ public class KfOrderServiceImpl implements IKfOrderService {
             } else {
                 this.insertByBo(bo);
             }
+            //设置团客报到状态
             guestTeamService.setGuestCheckInStatus(bo.getGuestId(), bo.getTeamId());
-
+            //设置房间状态
+            roomService.updateGuestRoomStatus(bo.getRoomCode(), DefaultConstants.TENANT_ID, HotelRoomStatusEnum.YZ.code());
             KfOrderBo queryBo = new KfOrderBo();
             queryBo.setId(bo.getId());
             queryBo.setOrderStatus(HotelBusinessConstants.ORDER_STATUS_RZ);