CommonMailServiceImpl.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.cyksj.service.mail.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.http.HttpRequest;
  5. import cn.hutool.http.HttpResponse;
  6. import cn.hutool.http.HttpUtil;
  7. import cn.hutool.json.JSONObject;
  8. import com.cyksj.common.util.Jsons;
  9. import com.cyksj.common.util.TicketCodeCommonUtil;
  10. import com.cyksj.service.mail.CommonMailService;
  11. import com.cyksj.service.mail.CuiQiuMailService;
  12. import com.cyksj.service.mail.MailLuService;
  13. import com.cyksj.service.mail.YhMailService;
  14. import lombok.RequiredArgsConstructor;
  15. import org.springframework.stereotype.Service;
  16. import java.util.Date;
  17. import java.util.List;
  18. /**
  19. * 项目名: yhlxj
  20. * 文件名: CommonMailServiceImpl
  21. * 创建者: JavaZou
  22. * 创建时间:2025/1/7 14:22
  23. */
  24. @Service
  25. @RequiredArgsConstructor
  26. public class CommonMailServiceImpl implements CommonMailService {
  27. private final CuiQiuMailService cuiQiuMailService;
  28. private final MailLuService mailLuService;
  29. private final YhMailService yhMailService;
  30. @Override
  31. public String getTicketMailCode(Long goodsId, String account, String relateEmail, String emailPwd, Date emailCreatedTime, Integer type, Integer linkType, Boolean isReturnDeviceUrl) throws Exception {
  32. //25年的GPT账号获取验证码 特殊处理
  33. //获取失败走下一步
  34. if (goodsId == 18 && emailCreatedTime.compareTo(DateUtil.parse("2025-01-01")) > 0) {
  35. try {
  36. //获取近十封邮件
  37. String url = "https://ms.lqqq.cc/" + account + "----" + emailPwd;
  38. HttpRequest post = HttpUtil.createGet(url);
  39. HttpResponse execute = post.execute();
  40. List<JSONObject> jsonObjects = Jsons.parseList(execute.body(), JSONObject.class);
  41. for (JSONObject jsonObject : jsonObjects) {
  42. String str = jsonObject.getStr("content");
  43. if (str.contains("Your ChatGPT code is")) {
  44. String code = TicketCodeCommonUtil.getTicketCodeStr(str, goodsId);
  45. return code;
  46. }
  47. }
  48. } catch (Exception e) {
  49. }
  50. }
  51. String checkEmail = StrUtil.isNotEmpty(relateEmail) ? relateEmail : account;
  52. //关联邮箱
  53. if (cuiQiuMailService.isCuiQiuEmail(checkEmail)) {
  54. return cuiQiuMailService.getVerifyCode(account, relateEmail, goodsId, type, linkType, false);
  55. }
  56. //是否是 mail lu邮箱
  57. if (mailLuService.isMailLuEmail(checkEmail)) {
  58. return mailLuService.getVerifyCode(account, relateEmail, goodsId, type, linkType, false);
  59. }
  60. //银河域名邮件
  61. return yhMailService.getVerifyCode(account, relateEmail, goodsId, type, linkType, false);
  62. }
  63. }