This is an automated email from the ASF dual-hosted git repository.

leonbao pushed a commit to branch json_split_two
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/json_split_two by this push:
     new ab07a31  [Feature][JsonSplit-api] taskService methon (#6017)
ab07a31 is described below

commit ab07a3140342c7a3efe694f9e6215049ba9b136a
Author: JinyLeeChina <[email protected]>
AuthorDate: Sun Aug 22 15:54:20 2021 +0800

    [Feature][JsonSplit-api] taskService methon (#6017)
    
    * fix api run error
    
    * fix ut
    
    * api of ProcessDefinition/TaskDefinition
    
    * taskService methon
    
    * fix ut
    
    Co-authored-by: JinyLeeChina <[email protected]>
---
 .../api/controller/TaskDefinitionController.java   |  61 +++-------
 .../api/service/TaskDefinitionService.java         |  32 ++---
 .../service/impl/ProcessDefinitionServiceImpl.java |   5 +-
 .../service/impl/TaskDefinitionServiceImpl.java    | 130 +++++++++++++++++----
 .../api/service/TaskDefinitionServiceImplTest.java |  91 ++++-----------
 .../dao/entity/ProcessDefinition.java              |   2 +-
 .../dao/entity/TaskDefinition.java                 |  14 +++
 .../dao/entity/TaskDefinitionLog.java              |   1 +
 .../dao/mapper/TaskDefinitionLogMapper.java        |  43 ++++---
 .../dao/mapper/TaskDefinitionMapper.java           |  44 +++----
 .../dao/mapper/TaskDefinitionLogMapper.xml         |  28 ++---
 .../dao/mapper/TaskDefinitionMapper.xml            |  47 ++++----
 .../dao/mapper/TaskDefinitionLogMapperTest.java    |  20 ----
 .../dao/mapper/TaskDefinitionMapperTest.java       |  34 +-----
 14 files changed, 256 insertions(+), 296 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
index 385fad6..353843b 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
@@ -122,6 +122,7 @@ public class TaskDefinitionController extends 
BaseController {
      *
      * @param loginUser login user info
      * @param projectCode project code
+     * @param code task definition code
      * @param pageNo the task definition version list current page number
      * @param pageSize the task definition version list page size
      * @param code the task definition code
@@ -129,9 +130,9 @@ public class TaskDefinitionController extends 
BaseController {
      */
     @ApiOperation(value = "queryVersions", notes = 
"QUERY_TASK_DEFINITION_VERSIONS_NOTES")
     @ApiImplicitParams({
+        @ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", 
required = true, dataType = "Long", example = "1"),
         @ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, 
dataType = "Int", example = "1"),
-        @ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = 
true, dataType = "Int", example = "10"),
-        @ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", 
required = true, dataType = "Long", example = "1")
+        @ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = 
true, dataType = "Int", example = "10")
     })
     @GetMapping(value = "/versions")
     @ResponseStatus(HttpStatus.OK)
