diff --git a/server/like-admin/pom.xml b/server/like-admin/pom.xml
index 6d3564a4..f6a85e82 100644
--- a/server/like-admin/pom.xml
+++ b/server/like-admin/pom.xml
@@ -36,10 +36,16 @@
sa-token-spring-boot-starter
+
cn.dev33
sa-token-dao-redis-jackson
- 1.32.0
+
+
+
+
+ org.quartz-scheduler
+ quartz
diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/quartz/CronUtils.java b/server/like-admin/src/main/java/com/mdd/admin/config/quartz/CronUtils.java
new file mode 100644
index 00000000..00c05865
--- /dev/null
+++ b/server/like-admin/src/main/java/com/mdd/admin/config/quartz/CronUtils.java
@@ -0,0 +1,54 @@
+package com.mdd.admin.config.quartz;
+
+import org.quartz.CronExpression;
+
+import java.text.ParseException;
+import java.util.Date;
+
+/**
+ * 表达式工具
+ */
+public class CronUtils {
+
+ /**
+ * 验证表达式是否有效
+ *
+ * @param cronExpression 表达式
+ * @return true=有效,false=无效
+ */
+ public static boolean isValid(String cronExpression) {
+ return CronExpression.isValidExpression(cronExpression);
+ }
+
+ /**
+ * 验证表达式消息无效给出有效性
+ *
+ * @param cronExpression 表达式
+ * @return null=有效, 其它=无效时的错误描述
+ */
+ public static String invalidMessage(String cronExpression) {
+ try {
+ new CronExpression(cronExpression);
+ return null;
+ } catch (ParseException pe) {
+ return pe.getMessage();
+ }
+ }
+
+ /**
+ * 下一个执行时间点
+ *
+ * @param cronExpression n表达式
+ * @return Date下次表达式执行时间
+ */
+ public static Date nextExecution(String cronExpression)
+ {
+ try {
+ CronExpression cron = new CronExpression(cronExpression);
+ return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
+ } catch (ParseException e) {
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ }
+
+}
diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/quartz/InvokeUtils.java b/server/like-admin/src/main/java/com/mdd/admin/config/quartz/InvokeUtils.java
new file mode 100644
index 00000000..04e1aebc
--- /dev/null
+++ b/server/like-admin/src/main/java/com/mdd/admin/config/quartz/InvokeUtils.java
@@ -0,0 +1,152 @@
+package com.mdd.admin.config.quartz;
+
+import com.mdd.common.entity.Crontab;
+import com.mdd.common.utils.SpringUtil;
+import com.mdd.common.utils.StringUtil;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 执行工具
+ */
+public class InvokeUtils {
+
+ /**
+ * 执行方法
+ *
+ * @param crontab 系统任务
+ */
+ public static void invokeMethod(Crontab crontab) throws Exception {
+ String invokeTarget = crontab.getCommand();
+ String beanName = getBeanName(invokeTarget);
+ String methodName = getMethodName(invokeTarget);
+ List