| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.cyksj.common.util;
- import cn.hutool.core.lang.Validator;
- import cn.hutool.core.util.StrUtil;
- import com.cyksj.common.exception.BusinessRuntimeException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 项目名: yhlxj2
- * 文件名: TicketCodeCommonUtil
- * 创建者: JavaZou
- * 创建时间:2024/5/24 15:31
- */
- public class TicketCodeCommonUtil {
- private static final Logger LOGGER = LoggerFactory.getLogger(TicketCodeCommonUtil.class);
- /**
- * 车票邮箱验证码
- */
- public static String getTicketCodeStr(String body, Long goodsId) {
- if (StrUtil.isEmpty(body)) {
- return body;
- }
- String str = getCodeStartStr(goodsId, body);
- if (StrUtil.isEmpty(str)) {
- return null;
- }
- int index = body.indexOf(str);
- if (index == -1) {
- return null;
- }
- String code = StrUtil.subWithLength(body, index, 512);
- if (StrUtil.isNotBlank(code)) {
- code = code.replace(str, "");
- }
- int length = 4;
- if (goodsId == 33l || goodsId == 45l || goodsId == 18l) {
- length = 6;
- }
- code = StringUtil.getVerifyCodePattern(code, length);
- if (!Validator.isNumber(code)) {
- LOGGER.error("获取账号验证码失败:{}", StrUtil.subSufByLength(code, 512));
- throw BusinessRuntimeException.getInstance("获取验证码失败,请重新获取..");
- }
- return code.trim();
- }
- public static String extractUrl(String body, String prefixUrl) {
- String urlPattern = "(https?://\\S+)";
- Pattern pattern = Pattern.compile(urlPattern);
- Matcher matcher = pattern.matcher(body);
- // 查找匹配的URL
- while (matcher.find()) {
- String url = matcher.group();
- if (url.contains(prefixUrl)) {
- return url.replaceAll("\"", "");
- }
- }
- return null;
- }
- public static String getCodeStartStr(Long goodsId, String body) {
- String str = null;
- //PS、Adobe团队版全家桶
- if (goodsId == 33l || goodsId == 45l) {
- str = "color:#505050; font-family:adobe-clean, Helvetica Neue, Helvetica, Verdana, Arial, sans-serif;";
- if (!body.contains(str)) {
- str = "X-Report-Abuse: abuse@adobe.com";
- }
- }
- //迪士尼
- if (goodsId == 3l) {
- str = "letter-spacing:4px; line-height:38px; mso-line-height-rule: exactly";
- if (!body.contains(str)) {
- str = "Noto Sans Display', Helvetica, Arial, sans-serif; font-weight: 600;text-align: center;";
- if (!body.contains(str)) {
- str = "使用此密码验证 MyDisney 帐户关联的电子邮件地址。此密码将在 15 分钟后过期";
- }
- }
- }
- //GPT PLUS
- if (goodsId == 18l) {
- str = "X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-80345.templateTenant";
- }
- return str;
- }
- }
|