package com.zdcf.search;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Service;
import com.zdcf.base.Constants;
import com.zdcf.model.Movie;
import com.zdcf.model.Theme;
import com.zdcf.model.Zhihu;
import com.zdcf.search.entity.ChnlMovieSearch;
import com.zdcf.search.entity.ChnlThemeSearch;
import com.zdcf.search.entity.ChnlZhihuSearch;
import com.zdcf.search.repository.ChnlMovieRepository;
import com.zdcf.search.repository.ChnlThemeRepository;
import com.zdcf.search.repository.ChnlZhihuRepository;
@Service("indexService")
public class IndexService implements IIndexService {
@Autowired
protected ChnlZhihuRepository chnlZhihuRepository;
@Autowired
protected ChnlThemeRepository chnlThemeRepository;
@Autowired
protected ChnlMovieRepository chnlMovieRepository;
public void process(Object object, Constants.Cache.Type type){
if(object instanceof Zhihu){
Zhihu zhihu = (Zhihu)object;
ChnlZhihuSearch zhihuSearch = new ChnlZhihuSearch();
BeanUtils.copyProperties(zhihu, zhihuSearch);
if(Constants.Cache.Type.save == type){
chnlZhihuRepository.save(zhihuSearch);
} else if(Constants.Cache.Type.del == type){
chnlZhihuRepository.delete(zhihuSearch.getId());
} else if(Constants.Cache.Type.update == type){
chnlZhihuRepository.index(zhihuSearch);
}
} else if(object instanceof Theme){
Theme theme = (Theme)object;
ChnlThemeSearch chnlThemeSearch = new ChnlThemeSearch();
BeanUtils.copyProperties(theme, chnlThemeSearch);
if(Constants.Cache.Type.save == type){
chnlThemeRepository.save(chnlThemeSearch);
} else if(Constants.Cache.Type.del == type){
chnlThemeRepository.delete(chnlThemeSearch.getId());
} else if(Constants.Cache.Type.update == type){
chnlThemeRepository.index(chnlThemeSearch);
}
}else if(object instanceof Movie){
Movie movie = (Movie)object;
ChnlMovieSearch chnlMovieSearch = new ChnlMovieSearch();
BeanUtils.copyProperties(movie, chnlMovieSearch);
if(Constants.Cache.Type.save == type){
chnlMovieRepository.save(chnlMovieSearch);
} else if(Constants.Cache.Type.del == type){
chnlMovieRepository.delete(chnlMovieSearch.getId());
} else if(Constants.Cache.Type.update == type){
chnlMovieRepository.index(chnlMovieSearch);
}
}
}
}