|
|
@@ -3,6 +3,7 @@ package org.dromara.backstage.business.self;
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.HexUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
import cn.hutool.http.HttpResponse;
|
|
|
@@ -10,16 +11,26 @@ import cn.hutool.http.HttpUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.dubbo.auth.v1alpha1.Ca;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.checkerframework.checker.guieffect.qual.SafeEffect;
|
|
|
+import org.dromara.backstage.basics.domain.vo.PtCardtypeVo;
|
|
|
+import org.dromara.backstage.business.card.CardBusiness;
|
|
|
import org.dromara.backstage.business.payments.ThirdPayBusiness;
|
|
|
import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBackBo;
|
|
|
import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
|
|
|
import org.dromara.backstage.consumption.service.IXfCreditAccountBackService;
|
|
|
import org.dromara.backstage.domain.bo.yc.YcTraineeBo;
|
|
|
import org.dromara.backstage.domain.convert.YcVoConvert;
|
|
|
+import org.dromara.backstage.domain.vo.card.PtCardVo;
|
|
|
+import org.dromara.backstage.domain.vo.yc.YcSelfCardVo;
|
|
|
import org.dromara.backstage.domain.vo.yc.YcTraineeVo;
|
|
|
import org.dromara.backstage.payment.domain.bo.PayOrderBo;
|
|
|
import org.dromara.backstage.payment.domain.vo.PayOrderVo;
|
|
|
+import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
|
|
|
import org.dromara.backstage.payment.service.IPayOrderService;
|
|
|
+import org.dromara.backstage.payment.service.IPtUserAccountService;
|
|
|
import org.dromara.backstage.task.AsyncTaskService;
|
|
|
import org.dromara.common.core.api.ReturnResult;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
@@ -28,6 +39,9 @@ import org.dromara.common.core.enums.CreditTypeEnum;
|
|
|
import org.dromara.common.core.enums.ResultCodeEnum;
|
|
|
import org.dromara.common.core.exception.ApiException;
|
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
|
+import org.dromara.hotel.api.domain.bo.RemoteCardDataBo;
|
|
|
+import org.dromara.hotel.api.domain.vo.RemoteCardDataVo;
|
|
|
+import org.dromara.hotel.api.service.RemoteCardDataService;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -69,7 +83,11 @@ public class SelfBusiness {
|
|
|
private final IPayOrderService wxOrderService;
|
|
|
private final IXfCreditAccountBackService creditAccountBackService;
|
|
|
private final ThirdPayBusiness thirdPayBusiness;
|
|
|
+ private final CardBusiness cardBusiness;
|
|
|
+ private final IPtUserAccountService userAccountService;
|
|
|
|
|
|
+ @DubboReference
|
|
|
+ private final RemoteCardDataService remoteCardDataService;
|
|
|
/**
|
|
|
* 获取短信平台token
|
|
|
*/
|
|
|
@@ -183,6 +201,49 @@ public class SelfBusiness {
|
|
|
return ReturnResult.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据物理卡号查询人员信息(餐卡、房卡)
|
|
|
+ * @param userFixId 餐卡对应的物理卡号
|
|
|
+ * @param roomFixId 房卡对应的物理卡号
|
|
|
+ * @param roomData 房卡的发卡数据
|
|
|
+ * @return 查询到的人员信息
|
|
|
+ */
|
|
|
+ public ReturnResult getUserCardInfo(Long userFixId, String roomFixId, String roomData) {
|
|
|
+ YcSelfCardVo selfCardVo = new YcSelfCardVo();
|
|
|
+ PtCardVo cardVo = cardBusiness.getUseCardByFactoryId(userFixId);
|
|
|
+ if(ObjectUtil.isNotEmpty(cardVo)){
|
|
|
+ selfCardVo.setCardStatusId(Integer.parseInt(cardVo.getStatus()));
|
|
|
+ selfCardVo.setUserCardTypeId(Math.toIntExact(cardVo.getCardType()));
|
|
|
+ selfCardVo.setCardNo(cardVo.getCardNo());
|
|
|
+ selfCardVo.setFactoryFixId(cardVo.getFactoryId());
|
|
|
+ PtUserAccountVo accountVo = userAccountService.queryById(cardVo.getUserId());
|
|
|
+ if (ObjectUtil.isNotEmpty(accountVo)) {
|
|
|
+ selfCardVo.setUserXm(accountVo.getRealName());
|
|
|
+ selfCardVo.setMobilePhone(accountVo.getPhone());
|
|
|
+ selfCardVo.setDeptName(accountVo.getDeptName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String emptyRoomData = "0000000000000000";
|
|
|
+ int roomCardLen = 16;
|
|
|
+ if(ObjectUtil.notEqual(roomData,emptyRoomData)){
|
|
|
+ roomFixId = HexUtil.toHex(userFixId);
|
|
|
+ if (roomFixId.length() < roomCardLen) {
|
|
|
+ roomFixId = StringUtils.rightPad(roomFixId, 16, "F");
|
|
|
+ }
|
|
|
+ RemoteCardDataBo bo = new RemoteCardDataBo();
|
|
|
+ bo.setCardStatus("1");
|
|
|
+ bo.setFactoryId(roomFixId);
|
|
|
+ RemoteCardDataVo userCardData = remoteCardDataService.getCardDataByBo(bo);
|
|
|
+ if (ObjectUtil.isNotEmpty(userCardData)) {
|
|
|
+ selfCardVo.setRoomCode(userCardData.getRoomCode());
|
|
|
+ selfCardVo.setCheckInDate(DateUtil.formatDateTime(userCardData.getStartTime()));
|
|
|
+ selfCardVo.setCheckInDate(DateUtil.formatDateTime(userCardData.getEndTime()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ReturnResult.success(selfCardVo);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 请求生成微信收款二维码
|
|
|
*
|