Quellcode durchsuchen

脆球邮箱多域名

zoujiajian vor 2 Jahren
Ursprung
Commit
b6c9123791

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/CuiQiuEmailConfigMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.CuiQiuEmailConfig;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: CuiQiuEmailConfigMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/7/22 15:31
+ */
+public interface CuiQiuEmailConfigMapper extends BaseMapper<CuiQiuEmailConfig> {
+}

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CuiQiuEmailConfig.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: CuiQiuEmailConfig
+ * 创建者: JavaZou
+ * 创建时间:2024/7/22 15:29
+ */
+@Getter
+@Setter
+public class CuiQiuEmailConfig {
+	/**
+	 * 域名前缀
+	 */
+	private String domainPrefix;
+
+	/**
+	 * 接受主邮件id
+	 */
+	private String mailId;
+}

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/mail/CuiQiuMailService.java

@@ -12,4 +12,6 @@ public interface CuiQiuMailService {
 	 * 获取最新邮箱 返回验证码
 	 */
 	String getVerifyCode(String email, Long goodsId, Integer type, Boolean sync, Integer linkType) throws Exception;
+
+	boolean isCuiQiuEmail(String account);
 }

+ 46 - 11
netflix-service/src/main/java/com/cyksj/service/mail/impl/CuiQiuMailServiceImpl.java

@@ -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;
+	}
 }

+ 1 - 4
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -123,9 +123,6 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 
 	private final ChatGptAccountService chatGptAccountService;
 
-	//脆球邮箱后缀
-	private final static String CUI_QIU_EMAIL_SUFFIX = "@kindvd.com";
-
 	private final UpgradePackageMapper upgradePackageMapper;
 
 	private final GoodsDonQaRelateMapper goodsDonQaRelateMapper;
@@ -535,7 +532,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		if (StrUtil.hasEmpty(account, password)) {
 			throw BusinessRuntimeException.getInstance("您的车票账号密码异常,请联系客服...");
 		}
-		if (renewalView.getAccount().contains(CUI_QIU_EMAIL_SUFFIX)) {
+		if (cuiQiuMailService.isCuiQiuEmail(renewalView.getAccount())) {
 			return cuiQiuMailService.getVerifyCode(renewalView.getAccount(), renewalView.getGoodsId(), type, sync, loginReq.getLinkType());
 		}
 		//获取邮箱密码