Commit ae042fc5 authored by ligang's avatar ligang
Browse files

add delete eschedule by id

parent 7a20fa38
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -230,4 +230,29 @@ public class SchedulerController extends BaseController{
          return error(Status.QUERY_SCHEDULE_LIST_ERROR.getCode(), Status.QUERY_SCHEDULE_LIST_ERROR.getMsg());
      }
  }

    /**
     * delete schedule by id
     *
     * @param loginUser
     * @param projectName
     * @param scheduleId
     * @return
     */
    @GetMapping(value="/delete")
    @ResponseStatus(HttpStatus.OK)
    public Result deleteScheduleById(@RequestAttribute(value = SESSION_USER) User loginUser,
                                              @PathVariable String projectName,
                                              @RequestParam("scheduleId") Integer scheduleId
    ){
        try{
            logger.info("delete schedule by id, login user:{}, project name:{}, schedule id:{}",
                    loginUser.getUserName(), projectName, scheduleId);
            Map<String, Object> result = schedulerService.deleteScheduleById(loginUser, projectName, scheduleId);
            return returnDataList(result);
        }catch (Exception e){
            logger.error(DELETE_SCHEDULE_CRON_BY_ID_ERROR.getMsg(),e);
            return error(Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR.getCode(), Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR.getMsg());
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -203,6 +203,7 @@ public enum Status {
    PROCESS_DEFINE_STATE_ONLINE(50021, "process definition {0} is already on line"),
    DELETE_PROCESS_DEFINE_BY_ID_ERROR(50022,"delete process definition by id error"),
    SCHEDULE_CRON_STATE_ONLINE(50023,"the status of schedule {0} is already on line"),
    DELETE_SCHEDULE_CRON_BY_ID_ERROR(50024,"delete schedule by id error"),

    HDFS_NOT_STARTUP(60001,"hdfs not startup"),

+42 −0
Original line number Diff line number Diff line
@@ -488,4 +488,46 @@ public class SchedulerService extends BaseService {
        }
        return null;
    }

    /**
     * delete schedule by id
     *
     * @param loginUser
     * @param projectName
     * @param scheduleId
     * @return
     */
    public Map<String, Object> deleteScheduleById(User loginUser, String projectName, Integer scheduleId) {

        Map<String, Object> result = new HashMap<>(5);
        Project project = projectMapper.queryByName(projectName);

        Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
        Status resultEnum = (Status) checkResult.get(Constants.STATUS);
        if (resultEnum != Status.SUCCESS) {
            return checkResult;
        }

        Schedule schedule = scheduleMapper.queryById(scheduleId);

        if (schedule == null) {
            putMsg(result, Status.SCHEDULE_CRON_NOT_EXISTS, scheduleId);
            return result;
        }
        // check schedule is already online
        if(schedule.getReleaseState() == ReleaseState.ONLINE){
            putMsg(result, Status.SCHEDULE_CRON_STATE_ONLINE,schedule.getId());
            return result;
        }


        int delete = scheduleMapper.delete(scheduleId);

        if (delete > 0) {
            putMsg(result, Status.SUCCESS);
        } else {
            putMsg(result, Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR);
        }
        return result;
    }
}
 No newline at end of file