From e25c93afbe0c25dbc51ec7c95b099d6c79934923 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?=
<2847127106@qq.com>
Date: Thu, 22 Aug 2024 21:32:20 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A8=A1=E5=9D=97=E5=88=9D?=
=?UTF-8?q?=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 36 +++++
Dockerfile | 15 ++
muyu-quest-client/pom.xml | 27 ++++
muyu-quest-common/pom.xml | 26 +++
.../main/java/com/muyu/quest/domain/Node.java | 149 ++++++++++++++++++
.../main/java/com/muyu/quest/domain/Task.java | 141 +++++++++++++++++
muyu-quest-remote/pom.xml | 27 ++++
.../quest/remote/RemoteDataSourceService.java | 18 +++
.../factory/RemoteDataSourceFactory.java | 19 +++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
muyu-quest-server/pom.xml | 133 ++++++++++++++++
.../com/muyu/quest/MyTaskApplication.java | 31 ++++
.../muyu/quest/controller/TaskController.java | 106 +++++++++++++
.../com/muyu/quest/mapper/TaskMapper.java | 18 +++
.../com/muyu/quest/service/TaskService.java | 42 +++++
.../quest/service/impl/TaskServiceImpl.java | 99 ++++++++++++
.../src/main/resources/banner.txt | 2 +
.../src/main/resources/bootstrap.yml | 45 ++++++
.../src/main/resources/logback/dev.xml | 74 +++++++++
.../src/main/resources/logback/prod.xml | 81 ++++++++++
.../src/main/resources/logback/test.xml | 81 ++++++++++
pom.xml | 29 ++++
22 files changed, 1200 insertions(+)
create mode 100644 .gitignore
create mode 100644 Dockerfile
create mode 100644 muyu-quest-client/pom.xml
create mode 100644 muyu-quest-common/pom.xml
create mode 100644 muyu-quest-common/src/main/java/com/muyu/quest/domain/Node.java
create mode 100644 muyu-quest-common/src/main/java/com/muyu/quest/domain/Task.java
create mode 100644 muyu-quest-remote/pom.xml
create mode 100644 muyu-quest-remote/src/main/java/com/muyu/quest/remote/RemoteDataSourceService.java
create mode 100644 muyu-quest-remote/src/main/java/com/muyu/quest/remote/factory/RemoteDataSourceFactory.java
create mode 100644 muyu-quest-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 muyu-quest-server/pom.xml
create mode 100644 muyu-quest-server/src/main/java/com/muyu/quest/MyTaskApplication.java
create mode 100644 muyu-quest-server/src/main/java/com/muyu/quest/controller/TaskController.java
create mode 100644 muyu-quest-server/src/main/java/com/muyu/quest/mapper/TaskMapper.java
create mode 100644 muyu-quest-server/src/main/java/com/muyu/quest/service/TaskService.java
create mode 100644 muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java
create mode 100644 muyu-quest-server/src/main/resources/banner.txt
create mode 100644 muyu-quest-server/src/main/resources/bootstrap.yml
create mode 100644 muyu-quest-server/src/main/resources/logback/dev.xml
create mode 100644 muyu-quest-server/src/main/resources/logback/prod.xml
create mode 100644 muyu-quest-server/src/main/resources/logback/test.xml
create mode 100644 pom.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6d0ca4f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea
+logs
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..f32152d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,15 @@
+#指定构建镜像的起始镜像
+FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/dragonwell:17.0.4.0.4.8-standard-ga-8.6
+#定义时区参数
+ENV TZ=Asia/Shanghai
+#设置时区
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
+
+#挂载目录
+VOLUME ["/home/logs/muyu-quest"]
+
+#拷贝执行jar报
+COPY ./muyu-quest-server/target/muyu-quest.jar /home/app.jar
+
+ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar"]
+CMD ["/home/app.jar"]
diff --git a/muyu-quest-client/pom.xml b/muyu-quest-client/pom.xml
new file mode 100644
index 0000000..7db02c4
--- /dev/null
+++ b/muyu-quest-client/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-quest
+ 3.6.5
+
+
+ muyu-quest-client
+ 3.6.5
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+ com.muyu
+ muyu-quest-common
+
+
+
+
diff --git a/muyu-quest-common/pom.xml b/muyu-quest-common/pom.xml
new file mode 100644
index 0000000..d6bfd56
--- /dev/null
+++ b/muyu-quest-common/pom.xml
@@ -0,0 +1,26 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-quest
+ 3.6.5
+
+
+ muyu-quest-common
+ 3.6.5
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ cloud-common-core
+
+
+
diff --git a/muyu-quest-common/src/main/java/com/muyu/quest/domain/Node.java b/muyu-quest-common/src/main/java/com/muyu/quest/domain/Node.java
new file mode 100644
index 0000000..bfd41e4
--- /dev/null
+++ b/muyu-quest-common/src/main/java/com/muyu/quest/domain/Node.java
@@ -0,0 +1,149 @@
+package com.muyu.quest.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.*;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+
+/**
+ * 节点对象 node_source
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+
+@Data
+@Setter
+@Getter
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Node extends BaseEntity{
+ private static final long serialVersionUID = 1L;
+
+ /** 自增主键 */
+ private Long id;
+
+ /** 节点编码 */
+ @Excel(name = "节点编码")
+ private String nodeCode;
+
+ /** 节点名称 */
+ @Excel(name = "节点名称")
+ private String nodeName;
+
+ /** 节点入参 */
+ @Excel(name = "节点入参")
+ private String nodeReq;
+
+ /** 节点出参 */
+ @Excel(name = "节点出参")
+ private String nodeResp;
+
+ /** 上一级节点 */
+ @Excel(name = "上一级节点")
+ private String nodePreCode;
+
+ /** 下一级节点 */
+ @Excel(name = "下一级节点")
+ private String nodeNextCode;
+
+ /** 启用状态 */
+ @Excel(name = "启用状态")
+ private String state;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setNodeCode(String nodeCode)
+ {
+ this.nodeCode = nodeCode;
+ }
+
+ public String getNodeCode()
+ {
+ return nodeCode;
+ }
+ public void setNodeName(String nodeName)
+ {
+ this.nodeName = nodeName;
+ }
+
+ public String getNodeName()
+ {
+ return nodeName;
+ }
+ public void setNodeReq(String nodeReq)
+ {
+ this.nodeReq = nodeReq;
+ }
+
+ public String getNodeReq()
+ {
+ return nodeReq;
+ }
+ public void setNodeResp(String nodeResp)
+ {
+ this.nodeResp = nodeResp;
+ }
+
+ public String getNodeResp()
+ {
+ return nodeResp;
+ }
+ public void setNodePreCode(String nodePreCode)
+ {
+ this.nodePreCode = nodePreCode;
+ }
+
+ public String getNodePreCode()
+ {
+ return nodePreCode;
+ }
+ public void setNodeNextCode(String nodeNextCode)
+ {
+ this.nodeNextCode = nodeNextCode;
+ }
+
+ public String getNodeNextCode()
+ {
+ return nodeNextCode;
+ }
+ public void setState(String state)
+ {
+ this.state = state;
+ }
+
+ public String getState()
+ {
+ return state;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("nodeCode", getNodeCode())
+ .append("nodeName", getNodeName())
+ .append("nodeReq", getNodeReq())
+ .append("nodeResp", getNodeResp())
+ .append("nodePreCode", getNodePreCode())
+ .append("nodeNextCode", getNodeNextCode())
+ .append("state", getState())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/muyu-quest-common/src/main/java/com/muyu/quest/domain/Task.java b/muyu-quest-common/src/main/java/com/muyu/quest/domain/Task.java
new file mode 100644
index 0000000..81beaf6
--- /dev/null
+++ b/muyu-quest-common/src/main/java/com/muyu/quest/domain/Task.java
@@ -0,0 +1,141 @@
+package com.muyu.quest.domain;
+
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.*;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+
+/**
+ * 任务对象 task_source
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("task_source")
+public class Task extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /** 自增主键 */
+ @TableId( type = IdType.AUTO)
+ private Long id;
+
+ /** 任务编码 */
+ @Excel(name = "任务编码")
+ private String taskCode;
+
+ /** 任务名称 */
+ @Excel(name = "任务名称")
+ private String taskName;
+
+ /** 任务触发器 */
+ @Excel(name = "任务触发器")
+ private String taskWebhook;
+
+ /** 规则编码 */
+ @Excel(name = "规则编码")
+ private String ruleCode;
+
+ /** 任务类型 */
+ @Excel(name = "任务类型")
+ private String taskType;
+
+ /** 启用状态 */
+ @Excel(name = "启用状态")
+ private String state;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTaskCode(String taskCode)
+ {
+ this.taskCode = taskCode;
+ }
+
+ public String getTaskCode()
+ {
+ return taskCode;
+ }
+ public void setTaskName(String taskName)
+ {
+ this.taskName = taskName;
+ }
+
+ public String getTaskName()
+ {
+ return taskName;
+ }
+ public void setTaskWebhook(String taskWebhook)
+ {
+ this.taskWebhook = taskWebhook;
+ }
+
+ public String getTaskWebhook()
+ {
+ return taskWebhook;
+ }
+ public void setRuleCode(String ruleCode)
+ {
+ this.ruleCode = ruleCode;
+ }
+
+ public String getRuleCode()
+ {
+ return ruleCode;
+ }
+ public void setTaskType(String taskType)
+ {
+ this.taskType = taskType;
+ }
+
+ public String getTaskType()
+ {
+ return taskType;
+ }
+ public void setState(String state)
+ {
+ this.state = state;
+ }
+
+ public String getState()
+ {
+ return state;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("taskCode", getTaskCode())
+ .append("taskName", getTaskName())
+ .append("taskWebhook", getTaskWebhook())
+ .append("ruleCode", getRuleCode())
+ .append("taskType", getTaskType())
+ .append("state", getState())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/muyu-quest-remote/pom.xml b/muyu-quest-remote/pom.xml
new file mode 100644
index 0000000..a2bdf38
--- /dev/null
+++ b/muyu-quest-remote/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-quest
+ 3.6.5
+
+
+ muyu-quest-remote
+ 3.6.5
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+ com.muyu
+ muyu-quest-common
+
+
+
+
diff --git a/muyu-quest-remote/src/main/java/com/muyu/quest/remote/RemoteDataSourceService.java b/muyu-quest-remote/src/main/java/com/muyu/quest/remote/RemoteDataSourceService.java
new file mode 100644
index 0000000..64c5fcc
--- /dev/null
+++ b/muyu-quest-remote/src/main/java/com/muyu/quest/remote/RemoteDataSourceService.java
@@ -0,0 +1,18 @@
+//package com.muyu.source.remote;
+//
+//import com.muyu.source.remote.factory.RemoteDataSourceFactory;
+//import org.springframework.cloud.openfeign.FeignClient;
+//import com.muyu.common.core.constant.ServiceNameConstants;
+//
+///**
+// * @ Tool:IntelliJ IDEA
+// * @ Author:CHX
+// * @ Date:2024-08-21-10:50
+// * @ Version:1.0
+// * @ Description:数据源远程调用
+// * @author Lenovo
+// */
+//@FeignClient(contextId = "RemoteDataSourceService",value = ServiceNameConstants.SOURCE_SERVICE,fallbackFactory = RemoteDataSourceFactory.class, path = "/dataSource")
+//public interface RemoteDataSourceService {
+//
+//}
diff --git a/muyu-quest-remote/src/main/java/com/muyu/quest/remote/factory/RemoteDataSourceFactory.java b/muyu-quest-remote/src/main/java/com/muyu/quest/remote/factory/RemoteDataSourceFactory.java
new file mode 100644
index 0000000..8ee072a
--- /dev/null
+++ b/muyu-quest-remote/src/main/java/com/muyu/quest/remote/factory/RemoteDataSourceFactory.java
@@ -0,0 +1,19 @@
+//package com.muyu.source.remote.factory;
+//
+//import com.muyu.source.remote.RemoteDataSourceService;
+//import org.springframework.cloud.openfeign.FallbackFactory;
+//
+///**
+// * @ Tool:IntelliJ IDEA
+// * @ Author:CHX
+// * @ Date:2024-08-21-10:54
+// * @ Version:1.0
+// * @ Description:
+// * @author Lenovo
+// */
+//public class RemoteDataSourceFactory implements FallbackFactory {
+// @Override
+// public RemoteDataSourceService create(Throwable cause) {
+// return null;
+// }
+//}
diff --git a/muyu-quest-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-quest-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..70c20bf
--- /dev/null
+++ b/muyu-quest-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+#com.muyu.source.remote.factory.RemoteDataSourceFactory
diff --git a/muyu-quest-server/pom.xml b/muyu-quest-server/pom.xml
new file mode 100644
index 0000000..1c497d3
--- /dev/null
+++ b/muyu-quest-server/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-quest
+ 3.6.5
+
+
+ muyu-quest-server
+ 3.6.5
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ cloud-common-datasource
+
+
+
+
+ com.muyu
+ cloud-common-datascope
+
+
+
+
+
+
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+
+ com.muyu
+ cloud-common-xxl
+
+
+
+
+
+
+
+
+
+ com.muyu
+ muyu-quest-common
+
+
+
+
+
+ muyu-quest
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 3.8.1
+
+ 16
+ 16
+
+ -parameters
+
+
+
+
+
+
diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/MyTaskApplication.java b/muyu-quest-server/src/main/java/com/muyu/quest/MyTaskApplication.java
new file mode 100644
index 0000000..8b308e2
--- /dev/null
+++ b/muyu-quest-server/src/main/java/com/muyu/quest/MyTaskApplication.java
@@ -0,0 +1,31 @@
+package com.muyu.quest;
+
+import com.muyu.common.security.annotation.EnableCustomConfig;
+import com.muyu.common.security.annotation.EnableMyFeignClients;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * @Author: 胡杨
+ * @Name: MyTask
+ * @Description: 任务模块启动器
+ * @CreatedDate: 2024/8/22 下午6:23
+ * @FilePath: com.muyu.quest
+ */
+
+@EnableCustomConfig
+//@EnableCustomSwagger2
+@EnableMyFeignClients
+@SpringBootApplication
+public class MyTaskApplication {
+ public static void main(String[] args) {
+ try {
+ SpringApplication.run(MyTaskApplication.class, args);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ System.out.println("MyTask 模块启动成功!");
+ }
+}
diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/controller/TaskController.java b/muyu-quest-server/src/main/java/com/muyu/quest/controller/TaskController.java
new file mode 100644
index 0000000..b6a83d7
--- /dev/null
+++ b/muyu-quest-server/src/main/java/com/muyu/quest/controller/TaskController.java
@@ -0,0 +1,106 @@
+package com.muyu.quest.controller;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.muyu.common.security.utils.SecurityUtils;
+import com.muyu.quest.domain.Task;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.muyu.common.security.annotation.RequiresPermissions;
+
+import com.muyu.quest.service.TaskService;
+import com.muyu.common.core.web.controller.BaseController;
+import com.muyu.common.core.domain.Result;
+import com.muyu.common.core.web.page.TableDataInfo;
+
+/**
+ * 任务Controller
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+@RestController
+@RequestMapping("/quest")
+public class TaskController extends BaseController
+{
+ @Resource
+ private TaskService taskService;
+
+ /**
+ * 查询任务列表
+ */
+// @RequiresPermissions("quest:quest:list")
+ @GetMapping("/list")
+ public Result> list(Task task)
+ {
+ startPage();
+ List list = taskService.selectTaskList(task);
+ return getDataTable(list);
+ }
+
+ /**
+ * 获取任务详细信息
+ */
+// @RequiresPermissions("quest:quest:query")
+ @GetMapping(value = "selectTaskByTaskCode/{taskCode}")
+ public Result> getInfo(@PathVariable("taskCode") String taskCode) {
+ return success(taskService.selectTaskByTaskCode(taskCode));
+ }
+
+ /**
+ * 获取任务详细信息
+ */
+// @RequiresPermissions("quest:quest:query")
+ @GetMapping(value = "selectTaskById/{id}")
+ public Result> getInfo(@PathVariable("id") Long id) {
+ return success(taskService.selectTaskById(id));
+ }
+
+ /**
+ * 新增任务
+ */
+// @RequiresPermissions("quest:quest:quest")
+ @PostMapping
+ public Result add (@Validated @RequestBody Task task) {
+ if (taskService.checkTaskCodeUnique(task)) {
+ return error("新增参数'" + task.getTaskName() + "'失败,任务已存在");
+ }
+ task.setCreateBy(SecurityUtils.getUsername());
+ return toAjax(taskService.save(task));
+ }
+
+ /**
+ * 修改参数配置
+ */
+// @RequiresPermissions("quest:quest:quest")
+ @PutMapping
+ public Result edit (@Validated @RequestBody Task task) {
+ if (!taskService.checkIdUnique(task)) {
+ return error("修改参数'" + task.getTaskName() + "'失败,任务不存在");
+ }
+ task.setUpdateBy(SecurityUtils.getUsername());
+ return toAjax(taskService.updateById(task));
+ }
+
+ /**
+ * 删除参数配置
+ */
+// @RequiresPermissions("system:task:remove")
+ @DeleteMapping("/{taskIds}")
+ public Result remove (@PathVariable("taskIds") Long[] taskIds) {
+ taskService.removeBatchByIds(Arrays.asList(taskIds));
+ return success();
+ }
+
+}
diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/mapper/TaskMapper.java b/muyu-quest-server/src/main/java/com/muyu/quest/mapper/TaskMapper.java
new file mode 100644
index 0000000..b910d12
--- /dev/null
+++ b/muyu-quest-server/src/main/java/com/muyu/quest/mapper/TaskMapper.java
@@ -0,0 +1,18 @@
+package com.muyu.quest.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muyu.quest.domain.Task;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 任务Mapper接口
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+@Mapper
+public interface TaskMapper extends BaseMapper {
+
+}
diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/service/TaskService.java b/muyu-quest-server/src/main/java/com/muyu/quest/service/TaskService.java
new file mode 100644
index 0000000..1d30bc5
--- /dev/null
+++ b/muyu-quest-server/src/main/java/com/muyu/quest/service/TaskService.java
@@ -0,0 +1,42 @@
+package com.muyu.quest.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.muyu.quest.domain.Task;
+
+/**
+ * 任务Service接口
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+public interface TaskService extends IService {
+ /**
+ * 查询任务
+ *
+ * @param taskCode 任务编码
+ * @return 任务
+ */
+ public Task selectTaskByTaskCode(String taskCode);
+
+ /**
+ * 查询任务列表
+ *
+ * @param task 任务
+ * @return 任务集合
+ */
+ public List selectTaskList(Task task);
+
+
+ Task selectTaskById(Long id);
+
+ Boolean checkTaskCodeUnique(Task task);
+
+ /**
+ * 判断id是否唯一
+ * @param task 实体
+ * @return 结果
+ */
+ Boolean checkIdUnique(Task task);
+}
diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java
new file mode 100644
index 0000000..22c506a
--- /dev/null
+++ b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java
@@ -0,0 +1,99 @@
+package com.muyu.quest.service.impl;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.muyu.common.core.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import com.muyu.quest.mapper.TaskMapper;
+import com.muyu.quest.domain.Task;
+import com.muyu.quest.service.TaskService;
+import org.springframework.util.Assert;
+
+/**
+ * 任务Service业务层处理
+ *
+ * @author 2112A
+ * @date 2024-08-22
+ */
+@Service
+public class TaskServiceImpl extends ServiceImpl
+ implements TaskService {
+
+ /**
+ * 查询任务
+ *
+ * @param taskCode 任务编码
+ * @return 任务
+ */
+ @Override
+ public Task selectTaskByTaskCode(String taskCode)
+ {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ Assert.notNull(taskCode, "taskCode不可为空");
+ queryWrapper.eq(Task::getTaskCode, taskCode);
+ return this.getOne(queryWrapper);
+ }
+
+ /**
+ * 查询任务
+ *
+ * @param id 任务主键
+ * @return 任务
+ */
+ @Override
+ public Task selectTaskById(Long id)
+ {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ Assert.notNull(id, "id不可为空");
+ queryWrapper.eq(Task::getId, id);
+ return this.getOne(queryWrapper);
+ }
+
+ /**
+ * 唯一编码判断
+ * @param task
+ * @return
+ */
+ @Override
+ public Boolean checkTaskCodeUnique(Task task) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Task::getTaskCode, task.getTaskCode());
+ return this.count(queryWrapper) > 0;
+ }
+
+ @Override
+ public Boolean checkIdUnique(Task task) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Task::getId, task.getId());
+ return this.count(queryWrapper) > 0;
+ }
+
+ /**
+ * 查询任务列表
+ *
+ * @param task 任务
+ * @return 任务
+ */
+ @Override
+ public List selectTaskList(Task task)
+ {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotEmpty(task.getTaskName())){
+ queryWrapper.like(Task::getTaskName, task.getTaskName());
+ }
+ if (StringUtils.isNotEmpty(task.getRuleCode())){
+ queryWrapper.eq(Task::getRuleCode, task.getRuleCode());
+ }
+ if (StringUtils.isNotEmpty(task.getState())){
+ queryWrapper.eq(Task::getState, task.getState());
+ }
+ if (StringUtils.isNotEmpty(task.getTaskType())){
+ queryWrapper.eq(Task::getTaskType, task.getTaskType());
+ }
+ return this.list(queryWrapper);
+ }
+
+
+}
diff --git a/muyu-quest-server/src/main/resources/banner.txt b/muyu-quest-server/src/main/resources/banner.txt
new file mode 100644
index 0000000..0dd5eee
--- /dev/null
+++ b/muyu-quest-server/src/main/resources/banner.txt
@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
diff --git a/muyu-quest-server/src/main/resources/bootstrap.yml b/muyu-quest-server/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..286ae1b
--- /dev/null
+++ b/muyu-quest-server/src/main/resources/bootstrap.yml
@@ -0,0 +1,45 @@
+# Tomcat
+server:
+ port: 8080
+
+# nacos线上地址
+nacos:
+ addr: 10.0.1.97:8848
+ user-name: nacos
+ password: nacos
+ namespace: cloud-2112
+
+
+# Spring
+spring:
+ main:
+ allow-bean-definition-overriding: true
+ application:
+ # 应用名称
+ name: muyu-quest
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ namespace: ${nacos.namespace}
+ config:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ namespace: ${nacos.namespace}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ # 系统共享配置
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ # 系统环境Config共享配置
+ - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ # xxl-job 配置文件
+ - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ # rabbit 配置文件
+# - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+
diff --git a/muyu-quest-server/src/main/resources/logback/dev.xml b/muyu-quest-server/src/main/resources/logback/dev.xml
new file mode 100644
index 0000000..e979886
--- /dev/null
+++ b/muyu-quest-server/src/main/resources/logback/dev.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/muyu-quest-server/src/main/resources/logback/prod.xml b/muyu-quest-server/src/main/resources/logback/prod.xml
new file mode 100644
index 0000000..499b043
--- /dev/null
+++ b/muyu-quest-server/src/main/resources/logback/prod.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/muyu-quest-server/src/main/resources/logback/test.xml b/muyu-quest-server/src/main/resources/logback/test.xml
new file mode 100644
index 0000000..499b043
--- /dev/null
+++ b/muyu-quest-server/src/main/resources/logback/test.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..775e8c8
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+
+
+ com.muyu
+ cloud-server-parent
+ 3.6.5
+
+ muyu-quest
+ 3.6.5
+ pom
+
+ muyu-quest-remote
+ muyu-quest-server
+ muyu-quest-client
+ muyu-quest-common
+
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+