package qa.qcri.aidr.trainer.pybossa.service.impl; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import qa.qcri.aidr.trainer.pybossa.dao.TaskQueueDao; import qa.qcri.aidr.trainer.pybossa.entity.TaskQueue; import qa.qcri.aidr.trainer.pybossa.service.TaskQueueService; import java.util.Date; import java.util.List; @Service("taskStatusLookUpService") @Transactional(readOnly = true) public class TaskQueueServiceImpl implements TaskQueueService { @Autowired private TaskQueueDao taskQueueDao; private static Logger logger = Logger.getLogger(TaskQueueServiceImpl.class); @Override @Transactional(readOnly = false) public void createTaskQueue(TaskQueue taskQueue) { taskQueueDao.createTaskQueue(taskQueue); } @Override @Transactional(readOnly = false) public void updateTaskQueue(TaskQueue taskQueue) { TaskQueue queue; System.out.println("updateTaskQueue doc : " + taskQueue.getDocumentID()); if(taskQueue.getDocumentID()!=null){ queue = taskQueueDao.findTaskQueue(taskQueue.getTaskID(),taskQueue.getClientAppID(), taskQueue.getDocumentID()).get(0); } else{ queue = taskQueueDao.findTaskQueueByTaskID(taskQueue.getClientAppID(), taskQueue.getTaskID()).get(0); } queue.setStatus(taskQueue.getStatus()); queue.setUpdated(new Date()); try{ taskQueueDao.createTaskQueue(queue); } catch (Exception ex){ System.out.println("updateTaskQueue Exception : " + taskQueue.getTaskID()); throw new RuntimeException(ex.getMessage()); } } @Override public List<TaskQueue> getTaskQueueSet(Long taskID, Long clientAppID, Long documentID) { return taskQueueDao.findTaskQueue(taskID,clientAppID, documentID ); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> getTaskQueueByDocument(Long clientAppID, Long documentID) { return taskQueueDao.findTaskQueueByDocument(clientAppID, documentID ); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> getTaskQueueByStatus(String column, Integer status) { return taskQueueDao.findTaskQueueByStatus(column,status); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> getTaskQueueByClientAppStatus(Long clientAppID, Integer status) { return taskQueueDao.findTaskQueueSetByStatus(clientAppID, status); //To change body of implemented methods use File | Settings | File Templates. } @Override public Integer getCountTaskQeueByStatus(String column, Integer status) { return taskQueueDao.findTaskQueueByStatus(column,status).size(); //To change body of implemented methods use File | Settings | File Templates. } @Override public Integer getCountTaskQeueByStatusAndClientApp(Long clientAppID, Integer status) { List<TaskQueue> taskQueueList = taskQueueDao.findTaskQueueSetByStatus(clientAppID, status); if(taskQueueList!=null) return taskQueueList.size(); //To change body of implemented methods use File | Settings | File Templates. return 0; } @Override @Transactional(readOnly = false) public void deleteAbandonedTaskQueue(Long taskQueueID) { taskQueueDao.deleteTaskQueue(taskQueueID); } @Override @Transactional(readOnly = true) public List<TaskQueue> getLastActiveTaskQueue(Long clientAppID) { return taskQueueDao.findLatestTaskQueue(clientAppID); //To change body of implemented methods use File | Settings | File Templates. } }