package com.yeshi.fanli.service.impl.statistic;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.statistic.OrderClassStatisticDao;
|
import com.yeshi.fanli.entity.statistic.OrderClassStatistic;
|
import com.yeshi.fanli.entity.taobao.PidUser;
|
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
|
import com.yeshi.fanli.exception.TaoBaoOrderException;
|
import com.yeshi.fanli.service.inter.statistic.OrderClassStatisticService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
|
|
@Service
|
public class OrderClassStatisticServiceImpl implements OrderClassStatisticService {
|
|
@Resource
|
private OrderClassStatisticDao orderClassStatisticDao;
|
|
@Resource
|
private TaoBaoUnionConfigService taoBaoUnionConfigService;
|
|
@Override
|
public Map<String, Integer> statisticOrderClass(long startTime, long endTime) {
|
List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
List<TaoBaoOrder> list = new ArrayList<>();
|
try {
|
list = TaoBaoOrderUtil.getOrderList(startTime, endTime, config.get(0));
|
} catch (TaoBaoOrderException e) {
|
e.printStackTrace();
|
}
|
Map<String, Integer> map = new HashMap<>();
|
for (TaoBaoOrder order : list) {
|
if (map.get(order.getClassName()) == null)
|
map.put(order.getClassName(), 1);
|
else
|
map.put(order.getClassName(), map.get(order.getClassName()) + 1);
|
}
|
return map;
|
}
|
|
@Override
|
public List<OrderClassStatistic> statisticOrderClass(String day) {
|
List<OrderClassStatistic> list = new ArrayList<>();
|
long startTime = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd");
|
Map<String, Integer> map = statisticOrderClass(startTime, startTime + 1000 * 60 * 60 * 24L);
|
Iterator<String> its = map.keySet().iterator();
|
while (its.hasNext()) {
|
String next = its.next();
|
OrderClassStatistic ocs = new OrderClassStatistic();
|
ocs.setClassName(next);
|
ocs.setCount(map.get(next));
|
ocs.setDay(day);
|
List<OrderClassStatistic> olist = orderClassStatisticDao.list(
|
"from OrderClassStatistic s where s.className=? and s.day=?", new Serializable[] { next, day });
|
if (olist == null || olist.size() <= 0)
|
orderClassStatisticDao.create(ocs);
|
list.add(ocs);
|
}
|
return list;
|
}
|
|
}
|