package com.yonge.cooleshow.task.dal.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.yonge.cooleshow.task.dal.model.Task;

public interface TaskDao {

	public Task get(Long taskId);

	/**
	 * 查询可用的任务列表（除暂停、执行中的任务外）
	 * @return
	 */
	public List<Task> queryAvailableTasks();

	/**
	 * 根据任务名称和任务组查询任务对象
	 * @param name
	 * @param group
	 * @return
	 */
	public Task queryTaskByNameAndGroup(@Param("name") String name, @Param("group") String group);

	/**
	 * 更新状态
	 * @param id
	 * @param oldStatus
	 * @param curStatus
	 * @return
	 */
	public int updateStatusById(@Param("id") Long id, @Param("oldStatus") int oldStatus, @Param("curStatus") int curStatus);

	/**
	 * 查询记录数
	 * @param params
	 * @return
	 */
	public int queryCount(Map<String, Object> params);

	/**
	 * 查询对象列表
	 * @param params
	 * @return
	 */
	public List<Task> queryPage(Map<String, Object> params);

	/**
	 * 锁定任务对象
	 * @param id
	 * @return
	 */
	public Task getLocked(Long id);
}