|
|
@@ -2,6 +2,7 @@ package com.cyksj.web.controller.group;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.thread.ThreadUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.servlet.ServletUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -11,10 +12,7 @@ import com.cyksj.common.util.GoogleGenerator;
|
|
|
import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
-import com.cyksj.mapper.AccountDoubleVerifyRecordMapper;
|
|
|
-import com.cyksj.mapper.ChatGptPwdViewRecordMapper;
|
|
|
-import com.cyksj.mapper.DoubleVerifyClickRecordMapper;
|
|
|
-import com.cyksj.mapper.GroupsRelationMapper;
|
|
|
+import com.cyksj.mapper.*;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
import com.cyksj.model.request.OrderPayRequest;
|
|
|
@@ -34,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* @author chan
|
|
|
@@ -65,6 +64,8 @@ public class GroupRelationController {
|
|
|
|
|
|
private final RedisService redisService;
|
|
|
|
|
|
+ private final SysConfigMapper sysConfigMapper;
|
|
|
+
|
|
|
private final GlobalThreadPoolTaskExecutor THREAD_POOL;
|
|
|
|
|
|
@RequestMapping("/get/renewal")
|
|
|
@@ -167,10 +168,10 @@ public class GroupRelationController {
|
|
|
* 获取AI类 ChatGPT产品谷歌验证码
|
|
|
*/
|
|
|
@GetMapping("/get/authCode")
|
|
|
- public Result<String> getAuthCode(Long relationId) throws InterruptedException {
|
|
|
+ public Result<String> getAuthCode(Long relationId) {
|
|
|
long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
//每个人 每月只能获取两次
|
|
|
- if (relationId==null) throw BusinessRuntimeException.getInstance("车票不存在");
|
|
|
+ if (relationId == null) throw BusinessRuntimeException.getInstance("车票不存在");
|
|
|
GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder()
|
|
|
.field(GroupsRelationView::getId, relationId)
|
|
|
.field(GroupsRelationView::getUserId, userId).build());
|
|
|
@@ -181,22 +182,36 @@ public class GroupRelationController {
|
|
|
.eq(DoubleVerifyClickRecord::getUserId, userId)
|
|
|
.eq(DoubleVerifyClickRecord::getAccountId, groupsRelationView.getAccountId())
|
|
|
.between(DoubleVerifyClickRecord::getCreatedTime, DateUtil.beginOfMonth(now), DateUtil.endOfMonth(now)));
|
|
|
- if (count >= 2) throw BusinessRuntimeException.getInstance("获取次数上限");
|
|
|
+ SysConfig double_verify_num = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "Constant.ACCOUNT_DOUBLE_VERIFY_KEY"));
|
|
|
+ int num = 2;
|
|
|
+ if (double_verify_num != null) {
|
|
|
+ num = Integer.parseInt(double_verify_num.getSysValue());
|
|
|
+ }
|
|
|
+ if (count >= num) throw BusinessRuntimeException.getInstance("获取双重验证码次数上限");
|
|
|
int second = now.second();
|
|
|
- if (second < 30 && 30 - second <= 10) {
|
|
|
- Thread.sleep(30 - second + 1);
|
|
|
- } else if (second > 30 && 60 - second <= 10) {
|
|
|
- Thread.sleep(60 - second + 1);
|
|
|
+ if (second < 30 && 30 - second < 18) {
|
|
|
+ ThreadUtil.sleep(30 - second + 1, TimeUnit.SECONDS);
|
|
|
+ } else if (second > 30 && 60 - second < 18) {
|
|
|
+ ThreadUtil.sleep(60 - second + 1, TimeUnit.SECONDS);
|
|
|
+ }
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ try {
|
|
|
+ long code = GoogleGenerator.getCode(groupsRelationView.getApiSecret(), now.getTime());
|
|
|
+ sb.append(code);
|
|
|
+ while (sb.length() < 6) {
|
|
|
+ sb.insert(0, 0);
|
|
|
+ }
|
|
|
+ DoubleVerifyClickRecord doubleVerifyClickRecord = new DoubleVerifyClickRecord();
|
|
|
+ doubleVerifyClickRecord.setRelationId(relationId);
|
|
|
+ doubleVerifyClickRecord.setUserId(userId);
|
|
|
+
|
|
|
+ doubleVerifyClickRecord.setAccountId(groupsRelationView.getAccountId());
|
|
|
+ doubleVerifyClickRecord.setAccount(groupsRelationView.getTripsAccount());
|
|
|
+ doubleVerifyClickRecord.setSkuId(groupsRelationView.getSkuId());
|
|
|
+ doubleVerifyRecordMapper.insert(doubleVerifyClickRecord);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw BusinessRuntimeException.getInstance("获取双重验证码错误,请联系客服");
|
|
|
}
|
|
|
- DoubleVerifyClickRecord doubleVerifyClickRecord = new DoubleVerifyClickRecord();
|
|
|
- doubleVerifyClickRecord.setRelationId(relationId);
|
|
|
- doubleVerifyClickRecord.setUserId(userId);
|
|
|
-
|
|
|
- doubleVerifyClickRecord.setAccountId(groupsRelationView.getAccountId());
|
|
|
- doubleVerifyClickRecord.setAccount(groupsRelationView.getTripsAccount());
|
|
|
- doubleVerifyClickRecord.setSkuId(groupsRelationView.getSkuId());
|
|
|
- doubleVerifyRecordMapper.insert(doubleVerifyClickRecord);
|
|
|
- long code = GoogleGenerator.getCode(groupsRelationView.getApiSecret(), now.getTime());
|
|
|
- return GatewayResponse.SUCCESS.newBuilder().toResult(Long.toString(code));
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(sb.toString());
|
|
|
}
|
|
|
}
|