| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Long> getUidByValidOrderByDay(String preDay) { |
| | | return commonOrderCountMapper.getUidByValidOrderByDay(preDay); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list) { |
| | | return commonOrderCountMapper.countDownOrderUserByUidAndDate(preDay, list); |
| | | } |
| | | |
| | | @Override |
| | | public List<Long> getDownOrderUserByListUidAndDate(Date preDay, List<Long> list) { |
| | | return commonOrderCountMapper.getDownOrderUserByListUidAndDate(preDay, list); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<CountOrderDTO> countCommissionByDay(String preDay) { |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |