package org.taobao88.taobao.enterprise.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.taobao88.taobao.enterprise.dao.ImagesDAO;
import org.taobao88.taobao.enterprise.dao.RecomendationDAO;
import org.taobao88.taobao.enterprise.entity.Recomendation;
import org.taobao88.taobao.enterprise.entity.RecomendationType;
import org.taobao88.taobao.enterprise.service.RecomendationService;
@Repository("recomendationService")
public class RecomendationServiceImpl implements RecomendationService {
@Autowired private RecomendationDAO recomendationDAO;
@Autowired private ImagesDAO imagesDAO;
@Override
public void addRecomendation(Recomendation recomendation) {
recomendationDAO.addRecomendation(recomendation);
}
@Override
public void deleteRecomendation(Recomendation recomendation) {
recomendationDAO.deleteRecomendation(recomendation);
}
@Override
public void updateRecomendation(Recomendation recomendation) {
recomendationDAO.updateRecomendation(recomendation);
}
@Override
public Recomendation getRecomendationById(int id) {
Recomendation rec = recomendationDAO.getRecomendationById(id);
// rec.setImages(imagesDAO.getImagesByRecomendation(rec));
return rec;
}
@Override
public Recomendation getRecomendationByDescription(String desc) {
return recomendationDAO.getRecomendationByDescription(desc);
}
@Override
public List<List<Recomendation>> getSortedRecomendations(RecomendationType type) {
List<Recomendation> all = recomendationDAO.getRandomRecomendations(type);
List<Recomendation> sorted = new ArrayList<Recomendation>();
List<List<Recomendation>> result = new ArrayList<List<Recomendation>>();
for (int i = 0; i < all.size(); i++) {
sorted.add(all.get(i));
if (sorted.size() % 3 == 0) {
result.add(sorted);
sorted = new ArrayList<Recomendation>();
}
}
result.add(sorted);
return result;
}
@Override
public List<Recomendation> getAllRecomendations(RecomendationType type) {
return recomendationDAO.getRecomendations(type);
}
@Override
public List<Recomendation> getFirstFourRecomendations(RecomendationType type) {
return recomendationDAO.getFirstFourRecomendations(type);
}
@Override
public List<Recomendation> getRecomendationsPartial(int page, RecomendationType type) {
int start = 0;
int end = 54;
if (page == 2) {
start = end;
} else if (page > 2) {
start = end * page;
}
return recomendationDAO.getRecomendationsPartials(start, end, type);
}
@Override
public int getRecomendationsCount(RecomendationType type) {
return recomendationDAO.getRecomendationsCount(type);
}
@Override
public List<Recomendation> getRandomRecomendations(RecomendationType type) {
return recomendationDAO.getRandomRecomendations(type);
}
}