|
@@ -1,8 +1,12 @@
|
|
|
package com.cyksj.service.grok.impl;
|
|
package com.cyksj.service.grok.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.lang.UUID;
|
|
import cn.hutool.core.lang.UUID;
|
|
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.util.StringUtil;
|
|
import com.cyksj.common.util.StringUtil;
|
|
@@ -10,6 +14,7 @@ import com.cyksj.mapper.*;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.views.GrokUserView;
|
|
import com.cyksj.model.views.GrokUserView;
|
|
|
import com.cyksj.service.grok.GrokService;
|
|
import com.cyksj.service.grok.GrokService;
|
|
|
|
|
+import com.cyksj.service.sys.SysConfigService;
|
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -43,6 +48,8 @@ public class GrokServiceImpl implements GrokService {
|
|
|
|
|
|
|
|
private final GroupsMapper groupsMapper;
|
|
private final GroupsMapper groupsMapper;
|
|
|
|
|
|
|
|
|
|
+ private final SysConfigService sysConfigService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public GrokUserView getUserInfo(long userId, Long relationId) {
|
|
public GrokUserView getUserInfo(long userId, Long relationId) {
|
|
|
GrokUser grokUser = checkCarAccount(userId, relationId);
|
|
GrokUser grokUser = checkCarAccount(userId, relationId);
|
|
@@ -92,6 +99,37 @@ public class GrokServiceImpl implements GrokService {
|
|
|
return new BigDecimal(count).divide(BigDecimal.valueOf(4000),0, RoundingMode.HALF_UP).longValue();
|
|
return new BigDecimal(count).divide(BigDecimal.valueOf(4000),0, RoundingMode.HALF_UP).longValue();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String getCarLoginUrl(String domain, Long userId, Long relationId) {
|
|
|
|
|
+
|
|
|
|
|
+ GroupsRelation groupsRelation = getGroupsRelation(userId, relationId);
|
|
|
|
|
+ GroupsTrips groupsTrips = getGroupsTrips(groupsRelation);
|
|
|
|
|
+ GoodsDonSku goodsDonSku = skuMapper.selectById(groupsTrips.getSkuId());
|
|
|
|
|
+ if (goodsDonSku != null && goodsDonSku.getIsMirror() && goodsDonSku.getIsCar()) {
|
|
|
|
|
+ GrokUser grokUser = getGrokUser(userId, relationId, groupsRelation, goodsDonSku);
|
|
|
|
|
+
|
|
|
|
|
+ String DOMAIN = domain;
|
|
|
|
|
+ if (StrUtil.isEmpty(DOMAIN)) {
|
|
|
|
|
+ DOMAIN = "https://grok.bestaistore.com";
|
|
|
|
|
+ try {
|
|
|
|
|
+ SysConfig sysConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "mirror_claude_domain"));
|
|
|
|
|
+ if (sysConfig != null) {
|
|
|
|
|
+ String sysValue = sysConfig.getSysValue();
|
|
|
|
|
+ if (JSONUtil.isJsonArray(sysValue)) {
|
|
|
|
|
+ List<String> domainList = JSONUtil.parseArray(sysValue).toList(String.class);
|
|
|
|
|
+ DOMAIN = domainList.get(RandomUtil.randomInt(domainList.size()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("随机抽取域名错误. msg:{}", StringUtil.getErrorText(e));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("domain:{},用户:{},所在车次:{},座位id:{},在{}获取跳转Grok镜像的登录url", DOMAIN, userId, groupsTrips.getId(), relationId, DateTime.now());
|
|
|
|
|
+ return DOMAIN + "/signtoken" + "?usertoken=" + grokUser.getUserToken();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("服务器出了点问题");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取车位信息
|
|
* 获取车位信息
|