@@ -139,11 +140,14 @@ public class TaskDefinitionController extends 
BaseController {
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result queryTaskDefinitionVersions(@ApiIgnore 
@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
                                               @ApiParam(name = "projectCode", 
value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
+                                              @RequestParam(value = "code") 
long code,
                                               @RequestParam(value = "pageNo") 
int pageNo,
-                                              @RequestParam(value = 
"pageSize") int pageSize,
-                                              @RequestParam(value = "code") 
long code) {
-        Map<String, Object> result = 
taskDefinitionService.queryTaskDefinitionVersions(loginUser, projectCode, 
pageNo, pageSize, code);
-        return returnDataList(result);
+                                              @RequestParam(value = 
"pageSize") int pageSize) {
+        Result result = checkPageParams(pageNo, pageSize);
+        if (!result.checkResult()) {
+            return result;
+        }
+        return taskDefinitionService.queryTaskDefinitionVersions(loginUser, 
projectCode, code, pageNo, pageSize);
     }
 
     /**
@@ -249,6 +253,7 @@ public class TaskDefinitionController extends 
BaseController {
      *
      * @param loginUser login user
      * @param projectCode project code
+     * @param taskType taskType
      * @param searchVal search value
      * @param userId user id
      * @param pageNo page number
@@ -257,6 +262,7 @@ public class TaskDefinitionController extends 
BaseController {
      */
     @ApiOperation(value = "queryTaskDefinitionListPaging", notes = 
"QUERY_TASK_DEFINITION_LIST_PAGING_NOTES")
     @ApiImplicitParams({
+        @ApiImplicitParam(name = "taskType", value = "TASK_TYPE", required = 
false, type = "String"),
         @ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = 
false, type = "String"),
         @ApiImplicitParam(name = "userId", value = "USER_ID", required = 
false, dataType = "Int", example = "100"),
         @ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, 
dataType = "Int", example = "1"),
@@ -268,6 +274,7 @@ public class TaskDefinitionController extends 
BaseController {
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result queryTaskDefinitionListPaging(@ApiIgnore 
@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
                                                 @ApiParam(name = 
"projectCode", value = "PROJECT_CODE", required = true) @PathVariable long 
projectCode,
+                                                @RequestParam(value = 
"taskType", required = false) String taskType,
                                                 @RequestParam(value = 
"searchVal", required = false) String searchVal,
                                                 @RequestParam(value = 
"userId", required = false, defaultValue = "0") Integer userId,
                                                 @RequestParam("pageNo") 
Integer pageNo,
@@ -276,47 +283,9 @@ public class TaskDefinitionController extends 
BaseController {
         if (!result.checkResult()) {
             return result;
         }
+        taskType = ParameterUtils.handleEscapes(taskType);
         searchVal = ParameterUtils.handleEscapes(searchVal);
-        return taskDefinitionService.queryTaskDefinitionListPaging(loginUser, 
projectCode, searchVal, userId, pageNo, pageSize);
-    }
-
-    /**
-     * query task definition list paging by taskType
-     *
-     * @param loginUser login user
-     * @param projectCode project code
-     * @param searchVal search value
-     * @param taskType taskType
-     * @param userId user id
-     * @param pageNo page number
-     * @param pageSize page size
-     * @return task definition page
-     */
-    @ApiOperation(value = "queryTaskDefinitionByTaskType", notes = 
"QUERY_TASK_DEFINITION_LIST_PAGING_NOTES")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "taskType", value = "TASK_TYPE", required = 
true, type = "String"),
-        @ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = 
false, type = "String"),
-        @ApiImplicitParam(name = "userId", value = "USER_ID", required = 
false, dataType = "Int", example = "100"),
-        @ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, 
dataType = "Int", example = "1"),
-        @ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = 
true, dataType = "Int", example = "10")
-    })
-    @GetMapping(value = "/task-type-list-paging")
-    @ResponseStatus(HttpStatus.OK)
-    @ApiException(QUERY_TASK_DEFINITION_LIST_PAGING_ERROR)
-    @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
-    public Result queryTaskDefinitionByTaskType(@ApiIgnore 
@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
-                                                @ApiParam(name = 
"projectCode", value = "PROJECT_CODE", required = true) @PathVariable long 
projectCode,
-                                                @RequestParam(value = 
"taskType", required = true) String taskType,
-                                                @RequestParam(value = 
"searchVal", required = false) String searchVal,
-                                                @RequestParam(value = 
"userId", required = false, defaultValue = "0") Integer userId,
-                                                @RequestParam("pageNo") 
Integer pageNo,
-                                                @RequestParam("pageSize") 
Integer pageSize) {
-        Result result = checkPageParams(pageNo, pageSize);
-        if (!result.checkResult()) {
-            return result;
-        }
-        searchVal = ParameterUtils.handleEscapes(searchVal);
-        return taskDefinitionService.queryTaskDefinitionByTaskType(loginUser, 
projectCode, taskType, searchVal, userId, pageNo, pageSize);
+        return taskDefinitionService.queryTaskDefinitionListPaging(loginUser, 
projectCode, taskType, searchVal, userId, pageNo, pageSize);
     }
 
     /**
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
index dcf92e2..8222b80 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
@@ -91,16 +91,16 @@ public interface TaskDefinitionService {
      *
      * @param loginUser login user info to check auth
      * @param projectCode project code
+     * @param taskCode task definition code
      * @param pageNo page number
      * @param pageSize page size
-     * @param taskCode task definition code
      * @return the pagination task definition versions info of the certain 
task definition
      */
-    Map<String, Object> queryTaskDefinitionVersions(User loginUser,
-                                                    long projectCode,
-                                                    int pageNo,
-                                                    int pageSize,
-                                                    long taskCode);
+    Result queryTaskDefinitionVersions(User loginUser,
+                                       long projectCode,
+                                       long taskCode,
+                                       int pageNo,
+                                       int pageSize);
 
     /**
      * delete the certain task definition version by version and code
@@ -133,24 +133,6 @@ public interface TaskDefinitionService {
      *
      * @param loginUser login user
      * @param projectCode project code
-     * @param searchVal search value
-     * @param userId user id
-     * @param pageNo page number
-     * @param pageSize page size
-     * @return task definition page
-     */
-    Result queryTaskDefinitionListPaging(User loginUser,
-                                         long projectCode,
-                                         String searchVal,
-                                         Integer userId,
-                                         Integer pageNo,
-                                         Integer pageSize);
-
-    /**
-     * query task definition list paging
-     *
-     * @param loginUser login user
-     * @param projectCode project code
      * @param taskType taskType
      * @param searchVal search value
      * @param userId user id
@@ -158,7 +140,7 @@ public interface TaskDefinitionService {
      * @param pageSize page size
      * @return task definition page
      */
