| | |
| | | package com.zy.crm.manager.utils; |
| | | |
| | | import com.zy.crm.manager.entity.Rule; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Random; |
| | | import java.util.concurrent.ThreadLocalRandom; |
| | | |
| | | |
| | | /* |
| | | * 定义一个规则:头:String ruleHeader;体: String ruleBody;连接符:String ruleConnector;连接符是否启用(0:启用;1:不启用。:Integer ruleConnectorType;规则方式(默认1:当前日期时间戳):Integer ruleType; |
| | | * 根据规则自动生成 |
| | | * Created by Monkey D. Luffy on 2023.08.22. |
| | | * */ |
| | | public class RuleUtils { |
| | | private String ruleHeader; |
| | | private String ruleBody; |
| | |
| | | |
| | | // 添加头部 |
| | | sb.append(ruleHeader); |
| | | |
| | | // 根据规则方式生成日期时间戳或随机字符串 |
| | | String ruleValue = ""; |
| | | if (ruleType == 1) { |
| | | ruleValue = String.valueOf(System.currentTimeMillis()); |
| | | } else if (ruleType == 2) { |
| | | ruleValue = generateRandomString(10); // 生成长度为10的随机字符串 |
| | | } else if (ruleType == 3) { |
| | | ruleValue = generateCustomTimestamp(); // 自定义生成日期时间戳的逻辑 |
| | | } |
| | | |
| | | // 添加规则值到字符串体 |
| | | sb.append(ruleBody); |
| | | sb.append(ruleValue); |
| | | |
| | | // 添加连接符(如果启用) |
| | | if (ruleConnectorType == 0) { |
| | | sb.append(ruleConnector); |
| | | } |
| | | |
| | | // 根据规则方式生成日期时间戳或随机字符串 |
| | | String ruleValue = ""; |
| | | switch (ruleType) { |
| | | case 1: |
| | | ruleValue = String.valueOf(System.currentTimeMillis()); |
| | | break; |
| | | case 2: |
| | | ruleValue = generateRandomString(10); // 生成长度为10的随机字符串 |
| | | break; |
| | | case 3: |
| | | ruleValue = generateCustomTimestamp(); // 自定义生成日期时间戳的逻辑 |
| | | break; |
| | | } |
| | | |
| | | // 添加规则值到字符串体 |
| | | sb.append(ruleBody); |
| | | // 添加连接符(如果启用) |
| | | if (ruleConnectorType == 0) { |
| | | sb.append(ruleConnector); |
| | | } |
| | | sb.append(ruleValue); |
| | | |
| | | return sb.toString(); |
| | | } |
| | |
| | | String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; |
| | | StringBuilder sb = new StringBuilder(); |
| | | |
| | | Random random = new Random(); |
| | | for (int i = 0; i < length; i++) { |
| | | int index = random.nextInt(characters.length()); |
| | | int index = ThreadLocalRandom.current().nextInt(characters.length()); |
| | | char randomChar = characters.charAt(index); |
| | | sb.append(randomChar); |
| | | } |
| | |
| | | private String generateCustomTimestamp() { |
| | | // 自定义生成日期时间戳的逻辑 |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | return now.format(formatter);// 返回生成的自定义日期时间戳 |
| | | return now.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);// 返回生成的自定义日期时间戳 |
| | | } |
| | | |
| | | public static String rule(Rule rule){ |
| | | String ruleHeader = rule.getRuleHeader(); |
| | | String ruleBody = rule.getRuleBody(); |
| | | String ruleConnector = rule.getRuleConnector(); |
| | | int ruleConnectorType = rule.getRuleConnectorType(); |
| | | int ruleType = rule.getRuleType(); |
| | | |
| | | RuleUtils generator = new RuleUtils(ruleHeader, ruleBody, ruleConnector, ruleConnectorType, ruleType); |
| | | String generatedString = generator.generateString(); |
| | | return generatedString; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String ruleHeader = "Header: "; |
| | | String ruleBody = "Timestamp: "; |
| | | String ruleHeader = "HEADER"; |
| | | String ruleBody = "TIMESTAMP"; |
| | | String ruleConnector = "-"; |
| | | int ruleConnectorType = 0; |
| | | int ruleConnectorType = 1; |
| | | int ruleType = 1; |
| | | |
| | | RuleUtils generator = new RuleUtils(ruleHeader, ruleBody, ruleConnector, ruleConnectorType, ruleType); |