|
@@ -5,18 +5,23 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.dromara.backstage.api.domain.vo.RemoteCardVo;
|
|
|
import org.dromara.common.core.config.DefaultConfig;
|
|
import org.dromara.common.core.config.DefaultConfig;
|
|
|
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.DefaultConstants;
|
|
|
import org.dromara.common.core.domain.R;
|
|
import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.enums.SystemUseTypeEnum;
|
|
import org.dromara.common.core.enums.SystemUseTypeEnum;
|
|
|
|
|
+import org.dromara.common.json.utils.JsonUtils;
|
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
|
|
|
+import org.dromara.server.common.constant.ConsumeConstants;
|
|
|
|
|
+import org.dromara.server.consume.cache.CardCacheManager;
|
|
|
import org.dromara.server.consume.cache.TokenManager;
|
|
import org.dromara.server.consume.cache.TokenManager;
|
|
|
import org.dromara.server.consume.domain.vo.XfTermVo;
|
|
import org.dromara.server.consume.domain.vo.XfTermVo;
|
|
|
import org.dromara.server.consume.domain.vo.yc.RoomInfo;
|
|
import org.dromara.server.consume.domain.vo.yc.RoomInfo;
|
|
|
import org.dromara.server.consume.domain.vo.yc.SettlementAccount;
|
|
import org.dromara.server.consume.domain.vo.yc.SettlementAccount;
|
|
|
import org.dromara.server.consume.domain.vo.yc.TermInfo;
|
|
import org.dromara.server.consume.domain.vo.yc.TermInfo;
|
|
|
import org.dromara.server.consume.domain.vo.yc.TermToken;
|
|
import org.dromara.server.consume.domain.vo.yc.TermToken;
|
|
|
|
|
+import org.dromara.server.consume.service.IXfTermService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.text.MessageFormat;
|
|
import java.text.MessageFormat;
|
|
@@ -60,6 +65,8 @@ public class TermBusiness {
|
|
|
|
|
|
|
|
private final TokenManager tokenManager;
|
|
private final TokenManager tokenManager;
|
|
|
private final DefaultConfig defaultConfig;
|
|
private final DefaultConfig defaultConfig;
|
|
|
|
|
+ private final IXfTermService termService;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取终端令牌(TermToken)。
|
|
* 获取终端令牌(TermToken)。
|
|
@@ -163,13 +170,7 @@ public class TermBusiness {
|
|
|
* 如果操作成功,则 TermInfo 将包含在返回值中;如果失败,则可能包含错误信息。
|
|
* 如果操作成功,则 TermInfo 将包含在返回值中;如果失败,则可能包含错误信息。
|
|
|
*/
|
|
*/
|
|
|
public R<TermInfo> getTermInfoByTermNo(Long termNo, String tenantId) {
|
|
public R<TermInfo> getTermInfoByTermNo(Long termNo, String tenantId) {
|
|
|
- List<XfTermVo> list = RedisUtils.getCacheList(CacheNames.PT_TERM_LIST);
|
|
|
|
|
- if (CollectionUtil.isEmpty(list)) {
|
|
|
|
|
- return R.fail("无设备清单,请重新加载数据");
|
|
|
|
|
- }
|
|
|
|
|
- XfTermVo termVo = list.stream().filter(x -> ObjectUtil.equals(x.getTermNo(), termNo)
|
|
|
|
|
- && ObjectUtil.equals(x.getTenantId(), tenantId)).findFirst().orElse(null);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ XfTermVo termVo = getTermFromCache(String.valueOf(termNo), ConsumeConstants.TERM_NO);
|
|
|
if(termVo == null) {
|
|
if(termVo == null) {
|
|
|
return R.fail(MessageFormat.format("机号为[{0}]的设备不存在", termNo), null);
|
|
return R.fail(MessageFormat.format("机号为[{0}]的设备不存在", termNo), null);
|
|
|
} else {
|
|
} else {
|
|
@@ -195,6 +196,17 @@ public class TermBusiness {
|
|
|
return R.ok(resultMap);
|
|
return R.ok(resultMap);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public XfTermVo getTermFromCache(String checkParam, Integer checkMode) {
|
|
|
|
|
+ switch (checkMode) {
|
|
|
|
|
+ case ConsumeConstants.TERM_NO -> {
|
|
|
|
|
+ return termService.queryVoOneByNo(Long.valueOf(checkParam));
|
|
|
|
|
+ }
|
|
|
|
|
+ case ConsumeConstants.TERM_MAC -> {
|
|
|
|
|
+ return termService.queryVoOneByMac(checkParam);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
/**
|
|
/**
|
|
|
* 将系统中的设备信息转换成消费机可接收的类型
|
|
* 将系统中的设备信息转换成消费机可接收的类型
|
|
|
* @param termVo 系统消费机信息
|
|
* @param termVo 系统消费机信息
|