Browse Source

12.17 工作台中间部分优化

detached
lv123 5 months ago
parent
commit
367ba4a94d
  1. 2
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  2. 99
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

2
src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -615,7 +615,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type sddfergrfdfbdgrhyrrhtgetre dfdtgEGTwqcdefwerbtgrytyrh = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) +",

99
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -173,20 +173,87 @@ public class StatisticsServiceImpl implements StatisticsService {
}
public List<SumCoin> getCoinTime( SumCoin sumcoin) {
// 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){
// //计算两个时间点之间的差值
// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime);
// 提供开始时间与结束时间
// 如果开始时间和结束时间都为空则直接返回默认统计结果
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,24 +274,13 @@ 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);
@ -233,10 +289,7 @@ public class StatisticsServiceImpl implements StatisticsService {
}
}
// 如果没有匹配的updateType返回null或抛出异常取决于业务需求
return null;
}
}
Loading…
Cancel
Save