package com.bcxin.risk.train;

import com.bcxin.risk.train.domain.UserVideoProgress;
import com.bcxin.risk.train.domain.Video;
import com.bcxin.risk.train.dto.VideoDTO;
import com.google.common.collect.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service
@Transactional
public class VideoService {

	@Autowired
	@Qualifier(value="videoDao")
	private VideoDao videoDao;

	@Resource
	private UserVideoProgressDao userVideoProgressDao;

	public List<Video> findVideoList() {
		return videoDao.selectList();
	}

	public Map<Long,String> findVideoProgress(Long userId) {
		Map<Long,String> progressMap = Maps.newHashMap();
		List<VideoDTO> list = videoDao.findVideoProgress(userId);
		for (VideoDTO dto:list) {
			progressMap.put(Long.parseLong(dto.getVideoId()),dto.getCompleted());
		}
		return progressMap;
	}

	public void videoCompleted(Long userId,Long videoId){
		UserVideoProgress progress = userVideoProgressDao.findByUserIdAndVideoId(userId,videoId);
		if (progress == null) {
			progress = new UserVideoProgress();
			progress.setCompleted("1");
			progress.setUserId(userId);
			progress.setVideoId(videoId);
			userVideoProgressDao.save(progress);
		}
	}

}
