中扬CRM客户关系管理系统
Junjie
2023-09-06 67f39351a5571b822f93c09e8c6e7986fe91e758
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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.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;
    private String ruleConnector;
    private int ruleConnectorType;
    private int ruleType;
 
    public RuleUtils(String ruleHeader, String ruleBody, String ruleConnector, int ruleConnectorType, int ruleType) {
        this.ruleHeader = ruleHeader;
        this.ruleBody = ruleBody;
        this.ruleConnector = ruleConnector;
        this.ruleConnectorType = ruleConnectorType;
        this.ruleType = ruleType;
    }
 
    public String generateString() {
        StringBuilder sb = new StringBuilder();
 
        // 添加头部
        sb.append(ruleHeader);
        // 添加连接符(如果启用)
        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();
    }
 
    private String generateRandomString(int length) {
        // 生成指定长度的随机字符串的逻辑
        String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
 
        for (int i = 0; i < length; i++) {
            int index = ThreadLocalRandom.current().nextInt(characters.length());
            char randomChar = characters.charAt(index);
            sb.append(randomChar);
        }
 
        return sb.toString();   // 返回生成的随机字符串
    }
 
    private String generateCustomTimestamp() {
        // 自定义生成日期时间戳的逻辑
        LocalDateTime now = LocalDateTime.now();
        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 ruleConnector = "-";
        int ruleConnectorType = 1;
        int ruleType = 1;
 
        RuleUtils generator = new RuleUtils(ruleHeader, ruleBody, ruleConnector, ruleConnectorType, ruleType);
        String generatedString = generator.generateString();
        System.out.println(generatedString);
    }
}