|
|
@@ -4,11 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.HexUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
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.cardCenter.domain.bo.PtCardBo;
|
|
|
import org.dromara.backstage.cardCenter.service.IPtCardService;
|
|
|
@@ -19,6 +20,7 @@ import org.dromara.backstage.domain.convert.YcVoConvert;
|
|
|
import org.dromara.backstage.domain.vo.card.PtCardVo;
|
|
|
import org.dromara.backstage.domain.vo.yc.YcBagVo;
|
|
|
import org.dromara.backstage.domain.vo.yc.YcCardVo;
|
|
|
+import org.dromara.backstage.domain.vo.yc.YcLockCardVo;
|
|
|
import org.dromara.backstage.domain.vo.yc.YcTraineeVo;
|
|
|
import org.dromara.backstage.mq.KafkaNormalProducer;
|
|
|
import org.dromara.backstage.mq.constant.YktEventConstaints;
|
|
|
@@ -31,16 +33,20 @@ import org.dromara.common.core.constant.CacheNames;
|
|
|
import org.dromara.common.core.constant.HotelBusinessConstants;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.domain.model.ErrorInfo;
|
|
|
+import org.dromara.common.core.enums.CardStatusEnum;
|
|
|
import org.dromara.common.core.enums.ResultCodeEnum;
|
|
|
import org.dromara.common.core.enums.RoomCardTypeEnum;
|
|
|
import org.dromara.common.message.kafka.domain.KafkaHeader;
|
|
|
import org.dromara.common.message.kafka.domain.KafkaMessage;
|
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
|
+import org.dromara.hotel.api.domain.bo.RemoteCardDataBo;
|
|
|
import org.dromara.hotel.api.domain.bo.RemoteOrderBo;
|
|
|
import org.dromara.hotel.api.domain.bo.RemoteTeamBo;
|
|
|
+import org.dromara.hotel.api.domain.vo.RemoteCardDataVo;
|
|
|
import org.dromara.hotel.api.domain.vo.RemoteGuestVo;
|
|
|
import org.dromara.hotel.api.domain.vo.RemoteOrderVo;
|
|
|
import org.dromara.hotel.api.domain.vo.RemoteTeamVo;
|
|
|
+import org.dromara.hotel.api.service.RemoteCardDataService;
|
|
|
import org.dromara.hotel.api.service.RemoteGuestService;
|
|
|
import org.dromara.hotel.api.service.RemoteOrderService;
|
|
|
import org.dromara.hotel.api.service.RemoteTeamService;
|
|
|
@@ -51,6 +57,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
|
|
|
/**
|
|
|
@@ -73,6 +80,8 @@ public class TraineeBusiness {
|
|
|
private final RemoteTeamService kfTeamService;
|
|
|
@DubboReference
|
|
|
private final RemoteGuestService kfGuestService;
|
|
|
+ @DubboReference
|
|
|
+ private final RemoteCardDataService remoteCardDataService;
|
|
|
|
|
|
private final IPtUserAccountService userAccountService;
|
|
|
private final IPtCardService cardService;
|
|
|
@@ -80,7 +89,6 @@ public class TraineeBusiness {
|
|
|
private final LockBusiness lockBusiness;
|
|
|
private final KafkaNormalProducer kafkaProducer;
|
|
|
private final SelfBusiness selfBusiness;
|
|
|
- private final IPtRoomService roomService;
|
|
|
|
|
|
/**
|
|
|
* 获取报到学员信息
|
|
|
@@ -183,6 +191,8 @@ public class TraineeBusiness {
|
|
|
|
|
|
// 发送报到的kafka消息
|
|
|
sendCheckInMessageToKafka(bo);
|
|
|
+ //写发卡记录表
|
|
|
+ insertCardData(ycTraineeVo);
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
@@ -351,6 +361,28 @@ public class TraineeBusiness {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 写入发房卡历史记录
|
|
|
+ * @param traineeVo 客信息
|
|
|
+ */
|
|
|
+ private void insertCardData(YcTraineeVo traineeVo){
|
|
|
+ if(ObjectUtil.isNotEmpty(traineeVo.getRoomCardData())) {
|
|
|
+ YcCardVo cardVo = traineeVo.getUserCards().stream().filter(p -> ObjectUtil.equals(p.getCardStatusId(), CardStatusEnum.NORMAL.code())).findFirst().orElse(null);
|
|
|
+ RemoteCardDataBo remoteCardDataBo = new RemoteCardDataBo();
|
|
|
+ if (cardVo != null) {
|
|
|
+ remoteCardDataBo.setFactoryId(cardVo.getFactoryFixId().toString());
|
|
|
+ }
|
|
|
+ remoteCardDataBo.setCardType("1");
|
|
|
+ remoteCardDataBo.setRoomCode(traineeVo.getRoomCode());
|
|
|
+ remoteCardDataBo.setMasterName(traineeVo.getUserXm());
|
|
|
+ remoteCardDataBo.setStartTime(traineeVo.getCheckinDate());
|
|
|
+ remoteCardDataBo.setEndTime(traineeVo.getCheckoutDate());
|
|
|
+ remoteCardDataBo.setCardStatus("1");
|
|
|
+ remoteCardDataBo.setRemark("客人卡");
|
|
|
+
|
|
|
+ remoteCardDataService.insertCardDataByBo(remoteCardDataBo);
|
|
|
+ }
|
|
|
+ }
|
|
|
/**
|
|
|
* 发送报到信息到kafka
|
|
|
*
|
|
|
@@ -376,4 +408,52 @@ public class TraineeBusiness {
|
|
|
|
|
|
kafkaProducer.sendKafkaMessage("eventBus",bo.getGuestId(),message,false);
|
|
|
}
|
|
|
+
|
|
|
+ public YcLockCardVo queryLockCardInfo(Map<String, Object> mapQuery){
|
|
|
+ String cardNo = mapQuery.get("cardNo").toString();
|
|
|
+ String userCard = mapQuery.get("userCard").toString();
|
|
|
+ String cardData = mapQuery.get("cardData").toString();
|
|
|
+ String roomCard = mapQuery.get("roomCard").toString();
|
|
|
+ String isRoomCard = "1";
|
|
|
+ String isUserCard = "1";
|
|
|
+ int roomCardLen = 16;
|
|
|
+ YcLockCardVo lockCardInfo = new YcLockCardVo();
|
|
|
+ lockCardInfo.setUserCard(userCard);
|
|
|
+ lockCardInfo.setRoomCard(roomCard);
|
|
|
+ lockCardInfo.setManageCard("0");
|
|
|
+ lockCardInfo.setUserXm("");
|
|
|
+ lockCardInfo.setRoomCode("");
|
|
|
+ lockCardInfo.setCheckinDate("");
|
|
|
+ lockCardInfo.setCheckoutDate("");
|
|
|
+ lockCardInfo.setDataRemark("");
|
|
|
+ lockCardInfo.setClassName("");
|
|
|
+
|
|
|
+ //如果是房卡,获取房卡信息
|
|
|
+ if (isRoomCard.equals(roomCard)) {
|
|
|
+ RemoteCardDataBo bo = new RemoteCardDataBo();
|
|
|
+ bo.setCardStatus("1");
|
|
|
+ bo.setFactoryId(cardNo);
|
|
|
+ RemoteCardDataVo userCardData = remoteCardDataService.getCardDataByBo(bo);
|
|
|
+ if (userCardData != null) {
|
|
|
+ lockCardInfo.setUserXm(userCardData.getMasterName());
|
|
|
+ lockCardInfo.setRoomCode(userCardData.getRoomCode());
|
|
|
+ lockCardInfo.setCheckinDate(DateUtil.formatDateTime(userCardData.getStartTime()));
|
|
|
+ lockCardInfo.setCheckoutDate(DateUtil.formatDateTime(userCardData.getEndTime()));
|
|
|
+ lockCardInfo.setDataRemark(userCardData.getRemark());
|
|
|
+ // lockCardInfo.setManageCard(userCardData);
|
|
|
+ } else{
|
|
|
+ log.error("没有对应的住宿信息-[数据:{},卡号:{}]", cardData, cardNo);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果是餐卡,获取餐卡信息
|
|
|
+ //if(isUserCard.equals(userCard)){
|
|
|
+ // Map<String, Object> userInfo = userService.getHndxUserByFixId(String.valueOf(cardNo));
|
|
|
+ // if(userInfo!=null){
|
|
|
+ // lockCardInfo.setUserXm(userInfo.get("name").toString());
|
|
|
+ // lockCardInfo.setClassName(userInfo.get("className").toString());
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ return lockCardInfo;
|
|
|
+ }
|
|
|
}
|