-    Result queryTaskDefinitionByTaskType(User loginUser,
+    Result queryTaskDefinitionListPaging(User loginUser,
                                          long projectCode,
                                          String taskType,
                                          String searchVal,
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index def9989..c4f9114 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -1347,12 +1347,9 @@ public class ProcessDefinitionServiceImpl extends 
BaseServiceImpl implements Pro
             putMsg(result, resultStatus);
             return result;
         }
-
-        ProcessDefinition processDefinition = 
processDefinitionMapper.queryByCode(code);
-
         PageInfo<ProcessDefinitionLog> pageInfo = new PageInfo<>(pageNo, 
pageSize);
         Page<ProcessDefinitionLog> page = new Page<>(pageNo, pageSize);
-        IPage<ProcessDefinitionLog> processDefinitionVersionsPaging = 
processDefinitionLogMapper.queryProcessDefinitionVersionsPaging(page, 
processDefinition.getCode());
+        IPage<ProcessDefinitionLog> processDefinitionVersionsPaging = 
processDefinitionLogMapper.queryProcessDefinitionVersionsPaging(page, code);
         List<ProcessDefinitionLog> processDefinitionLogs = 
processDefinitionVersionsPaging.getRecords();
 
         pageInfo.setTotalList(processDefinitionLogs);
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index ec5e202..b8de610 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -21,6 +21,7 @@ import org.apache.dolphinscheduler.api.enums.Status;
 import org.apache.dolphinscheduler.api.service.ProjectService;
 import org.apache.dolphinscheduler.api.service.TaskDefinitionService;
 import org.apache.dolphinscheduler.api.utils.CheckUtils;
+import org.apache.dolphinscheduler.api.utils.PageInfo;
 import org.apache.dolphinscheduler.api.utils.Result;
 import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
@@ -36,6 +37,7 @@ import 
org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
+import org.apache.dolphinscheduler.dao.mapper.UserMapper;
 import org.apache.dolphinscheduler.service.process.ProcessService;
 
 import java.util.ArrayList;
@@ -52,6 +54,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 /**
  * task definition service impl
  */
@@ -78,6 +83,9 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
     @Autowired
     private ProcessService processService;
 
+    @Autowired
+    private UserMapper userMapper;
+
     /**
      * create task definition
      *
@@ -159,7 +167,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             totalSuccessNumber++;
         }
         for (TaskDefinitionLog taskDefinitionToUpdate : 
updateTaskDefinitionLogs) {
-            TaskDefinition task = 
taskDefinitionMapper.queryByDefinitionCode(taskDefinitionToUpdate.getCode());
+            TaskDefinition task = 
taskDefinitionMapper.queryByCode(taskDefinitionToUpdate.getCode());
             if (task == null) {
                 newTaskDefinitionLogs.add(taskDefinitionToUpdate);
             } else {
@@ -203,7 +211,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             return result;
         }
 
-        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByDefinitionName(project.getCode(), taskName);
+        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByName(project.getCode(), taskName);
         if (taskDefinition == null) {
             putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskName);
         } else {
@@ -268,7 +276,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             putMsg(result, Status.PROCESS_DEFINE_STATE_ONLINE);
             return result;
         }
-        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByDefinitionCode(taskCode);
+        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCode);
         if (taskDefinition == null) {
             putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
             return result;
@@ -332,7 +340,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             putMsg(result, Status.PROCESS_DEFINE_STATE_ONLINE);
             return result;
         }
-        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByDefinitionCode(taskCode);
+        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCode);
         if (taskDefinition == null) {
             putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
             return result;
@@ -340,46 +348,123 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
         TaskDefinitionLog taskDefinitionLog = 
taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(taskCode, version);
         taskDefinitionLog.setUserId(loginUser.getId());
         taskDefinitionLog.setUpdateTime(new Date());
-        taskDefinitionMapper.updateById(taskDefinitionLog);
-        result.put(Constants.DATA_LIST, taskCode);
-        putMsg(result, Status.SUCCESS);
+        int switchVersion = taskDefinitionMapper.updateById(taskDefinitionLog);
+        if (switchVersion > 0) {
+            result.put(Constants.DATA_LIST, taskCode);
+            putMsg(result, Status.SUCCESS);
+        } else {
+            putMsg(result, Status.SWITCH_TASK_DEFINITION_VERSION_ERROR);
+        }
         return result;
     }
 
     @Override
-    public Map<String, Object> queryTaskDefinitionVersions(User loginUser, 
long projectCode, int pageNo, int pageSize, long taskCode) {
-        return null;
+    public Result queryTaskDefinitionVersions(User loginUser,
+                                              long projectCode,
+                                              long taskCode,
+                                              int pageNo,
+                                              int pageSize) {
+        Result result = new Result();
+        Project project = projectMapper.queryByCode(projectCode);
+        // check user access for project
+        Map<String, Object> checkResult = 
projectService.checkProjectAndAuth(loginUser, project, projectCode);
+        Status resultStatus = (Status) checkResult.get(Constants.STATUS);
+        if (resultStatus != Status.SUCCESS) {
+            putMsg(result, resultStatus);
+            return result;
+        }
+        PageInfo<TaskDefinitionLog> pageInfo = new PageInfo<>(pageNo, 
pageSize);
+        Page<TaskDefinitionLog> page = new Page<>(pageNo, pageSize);
+        IPage<TaskDefinitionLog> taskDefinitionVersionsPaging = 
taskDefinitionLogMapper.queryTaskDefinitionVersionsPaging(page, taskCode);
+        List<TaskDefinitionLog> taskDefinitionLogs = 
taskDefinitionVersionsPaging.getRecords();
+
+        pageInfo.setTotalList(taskDefinitionLogs);
+        pageInfo.setTotal((int) taskDefinitionVersionsPaging.getTotal());
+        result.setData(pageInfo);
+        putMsg(result, Status.SUCCESS);
+        return result;
     }
 
     @Override
     public Map<String, Object> deleteByCodeAndVersion(User loginUser, long 
projectCode, long taskCode, int version) {
-        return null;
+        Project project = projectMapper.queryByCode(projectCode);
+        //check user access for project
+        Map<String, Object> result = 
projectService.checkProjectAndAuth(loginUser, project, projectCode);
+        if (result.get(Constants.STATUS) != Status.SUCCESS) {
+            return result;
+        }
+        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCode);
+
+        if (taskDefinition == null) {
+            putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
+        } else {
+            int delete = 
taskDefinitionLogMapper.deleteByCodeAndVersion(taskCode, version);
+            if (delete > 0) {
+                putMsg(result, Status.SUCCESS);
+            } else {
+                putMsg(result, Status.DELETE_TASK_DEFINITION_VERSION_ERROR);
+            }
+        }
+        return result;
     }
 
     @Override
     public Map<String, Object> queryTaskDefinitionDetail(User loginUser, long 
projectCode, long taskCode) {
-        return null;
-    }
+        Project project = projectMapper.queryByCode(projectCode);
+        //check user access for project
+        Map<String, Object> result = 
projectService.checkProjectAndAuth(loginUser, project, projectCode);
+        if (result.get(Constants.STATUS) != Status.SUCCESS) {
+            return result;
+        }
 
-    @Override
-    public Result queryTaskDefinitionListPaging(User loginUser,
-                                                long projectCode,
-                                                String searchVal,
-                                                Integer userId,
-                                                Integer pageNo,
-                                                Integer pageSize) {
-        return null;
+        TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCode);
+        if (taskDefinition == null) {
+            putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
+        } else {
+            result.put(Constants.DATA_LIST, taskDefinition);
+            putMsg(result, Status.SUCCESS);
+        }
+        return result;
     }
 
     @Override
-    public Result queryTaskDefinitionByTaskType(User loginUser,
+    public Result queryTaskDefinitionListPaging(User loginUser,
                                                 long projectCode,
                                                 String taskType,
                                                 String searchVal,
                                                 Integer userId,
                                                 Integer pageNo,
                                                 Integer pageSize) {
-        return null;
+        Result result = new Result();
+        Project project = projectMapper.queryByCode(projectCode);
+        //check user access for project
+        Map<String, Object> checkResult = 
projectService.checkProjectAndAuth(loginUser, project, projectCode);
+        Status resultStatus = (Status) checkResult.get(Constants.STATUS);
+        if (resultStatus != Status.SUCCESS) {
+            putMsg(result, resultStatus);
+            return result;
+        }
+        if (StringUtils.isNotBlank(taskType)) {
+            taskType = taskType.toUpperCase();
+        }
+        Page<TaskDefinition> page = new Page<>(pageNo, pageSize);
+        IPage<TaskDefinition> taskDefinitionIPage = 
taskDefinitionMapper.queryDefineListPaging(
+            page, projectCode, taskType, searchVal, userId, 
isAdmin(loginUser));
+        if (StringUtils.isNotBlank(taskType)) {
+            List<TaskDefinition> records = taskDefinitionIPage.getRecords();
+            for (TaskDefinition pd : records) {
+                TaskDefinitionLog taskDefinitionLog = 
taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(pd.getCode(), 
pd.getVersion());
+                User user = 
userMapper.selectById(taskDefinitionLog.getOperator());
+                pd.setModifyBy(user.getUserName());
+            }
+            taskDefinitionIPage.setRecords(records);
+        }
+        PageInfo<TaskDefinition> pageInfo = new PageInfo<>(pageNo, pageSize);
+        pageInfo.setTotal((int) taskDefinitionIPage.getTotal());
+        pageInfo.setTotalList(taskDefinitionIPage.getRecords());
+        result.setData(pageInfo);
+        putMsg(result, Status.SUCCESS);
+        return result;
     }
 
     @Override
@@ -405,4 +490,3 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
         return result;
     }
 }
-
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
index c3f1bcc..72dbe39 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
@@ -22,14 +22,12 @@ import 
org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
 import org.apache.dolphinscheduler.api.service.impl.TaskDefinitionServiceImpl;
 import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.enums.UserType;
-import org.apache.dolphinscheduler.common.model.TaskNode;
 import org.apache.dolphinscheduler.common.task.shell.ShellParameters;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
 import org.apache.dolphinscheduler.dao.entity.Project;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
 import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
@@ -37,6 +35,7 @@ import 
org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.service.process.ProcessService;
 
 import java.text.MessageFormat;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -51,48 +50,6 @@ import org.mockito.junit.MockitoJUnitRunner;
 
 @RunWith(MockitoJUnitRunner.class)
 public class TaskDefinitionServiceImplTest {
-    String taskDefinitionJson = "{\n"
-            + "    \"type\": \"SQL\",\n"
-            + "    \"id\": \"tasks-27297\",\n"
-            + "    \"name\": \"SQL\",\n"
-            + "    \"params\": {\n"
-            + "        \"type\": \"MYSQL\",\n"
-            + "        \"datasource\": 1,\n"
-            + "        \"sql\": \"select * from test\",\n"
-            + "        \"udfs\": \"\",\n"
-            + "        \"sqlType\": \"1\",\n"
-            + "        \"title\": \"\",\n"
-            + "        \"receivers\": \"\",\n"
-            + "        \"receiversCc\": \"\",\n"
-            + "        \"showType\": \"TABLE\",\n"
-            + "        \"localParams\": [\n"
-            + "            \n"
-            + "        ],\n"
-            + "        \"connParams\": \"\",\n"
-            + "        \"preStatements\": [\n"
-            + "            \n"
-            + "        ],\n"
-            + "        \"postStatements\": [\n"
-            + "            \n"
-            + "        ]\n"
-            + "    },\n"
-            + "    \"description\": \"\",\n"
-            + "    \"runFlag\": \"NORMAL\",\n"
-            + "    \"dependence\": {\n"
-            + "        \n"
-            + "    },\n"
-            + "    \"maxRetryTimes\": \"0\",\n"
-            + "    \"retryInterval\": \"1\",\n"
-            + "    \"timeout\": {\n"
-            + "        \"strategy\": \"\",\n"
-            + "        \"enable\": false\n"
-            + "    },\n"
-            + "    \"taskInstancePriority\": \"MEDIUM\",\n"
-            + "    \"workerGroupId\": -1,\n"
-            + "    \"preTasks\": [\n"
-            + "        \"dependent\"\n"
-            + "    ]\n"
-            + "}\n";
 
     @InjectMocks
     private TaskDefinitionServiceImpl taskDefinitionService;
@@ -104,12 +61,6 @@ public class TaskDefinitionServiceImplTest {
     private TaskDefinitionLogMapper taskDefinitionLogMapper;
 
     @Mock
-    private ProcessDefinitionMapper processDefineMapper;
-
-    @Mock
-    private ProcessTaskRelationMapper processTaskRelationMapper;
-
-    @Mock
     private ProjectMapper projectMapper;
 
     @Mock
@@ -118,6 +69,10 @@ public class TaskDefinitionServiceImplTest {
     @Mock
     private ProcessService processService;
 
+    @Mock
+    private ProcessTaskRelationMapper processTaskRelationMapper;
+    ;
+
     @Test
     public void createTaskDefinition() {
         long projectCode = 1L;
@@ -144,13 +99,13 @@ public class TaskDefinitionServiceImplTest {
         
Mockito.when(taskDefinitionMapper.batchInsert(Mockito.anyList())).thenReturn(1);
         
Mockito.when(taskDefinitionLogMapper.batchInsert(Mockito.anyList())).thenReturn(1);
         Map<String, Object> relation = taskDefinitionService
-                .createTaskDefinition(loginUser, projectCode, 
createTaskDefinitionJson);
+            .createTaskDefinition(loginUser, projectCode, 
createTaskDefinitionJson);
         Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
 
     }
 
     @Test
-    public void updateTaskDefinition () {
+    public void updateTaskDefinition() {
         String taskDefinitionJson = 
"{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
             + 
"\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
             + 
"\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
@@ -173,7 +128,7 @@ public class TaskDefinitionServiceImplTest {
         Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectCode)).thenReturn(result);
 
         
Mockito.when(processService.isTaskOnline(taskCode)).thenReturn(Boolean.FALSE);
-        
Mockito.when(taskDefinitionMapper.queryByDefinitionCode(taskCode)).thenReturn(new
 TaskDefinition());
+        
Mockito.when(taskDefinitionMapper.queryByCode(taskCode)).thenReturn(new 
TaskDefinition());
         
Mockito.when(taskDefinitionMapper.updateById(Mockito.any(TaskDefinitionLog.class))).thenReturn(1);
         
Mockito.when(taskDefinitionLogMapper.insert(Mockito.any(TaskDefinitionLog.class))).thenReturn(1);
         
Mockito.when(taskDefinitionLogMapper.queryMaxVersionForDefinition(taskCode)).thenReturn(1);
@@ -197,13 +152,11 @@ public class TaskDefinitionServiceImplTest {
         putMsg(result, Status.SUCCESS, projectCode);
         Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectCode)).thenReturn(result);
 
-        TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, 
TaskNode.class);
-
-        
Mockito.when(taskDefinitionMapper.queryByDefinitionName(project.getCode(), 
taskName))
-                .thenReturn(new TaskDefinition());
+        Mockito.when(taskDefinitionMapper.queryByName(project.getCode(), 
taskName))
+            .thenReturn(new TaskDefinition());
 
         Map<String, Object> relation = taskDefinitionService
-                .queryTaskDefinitionByName(loginUser, projectCode, taskName);
+            .queryTaskDefinitionByName(loginUser, projectCode, taskName);
 
         Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
     }
@@ -222,17 +175,15 @@ public class TaskDefinitionServiceImplTest {
         Map<String, Object> result = new HashMap<>();
         putMsg(result, Status.SUCCESS, projectCode);
         Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectCode)).thenReturn(result);
-
-        TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, 
TaskNode.class);
-
+        
Mockito.when(processTaskRelationMapper.queryByTaskCode(Mockito.anyLong()))
+            .thenReturn(new ArrayList<>());
         Mockito.when(taskDefinitionMapper.deleteByCode(Mockito.anyLong()))
-                .thenReturn(1);
+            .thenReturn(1);
 
         Map<String, Object> relation = taskDefinitionService
-                .deleteTaskDefinitionByCode(loginUser, projectCode, 11L);
+            .deleteTaskDefinitionByCode(loginUser, projectCode, 
Mockito.anyLong());
 
         Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
-
     }
 
     @Test
@@ -252,16 +203,14 @@ public class TaskDefinitionServiceImplTest {
         putMsg(result, Status.SUCCESS, projectCode);
         Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectCode)).thenReturn(result);
 
-        TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, 
TaskNode.class);
-
         
Mockito.when(taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(taskCode, 
version))
-                .thenReturn(new TaskDefinitionLog());
+            .thenReturn(new TaskDefinitionLog());
 
-        Mockito.when(taskDefinitionMapper.queryByDefinitionCode(taskCode))
-                .thenReturn(new TaskDefinition());
-        
+        Mockito.when(taskDefinitionMapper.queryByCode(taskCode))
+            .thenReturn(new TaskDefinition());
+        Mockito.when(taskDefinitionMapper.updateById(new 
TaskDefinitionLog())).thenReturn(1);
         Map<String, Object> relation = taskDefinitionService
-                .switchVersion(loginUser, projectCode, taskCode, version);
+            .switchVersion(loginUser, projectCode, taskCode, version);
 
         Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
     }
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessDefinition.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessDefinition.java
index 60fd4b2..321666b 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessDefinition.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessDefinition.java
@@ -167,7 +167,7 @@ public class ProcessDefinition {
     @TableField(exist = false)
     private int warningGroupId;
 
-    public ProcessDefinition(){}
+    public ProcessDefinition() {}
 
     public ProcessDefinition(long projectCode,
                              String name,
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
index dd25d6e..a8a5ccd 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
@@ -177,6 +177,12 @@ public class TaskDefinition {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
+    /**
+     * modify user name
+     */
+    @TableField(exist = false)
+    private String modifyBy;
+
     public TaskDefinition() {
     }
 
@@ -401,6 +407,14 @@ public class TaskDefinition {
         return JSONUtils.getNodeString(this.taskParams, Constants.DEPENDENCE);
     }
 
+    public String getModifyBy() {
+        return modifyBy;
+    }
+
+    public void setModifyBy(String modifyBy) {
+        this.modifyBy = modifyBy;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (o == null) {
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinitionLog.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinitionLog.java
index b052c93..1fb2060 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinitionLog.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinitionLog.java
@@ -70,6 +70,7 @@ public class TaskDefinitionLog extends TaskDefinition {
         this.setFailRetryInterval(taskDefinition.getFailRetryInterval());
         this.setFailRetryTimes(taskDefinition.getFailRetryTimes());
         this.setFlag(taskDefinition.getFlag());
+        this.setModifyBy(taskDefinition.getModifyBy());
     }
 
     public int getOperator() {
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.java
index 0d3d85e..70ca9f7 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.java
@@ -26,6 +26,8 @@ import java.util.Collection;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 /**
  * task definition log mapper interface
@@ -33,37 +35,25 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface TaskDefinitionLogMapper extends BaseMapper<TaskDefinitionLog> 
{
 
     /**
-     * query task definition log by name
-     *
-     * @param projectCode projectCode
-     * @param name name
-     * @return task definition log list
-     */
-    List<TaskDefinitionLog> queryByDefinitionName(@Param("projectCode") long 
projectCode,
-                                                  @Param("taskDefinitionName") 
String name);
-
-    /**
      * query max version for definition
      *
-     * @param taskDefinitionCode taskDefinitionCode
+     * @param code taskDefinitionCode
      */
-    Integer queryMaxVersionForDefinition(@Param("taskDefinitionCode") long 
taskDefinitionCode);
+    Integer queryMaxVersionForDefinition(@Param("code") long code);
 
     /**
      * query task definition log
      *
-     * @param taskDefinitionCode taskDefinitionCode
+     * @param code taskDefinitionCode
      * @param version version
      * @return task definition log
      */
-    TaskDefinitionLog 
queryByDefinitionCodeAndVersion(@Param("taskDefinitionCode") long 
taskDefinitionCode,
+    TaskDefinitionLog queryByDefinitionCodeAndVersion(@Param("code") long code,
                                                       @Param("version") int 
version);
 
-
     /**
-     *
-     * @param taskDefinitions
-     * @return
+     * @param taskDefinitions taskDefinition list
+     * @return list
      */
     List<TaskDefinitionLog> queryByTaskDefinitions(@Param("taskDefinitions") 
Collection<TaskDefinition> taskDefinitions);
 
@@ -75,4 +65,21 @@ public interface TaskDefinitionLogMapper extends 
BaseMapper<TaskDefinitionLog> {
      */
     int batchInsert(@Param("taskDefinitionLogs") List<TaskDefinitionLog> 
taskDefinitionLogs);
 
+    /**
+     * delete the certain task definition version by task definition code and 
version
+     *
+     * @param code task definition code
+     * @param version task definition version
+     * @return delete result
+     */
+    int deleteByCodeAndVersion(@Param("code") long code, @Param("version") int 
version);
+
+    /**
+     * query the paging task definition version list by pagination info
+     *
+     * @param page pagination info
+     * @param code process definition code
+     * @return the paging task definition version list
+     */
+    IPage<TaskDefinitionLog> 
queryTaskDefinitionVersionsPaging(Page<TaskDefinitionLog> page, @Param("code") 
long code);
 }
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
index 5135319..6840099 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
@@ -20,6 +20,7 @@ package org.apache.dolphinscheduler.dao.mapper;
 import org.apache.dolphinscheduler.dao.entity.DefinitionGroupByUser;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
+
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
@@ -27,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 
 /**
  * task definition mapper interface
@@ -40,24 +42,16 @@ public interface TaskDefinitionMapper extends 
BaseMapper<TaskDefinition> {
      * @param name name
      * @return task definition
      */
-    TaskDefinition queryByDefinitionName(@Param("projectCode") long 
projectCode,
-                                      @Param("taskDefinitionName") String 
name);
-
-    /**
-     * query task definition by id
-     *
-     * @param taskDefinitionId taskDefinitionId
-     * @return task definition
-     */
-    TaskDefinition queryByDefinitionId(@Param("taskDefinitionId") int 
taskDefinitionId);
+    TaskDefinition queryByName(@Param("projectCode") long projectCode,
+                               @Param("name") String name);
 
     /**
      * query task definition by code
      *
-     * @param taskDefinitionCode taskDefinitionCode
+     * @param code taskDefinitionCode
      * @return task definition
      */
-    TaskDefinition queryByDefinitionCode(@Param("taskDefinitionCode") long 
taskDefinitionCode);
+    TaskDefinition queryByCode(@Param("code") long code);
 
     /**
      * query all task definition list
@@ -68,14 +62,6 @@ public interface TaskDefinitionMapper extends 
BaseMapper<TaskDefinition> {
     List<TaskDefinition> queryAllDefinitionList(@Param("projectCode") long 
projectCode);
 
     /**
-     * query task definition by ids
-     *
-     * @param ids ids
-     * @return task definition list
-     */
-    List<TaskDefinition> queryDefinitionListByIdList(@Param("ids") Integer[] 
ids);
-
-    /**
      * count task definition group by user
      *
      * @param projectCodes projectCodes
@@ -114,4 +100,22 @@ public interface TaskDefinitionMapper extends 
BaseMapper<TaskDefinition> {
      * @return int
      */
     int batchInsert(@Param("taskDefinitions") List<TaskDefinitionLog> 
taskDefinitions);
+
+    /**
+     * task definition page
+     *
+     * @param page page
+     * @param taskType taskType
+     * @param searchVal searchVal
+     * @param userId userId
+     * @param projectCode projectCode
+     * @param isAdmin isAdmin
+     * @return task definition IPage
+     */
+    IPage<TaskDefinition> queryDefineListPaging(IPage<TaskDefinition> page,
+                                                @Param("projectCode") long 
projectCode,
+                                                @Param("taskType") String 
taskType,
+                                                @Param("searchVal") String 
searchVal,
+                                                @Param("userId") int userId,
+                                                @Param("isAdmin") boolean 
isAdmin);
 }
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
index df9d115..a925589 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
@@ -23,27 +23,16 @@
         worker_group, fail_retry_times, fail_retry_interval, timeout_flag, 
timeout_notify_strategy, timeout, delay_time,
         resource_ids, operator, operate_time, create_time, update_time
     </sql>
-    <select id="queryByDefinitionName" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog">
-        select td.id, td.code, td.name, td.version, td.description, 
td.project_code, td.user_id, td.task_type, td.task_params,
-        td.flag, td.task_priority, td.worker_group, td.fail_retry_times, 
td.fail_retry_interval, td.timeout_flag, td.timeout_notify_strategy,
-        td.timeout, td.delay_time, td.resource_ids, 
td.operator,td.operate_time, td.create_time, td.update_time,
-        u.user_name,p.name as project_name
-        from t_ds_task_definition_log td
-        JOIN t_ds_user u ON td.user_id = u.id
-        JOIN  t_ds_project p ON td.project_code = p.code
-        WHERE p.code = #{projectCode}
-        and td.name = #{taskDefinitionName}
-    </select>
     <select id="queryMaxVersionForDefinition" resultType="java.lang.Integer">
         select max(version)
         from t_ds_task_definition_log
-        WHERE code = #{taskDefinitionCode}
+        WHERE code = #{code}
     </select>
     <select id="queryByDefinitionCodeAndVersion" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog">
         select
         <include refid="baseSql"/>
         from t_ds_task_definition_log
-        WHERE code = #{taskDefinitionCode}
+        WHERE code = #{code}
         and version = #{version}
     </select>
     <select id="queryByTaskDefinitions" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog">
@@ -73,4 +62,17 @@
              #{taskDefinitionLog.createTime},#{taskDefinitionLog.updateTime})
         </foreach>
     </insert>
+    <delete id="deleteByCodeAndVersion">
+        delete
+        from t_ds_task_definition_log
+        where code = #{code}
+          and version = #{version}
+    </delete>
+    <select id="queryTaskDefinitionVersionsPaging" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog">
+        select
+        <include refid="baseSql"/>
+        from t_ds_task_definition_log
+        where code = #{code}
+        order by version desc
+    </select>
 </mapper>
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
index cc8e180..6e14de9 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
@@ -23,12 +23,12 @@
         worker_group, fail_retry_times, fail_retry_interval, timeout_flag, 
timeout_notify_strategy, timeout, delay_time,
         resource_ids, create_time, update_time
     </sql>
-    <select id="queryByDefinitionName" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
+    <select id="queryByName" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
         select
         <include refid="baseSql"/>
         from t_ds_task_definition
         WHERE project_code = #{projectCode}
-        and `name` = #{taskDefinitionName}
+        and `name` = #{name}
     </select>
     <select id="queryAllDefinitionList" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
         select
@@ -38,16 +38,6 @@
         order by create_time desc
     </select>
 
-    <select id="queryDefinitionListByIdList" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
-        select
-        <include refid="baseSql"/>
-        from t_ds_task_definition
-        where id in
-        <foreach collection="ids" index="index" item="i" open="(" 
separator="," close=")">
-            #{i}
-        </foreach>
-    </select>
-
     <select id="countDefinitionGroupByUser" 
resultType="org.apache.dolphinscheduler.dao.entity.DefinitionGroupByUser">
         SELECT td.user_id as user_id, tu.user_name as user_name, count(0) as 
count
         FROM t_ds_task_definition td
@@ -61,20 +51,12 @@
         </if>
         group by td.user_id,tu.user_name
     </select>
-    <select id="queryByDefinitionId" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
-        select td.id, td.code, td.name, td.version, td.description, 
td.project_code, td.user_id, td.task_type, td.task_params,
-        td.flag, td.task_priority, td.worker_group, td.fail_retry_times, 
td.fail_retry_interval, td.timeout_flag, td.timeout_notify_strategy,
-        td.timeout, td.delay_time, td.resource_ids, td.create_time, 
td.update_time, u.user_name,p.name as project_name
-        from t_ds_task_definition td
-        JOIN t_ds_user u ON td.user_id = u.id
-        JOIN t_ds_project p ON td.project_code = p.code
-        WHERE td.id = #{taskDefinitionId}
-    </select>
-    <select id="queryByDefinitionCode" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
+
+    <select id="queryByCode" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
         select
         <include refid="baseSql"/>
         from t_ds_task_definition
-        where code = #{taskDefinitionCode}
+        where code = #{code}
     </select>
     <select id="listResources" resultType="java.util.HashMap">
         SELECT id,resource_ids
@@ -104,4 +86,23 @@
             
#{taskDefinition.delayTime},#{taskDefinition.resourceIds},#{taskDefinition.createTime},#{taskDefinition.updateTime})
         </foreach>
     </insert>
+    <select id="queryDefineListPaging" 
resultType="org.apache.dolphinscheduler.dao.entity.ProcessDefinition">
+        select td.id, td.code, td.name, td.version, td.description, 
td.project_code, td.user_id, td.task_type, td.task_params,
+        td.flag, td.task_priority, td.worker_group, td.fail_retry_times, 
td.fail_retry_interval, td.timeout_flag, td.timeout_notify_strategy,
+        td.timeout, td.delay_time, td.resource_ids, td.create_time, 
td.update_time, u.user_name,p.name as project_name
+        from t_ds_task_definition td
+        JOIN t_ds_user u ON td.user_id = u.id
+        JOIN t_ds_project p ON td.project_code = p.code
+        where td.project_code = #{projectCode}
+        <if test=" taskType != null and taskType != ''">
+            and td.task_type = #{taskType}
+        </if>
+        <if test=" searchVal != null and searchVal != ''">
+            and td.name like concat('%', #{searchVal}, '%')
+        </if>
+        <if test=" userId != 0">
+            and td.user_id = #{userId}
+        </if>
+        order by td.update_time desc
+    </select>
 </mapper>
diff --git 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapperTest.java
 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapperTest.java
index f268a4f..cfa88c5 100644
--- 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapperTest.java
+++ 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapperTest.java
@@ -79,26 +79,6 @@ public class TaskDefinitionLogMapperTest {
     }
 
     @Test
-    public void testQueryByDefinitionName() {
-        User user = new User();
-        user.setUserName("un");
-        userMapper.insert(user);
-        User un = userMapper.queryByUserNameAccurately("un");
-
-        Project project = new Project();
-        project.setCode(1L);
-        project.setCreateTime(new Date());
-        project.setUpdateTime(new Date());
-        projectMapper.insert(project);
-
-        TaskDefinitionLog taskDefinitionLog = insertOne(un.getId());
-
-        List<TaskDefinitionLog> taskDefinitionLogs = taskDefinitionLogMapper
-                .queryByDefinitionName(taskDefinitionLog.getProjectCode(), 
taskDefinitionLog.getName());
-        Assert.assertNotEquals(taskDefinitionLogs.size(), 0);
-    }
-
-    @Test
     public void testQueryMaxVersionForDefinition() {
         TaskDefinitionLog taskDefinitionLog = insertOne();
         int version = taskDefinitionLogMapper
diff --git 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapperTest.java
 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapperTest.java
index 5e93dc0..2035a37 100644
--- 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapperTest.java
+++ 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapperTest.java
@@ -79,38 +79,16 @@ public class TaskDefinitionMapperTest {
     @Test
     public void testQueryByDefinitionName() {
         TaskDefinition taskDefinition = insertOne();
-        TaskDefinition result = 
taskDefinitionMapper.queryByDefinitionName(taskDefinition.getProjectCode()
+        TaskDefinition result = 
taskDefinitionMapper.queryByName(taskDefinition.getProjectCode()
                 , taskDefinition.getName());
 
         Assert.assertNotNull(result);
     }
 
     @Test
-    public void testQueryByDefinitionId() {
-
-        User user = new User();
-        user.setUserName("un");
-        userMapper.insert(user);
-        User un = userMapper.queryByUserNameAccurately("un");
-
-        Project project = new Project();
-        project.setCode(1L);
-        project.setCreateTime(new Date());
-        project.setUpdateTime(new Date());
-        projectMapper.insert(project);
-
-        TaskDefinition taskDefinition = insertOne(un.getId());
-        TaskDefinition td = 
taskDefinitionMapper.queryByDefinitionName(taskDefinition.getProjectCode()
-                , taskDefinition.getName());
-        TaskDefinition result = 
taskDefinitionMapper.queryByDefinitionId(td.getId());
-        Assert.assertNotNull(result);
-
-    }
-
-    @Test
     public void testQueryByDefinitionCode() {
         TaskDefinition taskDefinition = insertOne();
-        TaskDefinition result = 
taskDefinitionMapper.queryByDefinitionCode(taskDefinition.getCode());
+        TaskDefinition result = 
taskDefinitionMapper.queryByCode(taskDefinition.getCode());
         Assert.assertNotNull(result);
 
     }
@@ -124,14 +102,6 @@ public class TaskDefinitionMapperTest {
     }
 
     @Test
-    public void testQueryDefinitionListByIdList() {
-        TaskDefinition taskDefinition = insertOne();
-        List<TaskDefinition> taskDefinitions = 
taskDefinitionMapper.queryDefinitionListByIdList(new 
Integer[]{taskDefinition.getId()});
-        Assert.assertNotEquals(taskDefinitions.size(), 0);
-
-    }
-
-    @Test
     public void testCountDefinitionGroupByUser() {
         User user = new User();
         user.setUserName("un");

Reply via email to