|
|
@@ -11,15 +11,18 @@ import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.common.util.TicketCodeCommonUtil;
|
|
|
+import com.cyksj.mapper.CuiQiuEmailConfigMapper;
|
|
|
import com.cyksj.model.dto.CuiQiuEmailDetailDto;
|
|
|
import com.cyksj.model.dto.CuiQiuEmailDto;
|
|
|
import com.cyksj.model.dto.CuiQiuEmailResultDto;
|
|
|
+import com.cyksj.model.entity.CuiQiuEmailConfig;
|
|
|
import com.cyksj.service.mail.CuiQiuMailService;
|
|
|
import com.cyksj.service.relation.GroupsRelationNetflixService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
@@ -42,9 +45,6 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
//脆球域名id
|
|
|
private final static String DOMAIN_ID = "1696913058045050661";
|
|
|
|
|
|
- //代收管理员邮件id
|
|
|
- private final static String ADMIN_MAIL_ID = "1696913058063659217";
|
|
|
-
|
|
|
//PS 验证码官方
|
|
|
private final static String PS_ADOBE = "Adobe";
|
|
|
|
|
|
@@ -52,6 +52,15 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
|
|
|
private final static String NETFLIX = "Netflix";
|
|
|
|
|
|
+ private static List<CuiQiuEmailConfig> CuiQiuEmailConfigs;
|
|
|
+
|
|
|
+ private final CuiQiuEmailConfigMapper CuiQiuEmailConfigMapper;
|
|
|
+
|
|
|
+ @PostConstruct
|
|
|
+ public void getCuiQiuEmailConfig() {
|
|
|
+ CuiQiuEmailConfigs = CuiQiuEmailConfigMapper.selectList(null);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public String getVerifyCode(String email, Long goodsId, Integer type, Boolean sync, Integer linkType) throws Exception {
|
|
|
//获取近二十封邮件
|
|
|
@@ -63,7 +72,11 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
//维度是天
|
|
|
DateTime now = DateTime.now();
|
|
|
params.put("token", CUI_QIU_TOKEN);
|
|
|
- params.put("mail_id", ADMIN_MAIL_ID);
|
|
|
+ String mailId = getAdmainMailId(email);
|
|
|
+ if (StrUtil.isEmpty(mailId)) {
|
|
|
+ throw BusinessRuntimeException.getInstance("系统异常,请联系客服..");
|
|
|
+ }
|
|
|
+ params.put("mail_id", mailId);
|
|
|
params.put("start_time", DateUtil.offsetDay(now, -1).toDateStr());
|
|
|
params.put("end_time", DateUtil.offsetDay(now, 1).toDateStr());
|
|
|
params.put("to", email);
|
|
|
@@ -98,10 +111,10 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
- for (CuiQiuEmailDto cuiQiuEmailDto : list) {
|
|
|
- Long messageId = cuiQiuEmailDto.getId();
|
|
|
+ for (CuiQiuEmailDto CuiQiuEmailDto : list) {
|
|
|
+ Long messageId = CuiQiuEmailDto.getId();
|
|
|
try {
|
|
|
- String code = getVerifyCodeByEmail(messageId, goodsId, type, sync, linkType);
|
|
|
+ String code = getVerifyCodeByEmail(messageId, goodsId, type, sync, linkType, mailId);
|
|
|
if (StrUtil.isNotBlank(code)) {
|
|
|
return code;
|
|
|
}
|
|
|
@@ -112,18 +125,28 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- public String getVerifyCodeByEmail(Long messageId, Long goodsId, Integer type, Boolean sync, Integer linkType) throws Exception {
|
|
|
+ @Override
|
|
|
+ public boolean isCuiQiuEmail(String account) {
|
|
|
+ for (CuiQiuEmailConfig CuiQiuEmailConfig : CuiQiuEmailConfigs) {
|
|
|
+ if (account.contains(CuiQiuEmailConfig.getDomainPrefix())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getVerifyCodeByEmail(Long messageId, Long goodsId, Integer type, Boolean sync, Integer linkType, String mailId) throws Exception {
|
|
|
String url = "https://domain-open-api.cuiqiu.com/v1/message/detail";
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
params.put("token", CUI_QIU_TOKEN);
|
|
|
- params.put("mail_id", ADMIN_MAIL_ID);
|
|
|
+ params.put("mail_id", mailId);
|
|
|
params.put("message_id", messageId);
|
|
|
HttpRequest post = HttpUtil.createPost(url);
|
|
|
post.form(params);
|
|
|
HttpResponse execute = post.execute();
|
|
|
String respBody = execute.body();
|
|
|
- CuiQiuEmailDetailDto cuiQiuEmailDetailDto = Jsons.parseObject(respBody, CuiQiuEmailDetailDto.class);
|
|
|
- CuiQiuEmailDetailDto.Content content = cuiQiuEmailDetailDto.getData().getContent();
|
|
|
+ CuiQiuEmailDetailDto CuiQiuEmailDetailDto = Jsons.parseObject(respBody, CuiQiuEmailDetailDto.class);
|
|
|
+ CuiQiuEmailDetailDto.Content content = CuiQiuEmailDetailDto.getData().getContent();
|
|
|
String code = null;
|
|
|
String body = content.getBody();
|
|
|
if (goodsId == 1) {
|
|
|
@@ -169,4 +192,16 @@ public class CuiQiuMailServiceImpl implements CuiQiuMailService {
|
|
|
}
|
|
|
return StringUtil.getVerifyCodePattern(code, length);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取接受邮件邮箱id
|
|
|
+ */
|
|
|
+ private String getAdmainMailId(String email) {
|
|
|
+ for (CuiQiuEmailConfig CuiQiuEmailConfig : CuiQiuEmailConfigs) {
|
|
|
+ if (email.contains(CuiQiuEmailConfig.getDomainPrefix())) {
|
|
|
+ return CuiQiuEmailConfig.getMailId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|