|
|
@ -173,20 +173,87 @@ public class StatisticsServiceImpl implements StatisticsService { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<SumCoin> getCoinTime( SumCoin sumcoin) { |
|
|
|
|
|
|
|
System.out.println(sumcoin+"-------sumcoin----"); |
|
|
|
Date searchStartTime=sumcoin.getSearchStartTime(); |
|
|
|
Date searchEndTime=sumcoin.getSearchEndTime(); |
|
|
|
String updateType=sumcoin.getUpdateType(); |
|
|
|
|
|
|
|
// //提供开始时间与结束时间 |
|
|
|
//// if(searchStartTime!=null && searchEndTime!=null){ |
|
|
|
// //计算两个时间点之间的差值 |
|
|
|
// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); |
|
|
|
|
|
|
|
// 提供开始时间与结束时间 |
|
|
|
// public List<SumCoin> getCoinTime( SumCoin sumcoin) { |
|
|
|
// |
|
|
|
// System.out.println(sumcoin+"-------sumcoin----"); |
|
|
|
// Date searchStartTime=sumcoin.getSearchStartTime(); |
|
|
|
// Date searchEndTime=sumcoin.getSearchEndTime(); |
|
|
|
// String updateType=sumcoin.getUpdateType(); |
|
|
|
// |
|
|
|
//// //提供开始时间与结束时间 |
|
|
|
////// if(searchStartTime!=null && searchEndTime!=null){ |
|
|
|
//// //计算两个时间点之间的差值 |
|
|
|
//// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); |
|
|
|
// |
|
|
|
//// 提供开始时间与结束时间 |
|
|
|
// |
|
|
|
// |
|
|
|
// // 使用 Calendar 清除时间和时区的影响 |
|
|
|
// Calendar startCal = Calendar.getInstance(); |
|
|
|
// startCal.setTime(searchStartTime); |
|
|
|
// startCal.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
// startCal.set(Calendar.MINUTE, 0); |
|
|
|
// startCal.set(Calendar.SECOND, 0); |
|
|
|
// startCal.set(Calendar.MILLISECOND, 0); |
|
|
|
// |
|
|
|
// Calendar endCal = Calendar.getInstance(); |
|
|
|
// endCal.setTime(searchEndTime); |
|
|
|
// endCal.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
// endCal.set(Calendar.MINUTE, 0); |
|
|
|
// endCal.set(Calendar.SECOND, 0); |
|
|
|
// endCal.set(Calendar.MILLISECOND, 0); |
|
|
|
// |
|
|
|
// // 计算两个时间点之间的天数差异 |
|
|
|
// long diffInMillies = endCal.getTimeInMillis() - startCal.getTimeInMillis(); |
|
|
|
// long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); |
|
|
|
// |
|
|
|
// |
|
|
|
// //年 |
|
|
|
// if(daysBetween>100 || searchStartTime==null & searchEndTime==null){ |
|
|
|
// if("消费".equals(updateType)){ |
|
|
|
// return statisticsMapper.getMediuConsumeCoin(); |
|
|
|
// }else if("充值".equals(updateType)){ |
|
|
|
// return statisticsMapper.getMediuPayCoin(); |
|
|
|
// } |
|
|
|
// |
|
|
|
// }else { |
|
|
|
// if ("消费".equals(updateType)) { |
|
|
|
// return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime,searchEndTime); |
|
|
|
// } else if ("充值".equals(updateType)) { |
|
|
|
// return statisticsMapper.getMediuPayCoinyue(searchStartTime,searchEndTime); |
|
|
|
// } |
|
|
|
// } |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// return null; |
|
|
|
// |
|
|
|
// } |
|
|
|
|
|
|
|
public List<SumCoin> getCoinTime(SumCoin sumcoin) { |
|
|
|
System.out.println(sumcoin + "-------sumcoin----"); |
|
|
|
|
|
|
|
Date searchStartTime = sumcoin.getSearchStartTime(); |
|
|
|
Date searchEndTime = sumcoin.getSearchEndTime(); |
|
|
|
String updateType = sumcoin.getUpdateType(); |
|
|
|
|
|
|
|
// 如果开始时间和结束时间都为空,则直接返回默认统计结果 |
|
|
|
if (searchStartTime == null && searchEndTime == null) { |
|
|
|
if ("消费".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuConsumeCoin(); |
|
|
|
} else if ("充值".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuPayCoin(); |
|
|
|
} |
|
|
|
return null; // 或者抛出异常,取决于业务需求 |
|
|
|
} |
|
|
|
|
|
|
|
// 如果只有其中一个时间为null,则可能需要处理或抛出异常,这里假设不允许这种情况 |
|
|
|
if (searchStartTime == null || searchEndTime == null) { |
|
|
|
throw new IllegalArgumentException("开始时间和结束时间必须同时为空或不为空"); |
|
|
|
} |
|
|
|
|
|
|
|
// 使用 Calendar 清除时间和时区的影响 |
|
|
|
Calendar startCal = Calendar.getInstance(); |
|
|
@ -207,36 +274,22 @@ public class StatisticsServiceImpl implements StatisticsService { |
|
|
|
long diffInMillies = endCal.getTimeInMillis() - startCal.getTimeInMillis(); |
|
|
|
long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); |
|
|
|
|
|
|
|
|
|
|
|
// // 计算两个时间点之间的天数差异 |
|
|
|
// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); |
|
|
|
// //年 |
|
|
|
if(daysBetween>100){ |
|
|
|
if("消费".equals(updateType)){ |
|
|
|
return statisticsMapper.getMediuConsumeCoin(); |
|
|
|
}else if("充值".equals(updateType)){ |
|
|
|
return statisticsMapper.getMediuPayCoin(); |
|
|
|
} |
|
|
|
//周 |
|
|
|
// }else if(daysBetween<=7 && daysBetween>=2){ |
|
|
|
// if("消费".equals(updateType)){ |
|
|
|
// return statisticsMapper.getMediuConsumeCoinweek(); |
|
|
|
// }else if("充值".equals(updateType)){ |
|
|
|
// return statisticsMapper.getMediuPayCoinweek(); |
|
|
|
// } |
|
|
|
// //本天 |
|
|
|
}else { |
|
|
|
if ("消费".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime,searchEndTime); |
|
|
|
} else if ("充值".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuPayCoinyue(searchStartTime,searchEndTime); |
|
|
|
} |
|
|
|
// 根据条件选择查询方法 |
|
|
|
if (daysBetween > 100) { |
|
|
|
if ("消费".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuConsumeCoin(); |
|
|
|
} else if ("充值".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuPayCoin(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if ("消费".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime); |
|
|
|
} else if ("充值".equals(updateType)) { |
|
|
|
return statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
// 如果没有匹配的updateType,返回null或抛出异常,取决于业务需求 |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |