From 367ba4a94d3ae420255fba37f75f702bb70622ed Mon Sep 17 00:00:00 2001 From: lv123 Date: Tue, 17 Dec 2024 11:05:41 +0800 Subject: [PATCH] =?UTF-8?q?12.17=20=20=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E9=83=A8=E5=88=86=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/mapper/StatisticsMapper.java | 2 +- .../demo/serviceImpl/StatisticsServiceImpl.java | 137 ++++++++++++++------- 2 files changed, 96 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index 6810d6f..80d0b2f 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -615,7 +615,7 @@ List 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) +", diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index 900e54d..7641406 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -173,20 +173,87 @@ public class StatisticsServiceImpl implements StatisticsService { } - public List 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 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 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; } - - }