yujian
2020-05-06 eb1adc13eda955e8ef0fc9fe41fb246fa89b722d
fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.service.impl.count;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -344,82 +343,20 @@
      countOrderTrackRateDao.save(record);
   }
   
   @Override
   public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime, String endTime,
         int sourceType) throws Exception {
      List<ChartTDO> result_list = null;
      // 用户订单
      List<ChartTDO> listTotal = commonOrderCountMapper.countOrderNumber(dateType, year, startTime, endTime,
            sourceType);
      if (listTotal == null || listTotal.size() == 0) {
         return result_list;
      }
      // 淘宝联盟
      List<ChartTDO> type_list = null;
      switch (sourceType) {
      case Constant.SOURCE_TYPE_TAOBAO:
         type_list = taoBaoOrderMapper.countOrderNumber(dateType, year, startTime, endTime);
         break;
      case Constant.SOURCE_TYPE_JD:
         type_list = jdOrderItemMapper.countOrderNumber(dateType, year, startTime, endTime);
         break;
      case Constant.SOURCE_TYPE_PDD:
         type_list = pddOrderMapper.countOrderNumber(dateType, year, startTime, endTime);
         break;
      }
      if (type_list == null || type_list.size() == 0) {
         return null;
      }
      switch (dateType) {
      case 1: // 按天处理
         result_list = dayFactory(startTime, endTime, type_list);
         break;
      case 2: // 按月处理
         result_list = monthFactory(type_list);
         break;
      case 3:
         result_list = yearFactory(type_list);
         break;
      default:
         break;
      }
      DecimalFormat df = new DecimalFormat("#.00");
      for (int i = 0; i < result_list.size(); i++) {
         double proportion = 0;
         ChartTDO chartTDO = result_list.get(i);
         String showDate = chartTDO.getShowDate();
         for (int j = 0; j < listTotal.size(); j++) {
            ChartTDO innerChartTDO = listTotal.get(j);
            String innerDate = innerChartTDO.getShowDate();
            if (innerDate != null && innerDate.toString().equals(showDate.toString())) {
               String innerValue = innerChartTDO.getShowValue();
               long innerData = Long.parseLong(innerValue);
               String showValue = chartTDO.getShowValue();
               long showData = Long.parseLong(showValue);
               if (showData > 0) {
                  proportion = innerData / (double) showData;
               }
               break; // 结束内部循环
            }
         }
         chartTDO.setShowValue(Double.parseDouble(df.format(proportion * 100)) + "");
      }
      return result_list;
   }
      
   @Override
   public Long countOrderBySourceTypeAndDay(int source, String preDay) {
      return commonOrderCountMapper.countOrderBySourceTypeAndDay(preDay, source);
   }
   
   @Override
   public long countOrderBySourceAndNearDay(Long uid, int source, int day) {
      Long count = commonOrderCountMapper.countOrderBySourceAndNearDay(uid, source, day);
      if (count  == null) {
         count = 0L;
      }
      return count;
   }
}