diff --git a/src/main/java/com/example/demo/controller/StatisticsController.java b/src/main/java/com/example/demo/controller/StatisticsController.java
index 2483c6a..709b4aa 100644
--- a/src/main/java/com/example/demo/controller/StatisticsController.java
+++ b/src/main/java/com/example/demo/controller/StatisticsController.java
@@ -103,7 +103,7 @@ public class StatisticsController {
@PostMapping("/getMediuConsumeCoin2")
public Result getMediuConsumeCoin2(@RequestBody SumCoin sumCoin){
System.out.println(sumCoin.getSearchStartTime()+" -------------searchStartTime----");
- return Result.success(statisticsMapper.getMediuConsumeCoin2(sumCoin));
+ return Result.success(statisticsMapper. getMediuConsumeCoin2(sumCoin));
}
@PostMapping("/getCoinTime")
public Result getCoinTime(@RequestBody SumCoin sumcoin){
diff --git a/src/main/java/com/example/demo/domain/entity/Audit.java b/src/main/java/com/example/demo/domain/entity/Audit.java
index 02ca3b4..89d166d 100644
--- a/src/main/java/com/example/demo/domain/entity/Audit.java
+++ b/src/main/java/com/example/demo/domain/entity/Audit.java
@@ -30,6 +30,21 @@ public class Audit {
private BigDecimal freeGold;
private BigDecimal paidGold;
+private BigDecimal rechargeGold;
+ private Integer activityId;
+ private String activityName;
+ private String area;
+ private Integer flag;
+ private String name;
+ private String payWay;
+ private String remark;
+ private String userName;
+ private String orderCode;
+ private String rechargeWay;
+ private String rechargeVoucher;
+ private String rechargeTime;
+ private String username;
+
}
diff --git a/src/main/java/com/example/demo/domain/entity/DetailY.java b/src/main/java/com/example/demo/domain/entity/DetailY.java
index 490c2a5..ca7344f 100644
--- a/src/main/java/com/example/demo/domain/entity/DetailY.java
+++ b/src/main/java/com/example/demo/domain/entity/DetailY.java
@@ -64,4 +64,7 @@ public class DetailY implements Serializable {
private BigDecimal free12;
private BigDecimal allGold;
+ private String ActivityName;
+ private Integer flag;
+ private String reson;
}
diff --git a/src/main/java/com/example/demo/domain/vo/RechargeVo.java b/src/main/java/com/example/demo/domain/vo/RechargeVo.java
index 3a4b2f8..8e361fa 100644
--- a/src/main/java/com/example/demo/domain/vo/RechargeVo.java
+++ b/src/main/java/com/example/demo/domain/vo/RechargeVo.java
@@ -41,5 +41,6 @@ public class RechargeVo {
private String token;
private Integer detailId;
+ private String orderCode;
}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/mapper/DetailMapper.java b/src/main/java/com/example/demo/mapper/DetailMapper.java
index a057f2a..9718021 100644
--- a/src/main/java/com/example/demo/mapper/DetailMapper.java
+++ b/src/main/java/com/example/demo/mapper/DetailMapper.java
@@ -38,7 +38,7 @@ public interface DetailMapper {
"",
"(status is null or status='1')",
"and detail.jwcode=#{jwcode}",
- "and update_type=#{updateType}",
+ "and update_type=#{updateType}",
"AND detail.create_time BETWEEN #{startDate} AND #{endDate}",
"",
""
diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java
index 3737e2f..7ed2967 100644
--- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java
+++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java
@@ -198,15 +198,18 @@ public interface StatisticsMapper {
@Select({
- "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," +
- " SUM(recharge_coin) AS rechargeSumCoin," +
- " SUM(free_coin) AS freeSumCoin," +
- " SUM(task_coin) AS taskSumCoin" +
- " FROM detail" +
- " WHERE create_time >= #{searchStartTime}" +
- " AND create_time <= #{searchEndTime}" +
- " AND update_type = '0'" +
- "GROUP BY month ORDER BY month ASC"
+ ""
})
List getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime);
@@ -229,7 +232,7 @@ public interface StatisticsMapper {
"WHERE update_type = '1'",
"",
" AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
- "",
+ "",//之前没有加动态SQL,如果前端传递空数据库会查不到
"GROUP BY month",
"ORDER BY month ASC",
""
@@ -239,44 +242,44 @@ public interface StatisticsMapper {
// 本月 ---0
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
- "from detail where recharge_coin>0 and datediff(create_time,#{searchStartTime})>=0 " +
- "and datediff(create_time,#{searchEndTime})<=0 and update_type = '0' group by DATE_FORMAT(create_time,'%m-%d')"
+ "from detail where datediff(create_time,#{searchStartTime})>=0 " +
+ "and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
})
List getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
- "from detail where recharge_coin>0 and datediff(create_time,#{searchStartTime})>=0 " +
- "and datediff(create_time,#{searchEndTime})<=0 and update_type = '1' group by DATE_FORMAT(create_time,'%m-%d')"
+ "from detail where datediff(create_time,#{searchStartTime})>=0 " +
+ "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
})
List getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
- @Select({
- "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
- " NOW() AS currentTimestamp,",
- " SUM(recharge_coin) AS rechargeSumCoin,",
- " SUM(free_coin) AS freeSumCoin,",
- " SUM(task_coin) AS taskSumCoin",
- "FROM `detail`",
- "WHERE DATE(create_time) = CURDATE() AND update_type = '0'"
+ @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
+ "from detail where create_time=#{searchEndTime} and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
})
- List getMediuPayCoinday();
+ List getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
+
+ @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
+ "from detail where create_time=#{searchStartTime} and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
+ })
+ List getMediuConsumeCoinday1(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
- " NOW() AS currentTimestamp,",
- " SUM(recharge_coin) AS rechargeSumCoin,",
- " SUM(free_coin) AS freeSumCoin,",
- " SUM(task_coin) AS taskSumCoin",
- "FROM `detail`",
- "WHERE DATE(create_time) = CURDATE() AND update_type = '1'"
+ "IFNULL(SUM(recharge_coin), 0) AS rechargeSumCoin,",
+ "IFNULL(SUM(free_coin), 0) AS freeSumCoin,",
+ "IFNULL(SUM(task_coin), 0) AS taskSumCoin",
+ "FROM detail",
+ "WHERE DATE(create_time) = #{searchEndTime}",
+ "AND update_type = #{updateType}",
+ "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
})
+ List getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
- List getMediuConsumeCoinday();
//给定时间段--10
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
index 18e2fda..5658d30 100644
--- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
+++ b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
@@ -5,14 +5,17 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Audit;
import com.example.demo.domain.entity.Detail;
+import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.mapper.AuditMapper;
+import com.example.demo.mapper.DetailYMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
@@ -23,7 +26,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Month;
+import java.util.Date;
import java.util.List;
+
@Transactional
@Service
@RequiredArgsConstructor
@@ -32,9 +37,11 @@ public class AuditServiceImpl implements AuditService {
private final UserMapper userMapper;
private final AuditMapper auditMapper;
+ private final DetailYMapper detailYMapper;
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@Override
+
public int add(Audit audit) {
return auditMapper.insert(audit);
}
@@ -47,6 +54,7 @@ public class AuditServiceImpl implements AuditService {
@CacheEvict(value = {"audit", "recharge","refund"}, allEntries = true)
@Override
+ @Transactional
public int goldedit(Audit audit) throws Exception {
int result = auditMapper.update(audit);
if (result != 1) {
@@ -89,34 +97,53 @@ public class AuditServiceImpl implements AuditService {
throw new Exception("Failed to insert recharge data");
}
-// int rechargeId = audit.getRechargeId();
-// String jwCode= audit.getJwcode();
-// String JwCode = audit.getJwcode();
-// int activityId = audit.getActivityId();
-// BigDecimal paidGold =audit.getPaidGold();
-// BigDecimal freeGold =audit.getFreeGold();
-// BigDecimal rechargeGold =audit.getRechargeGold();
-// String rechargeWay =audit.getRechargeWay();
-// String remark =audit.getRemark();
-// int adminId =audit.getAdminId();
-// Detail detail = new Detail();
-// detail.setJwcode(JwCode);
-// detail.setActivityId(activityId);
-// detail.setRechargeCoin(rechargeGold);
-// detail.setFreeCoin(freeGold);
-// detail.setRechargeWay(rechargeWay);
-// detail.setRemark(remark);
-// detail.setUpdateType("充值");
-// detail.setAdminId(adminId);
-//
-//
-// System.out.println(uuid+"/*/*/*-/-*/-/*-/-*/-/*-/*-/-*");
-// detail.setOrderCode(uuid);
-// System.out.println(detail);
-// result = detailMapper.add(detail);
-// if (result != 1) {
-// throw new Exception("Failed to insert another entity");
-// }
+ int rechargeId = audit.getRechargeId();
+ String jwCode= audit.getJwcode();
+ String JwCode = audit.getJwcode();
+ int activityId = audit.getActivityId();
+ BigDecimal paidGold =audit.getPaidGold();
+ BigDecimal freeGold =audit.getFreeGold();
+ BigDecimal rechargeGold =audit.getRechargeGold();
+ String remark =audit.getRemark();
+ String uuid = audit.getOrderCode();
+ int adminId =audit.getAdminId();
+ String activityName = audit.getActivityName();
+ String area = audit.getArea();
+ String username = audit.getUserName();
+ Integer status1=audit.getStatus();
+ String reson = audit.getReson();
+ String name = audit.getName();
+ Integer flag = audit.getFlag();
+ Date createTime = audit.getCreateTime();
+
+ DetailY detailY = new DetailY();
+ detailY.setJwcode(JwCode);
+ detailY.setActivityId(activityId);
+ detailY.setRechargeCoin(paidGold);
+ detailY.setFreeCoin(freeGold);
+ detailY.setRemark(remark);
+ detailY.setUpdateType(0);
+ detailY.setAdminId(adminId);
+ detailY.setActivityName(activityName);
+ detailY.setArea(area);
+ detailY.setName(name);
+ detailY.setUserName(username);
+ detailY.setOrderCode(uuid);
+ detailY.setStatus(status1);
+ detailY.setReson(reson);
+ detailY.setFlag(flag);
+ detailY.setCreateTime(createTime);
+
+
+
+
+ System.out.println(uuid+"/*/*/*-/-*/-/*-/-*/-/*-/*-/-*");
+ detailY.setOrderCode(uuid);
+ System.out.println(detailY);
+ result = detailYMapper.add(detailY);
+ if (result != 1) {
+ throw new Exception("Failed to insert another entity");
+ }
}
return auditMapper.update(audit);
}
diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
index 661d70f..b498356 100644
--- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
+++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
@@ -1,9 +1,8 @@
package com.example.demo.serviceImpl;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import com.example.demo.Util.CheckIfNullUtil;
import com.example.demo.domain.vo.Meium;
@@ -32,20 +31,21 @@ import java.util.List;
@CacheConfig(cacheNames = "statistics")
public class StatisticsServiceImpl implements StatisticsService {
private final StatisticsMapper statisticsMapper;
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
public Statistics getStatistics() {
Statistics statistics = new Statistics();
// 全年累计数据
- Statistics yearStats = CheckIfNullUtil.defaultIfNull( statisticsMapper.getTotalYearCoin(), new Statistics());
+ Statistics yearStats = CheckIfNullUtil.defaultIfNull(statisticsMapper.getTotalYearCoin(), new Statistics());
statistics.setRechargeSumCoin(yearStats.getRechargeSumCoin());
statistics.setFreeSumCoin(yearStats.getFreeSumCoin());
statistics.setTaskSumCoin(yearStats.getTaskSumCoin());
statistics.setTotalSumCoin(yearStats.getTotalSumCoin());
// 昨日新增数据
- Statistics yesterdayStats = CheckIfNullUtil.defaultIfNull( statisticsMapper.getYesterdayNewCoin(), new Statistics());
+ Statistics yesterdayStats = CheckIfNullUtil.defaultIfNull(statisticsMapper.getYesterdayNewCoin(), new Statistics());
statistics.setRechargeYesterdaySumCoin(yesterdayStats.getRechargeYesterdaySumCoin());
statistics.setFreeYesterdaySumCoin(yesterdayStats.getFreeYesterdaySumCoin());
statistics.setTaskYesterdaySumCoin(yesterdayStats.getTaskYesterdaySumCoin());
@@ -70,7 +70,7 @@ public class StatisticsServiceImpl implements StatisticsService {
//今日和昨日充值人数
int todayCount = statisticsMapper.getRechargeCountToday();
int yesterdayCount = statisticsMapper.getRechargeCountYesterday();
- int firstYesterdayCount =statisticsMapper.getFirstRechargeCountYesterday();
+ int firstYesterdayCount = statisticsMapper.getFirstRechargeCountYesterday();
statistics.setRechargeCountToday(todayCount);
statistics.setRechargeCountYesterday(yesterdayCount);
statistics.setFirstRechargeCountYesterday(firstYesterdayCount);
@@ -85,7 +85,8 @@ public class StatisticsServiceImpl implements StatisticsService {
return statistics;
}
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
public Statisticss stats() {
Statisticss a = new Statisticss();
@@ -97,16 +98,18 @@ public class StatisticsServiceImpl implements StatisticsService {
}
//----------------------------------------------------------------------------------------------------//
- @Cacheable(key="#root.method.name")
- public SumCoin getSumCoin(){
+ @Cacheable(key = "#root.method.name")
+ public SumCoin getSumCoin() {
return statisticsMapper.getSumCoin();
}
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
public SumCoin getYearConsumeCoin() {
return statisticsMapper.getYearConsumeCoin();
}
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
public SumCoin getDayConsumeCoin() {
return statisticsMapper.getDayConsumeCoin();
@@ -123,46 +126,47 @@ public class StatisticsServiceImpl implements StatisticsService {
}
- public SumCoin getMess(Integer jwcode){
+ public SumCoin getMess(Integer jwcode) {
return statisticsMapper.getMess(jwcode);
}
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
- public List getMediumAreaPay() {
+ public List getMediumAreaPay() {
return statisticsMapper.getMediumAreaPay();
}
- @Cacheable(key="#root.method.name")
+
+ @Cacheable(key = "#root.method.name")
@Override
- public List getMediumAreaConsume() {
+ public List getMediumAreaConsume() {
return statisticsMapper.getMediumAreaConsume();
}
-
@Override
- public List getMee( Meium meium) {
-
-
- if(0 == (meium.getUpdateType())){
- if("免费金币".equals(meium.getType())){
- return statisticsMapper.getBuyAndFree(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else if("充值金币".equals(meium.getType())){
- return statisticsMapper.getBuyAndRecharge(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else if("任务金币".equals(meium.getType())){
- return statisticsMapper.getBuyAndTask(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else{
- return statisticsMapper.getBuy(meium.getSearchStartTime(),meium.getSearchEndTime());
+ public List getMee(Meium meium) {
+
+
+ if (0 == (meium.getUpdateType())) {
+ if ("免费金币".equals(meium.getType())) {
+ return statisticsMapper.getBuyAndFree(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else if ("充值金币".equals(meium.getType())) {
+ return statisticsMapper.getBuyAndRecharge(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else if ("任务金币".equals(meium.getType())) {
+ return statisticsMapper.getBuyAndTask(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else {
+ return statisticsMapper.getBuy(meium.getSearchStartTime(), meium.getSearchEndTime());
}
- }else if(1 == (meium.getUpdateType())){
- if("免费金币".equals(meium.getType())){
- return statisticsMapper.getPayAndFree(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else if("充值金币".equals(meium.getType())){
- return statisticsMapper.getPayAndRecharge(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else if("任务金币".equals(meium.getType())){
- return statisticsMapper.getPayAndTask(meium.getSearchStartTime(),meium.getSearchEndTime());
- }else{
- return statisticsMapper.getPay(meium.getSearchStartTime(),meium.getSearchEndTime());
+ } else if (1 == (meium.getUpdateType())) {
+ if ("免费金币".equals(meium.getType())) {
+ return statisticsMapper.getPayAndFree(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else if ("充值金币".equals(meium.getType())) {
+ return statisticsMapper.getPayAndRecharge(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else if ("任务金币".equals(meium.getType())) {
+ return statisticsMapper.getPayAndTask(meium.getSearchStartTime(), meium.getSearchEndTime());
+ } else {
+ return statisticsMapper.getPay(meium.getSearchStartTime(), meium.getSearchEndTime());
}
} else
@@ -227,16 +231,109 @@ public class StatisticsServiceImpl implements StatisticsService {
// return statisticsMapper.getMediuPayCoinyue(searchStartTime,searchEndTime);
// }
// }
+// return null;
//
+// }
+
//
+// @Cacheable(key = "#root.method.name + #sumcoin.hashCode()")
+// public List getCoinTime(SumCoin sumcoin) {
+// System.out.println(sumcoin + "-------sumcoin----");
//
+// Date searchStartTime = sumcoin.getSearchStartTime();
+// Date searchEndTime = sumcoin.getSearchEndTime();
+// Integer updateType = sumcoin.getUpdateType();
//
+// // 如果开始时间和结束时间都为空,则直接返回默认统计结果
+// if (searchStartTime == null && searchEndTime == null) {
+// if (1 == updateType) {
+// return statisticsMapper.getMediuConsumeCoin(null, null);
+// } else if (0 == updateType) {
+// return statisticsMapper.getMediuPayCoin(null, null);
+// }
+// return null; // 或者抛出异常,取决于业务需求
+// }
//
+// // 如果只有其中一个时间为null,则可能需要处理或抛出异常,这里假设不允许这种情况
+// if (searchStartTime == null || searchEndTime == null) {
+// throw new IllegalArgumentException("开始时间和结束时间必须同时为空或不为空");
+// }
//
-// return null;
+// // 使用 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);
+//
+// // 根据条件选择查询方法
+// List result = null;
+//
+// // 如果天数差大于100天
+// if (daysBetween > 100) {
+// if (1 == updateType) {
+// result = statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime);
+// } else if (0 == updateType) {
+// result = statisticsMapper.getMediuPayCoin(searchStartTime, searchEndTime);
+// }
+// }
+// // 如果天数差为0,即同一天
+// else if (daysBetween == 0) {
+// if (1 == updateType) {
+// result = statisticsMapper.getMediuConsumeCoinday(searchEndTime, updateType);
+// } else if (0 == updateType) {
+// result = statisticsMapper.getMediuPayCoinday(searchEndTime, updateType);
+// }
+// }
+// // 如果天数差小于100天,但不为0(即跨月或较短时间段)
+// else {
+// if (1 == updateType) {
+// result = statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime);
+// } else if (0 == updateType) {
+// result = statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime);
+// }
+// }
+//
+// // 如果查询结果为空或没有数据,返回默认的SumCoin对象
+// if (result == null || result.isEmpty()) {
+// result = Collections.singletonList(createDefaultSumCoin());
+// }
+//
+// return result;
+// }
+//
+// // 创建默认的 SumCoin 对象
+// private SumCoin createDefaultSumCoin() {
+// SumCoin defaultSumCoin = new SumCoin();
+//
+// defaultSumCoin.setRechargeSumCoin(BigDecimal.ZERO);
+// defaultSumCoin.setFreeSumCoin(BigDecimal.ZERO);
+// defaultSumCoin.setTaskSumCoin(BigDecimal.ZERO);
+// // 获取当前日期并设置为字符串格式
+// Date currentDate = new Date();
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d"); // "yyyy-M-d" 格式
+// String formattedDate = sdf.format(currentDate); // 格式化日期为字符串
+//
+// // 设置当前日期
+// defaultSumCoin.setDay(formattedDate);
+// return defaultSumCoin;
// }
-@Cacheable(key="#root.method.name+ #sumcoin.hashCode()")
+//}
+
+
+ @Cacheable(key = "#root.method.name + #sumcoin.hashCode()")
public List getCoinTime(SumCoin sumcoin) {
System.out.println(sumcoin + "-------sumcoin----");
@@ -244,12 +341,12 @@ public class StatisticsServiceImpl implements StatisticsService {
Date searchEndTime = sumcoin.getSearchEndTime();
Integer updateType = sumcoin.getUpdateType();
- // 如果开始时间和结束时间都为空,则直接返回默认统计结果
+ // 如果开始时间和结束时间都为空,则直接返回默认统计结果,即全查
if (searchStartTime == null && searchEndTime == null) {
- if (1 == updateType) {
- return statisticsMapper.getMediuConsumeCoin(searchStartTime,searchEndTime);
+ if (1 == updateType) {
+ return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime);//前端没有选定时间,SQL会查询所有数据
} else if (0 == updateType) {
- return statisticsMapper.getMediuPayCoin(searchStartTime,searchEndTime);
+ return statisticsMapper.getMediuPayCoin(null, null);
}
return null; // 或者抛出异常,取决于业务需求
}
@@ -279,22 +376,83 @@ public class StatisticsServiceImpl implements StatisticsService {
long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
// 根据条件选择查询方法
+ List result = new ArrayList<>();
+ List queryResult = null;
+
+ // 如果天数差大于100天
if (daysBetween > 100) {
if (1 == updateType) {
- return statisticsMapper.getMediuConsumeCoin(searchStartTime,searchEndTime);
+ return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime);
+ } else if (0 == updateType) {
+ return statisticsMapper.getMediuPayCoin(searchStartTime, searchEndTime);
+ }
+ }
+ // 如果天数差为0,即同一天
+ else if (daysBetween == 0) {
+ if (1 == updateType) {
+ queryResult = statisticsMapper.getMediuConsumeCoinday(searchEndTime, updateType);
} else if (0 == updateType) {
- return statisticsMapper.getMediuPayCoin(searchStartTime,searchEndTime);
+ queryResult = statisticsMapper.getMediuPayCoinday(searchEndTime, updateType);
}
- } else {
+ }
+ // 如果天数差小于100天,但不为0(即跨月或较短时间段)
+ else {
if (1 == updateType) {
- return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime);
+ queryResult = statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime);
} else if (0 == updateType) {
- return statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime);
+ queryResult = statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime);
+ }
+ }
+
+ // 创建一个日期范围列表
+ List allDates = getDateRange(searchStartTime, searchEndTime);
+
+ // 将查询结果按日期映射,方便查找
+ Map resultMap = new HashMap<>();
+ if (queryResult != null) {
+ for (SumCoin coin : queryResult) {
+ resultMap.put(coin.getDay(), coin);
+ }
+ }
+
+ // 填充没有数据的日期,生成完整的结果
+ for (Date date : allDates) {
+ String dateString = new SimpleDateFormat("yyyy-MM-dd").format(date);
+ if (!resultMap.containsKey(dateString)) {
+ result.add(createDefaultSumCoin(dateString));
+ } else {
+ result.add(resultMap.get(dateString));
}
}
- // 如果没有匹配的updateType,返回null或抛出异常,取决于业务需求
- return null;
+ return result;
+ }
+
+ // 获取日期范围的所有日期
+ private List getDateRange(Date startDate, Date endDate) {
+ List dates = new ArrayList<>();
+ Calendar startCal = Calendar.getInstance();
+ startCal.setTime(startDate);
+ Calendar endCal = Calendar.getInstance();
+ endCal.setTime(endDate);
+
+ while (!startCal.after(endCal)) {
+ dates.add(startCal.getTime());
+ startCal.add(Calendar.DAY_OF_YEAR, 1);
+ }
+
+ return dates;
}
-}
+ // 创建默认的 SumCoin 对象,并设置日期
+ private SumCoin createDefaultSumCoin(String date) {
+ SumCoin defaultSumCoin = new SumCoin();
+
+ defaultSumCoin.setRechargeSumCoin(BigDecimal.ZERO);
+ defaultSumCoin.setFreeSumCoin(BigDecimal.ZERO);
+ defaultSumCoin.setTaskSumCoin(BigDecimal.ZERO);
+ defaultSumCoin.setDay(date);
+
+ return defaultSumCoin;
+ }
+}
\ No newline at end of file