diff --git a/src/main/java/com/example/demo/mapper/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/ConsumeMapper.java index 8c4998e..062821a 100644 --- a/src/main/java/com/example/demo/mapper/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/ConsumeMapper.java @@ -53,9 +53,9 @@ public interface ConsumeMapper { // "`detail_flag`=1 AND update_type = '1'", "update_type=1", "and detail_y.jwcode =#{jwcode}", - "and product.name = #{productName}", - "and detail_y.consume_platform=#{consumePlatform}", - "and detail_y.consume_type= #{consumeType}", + "and product.name = #{productName}", + "and detail_y.consume_platform=#{consumePlatform}", + "and detail_y.consume_type= #{consumeType}", "AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}", "", "ORDER BY detail_y.create_time DESC", diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index e51da67..4de49d0 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -259,8 +259,14 @@ public interface StatisticsMapper { - @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_y where create_time=#{searchEndTime} and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')" + @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,", + "IFNULL(SUM(recharge_coin), 0) AS rechargeSumCoin,", + "IFNULL(SUM(free_coin), 0) AS freeSumCoin,", + "IFNULL(SUM(task_coin), 0) AS taskSumCoin", + "FROM detail_y", + "WHERE DATE(create_time) = #{searchEndTime}", + "AND update_type = #{updateType}", + "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')" }) List getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType); @@ -444,7 +450,7 @@ public interface StatisticsMapper { " SUM(d.task_coin) AS taskSumCoin,", " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", "FROM detail_y d", - "left JOIN user u ON u.jwcode = d.jwcode", + "left JOIN user u ON u.jwcode = d.jwcode ", "WHERE update_type = 0 ", "", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", @@ -480,7 +486,7 @@ public interface StatisticsMapper { " SUM(d.task_coin) AS taskSumCoin,", " (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", "FROM detail_y d", - "left JOIN user u ON u.jwcode = d.jwcode", + "left JOIN user u ON u.jwcode = d.jwcode and u.name=d.username", "WHERE update_type = 1 ", "", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", diff --git a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java index 9200c23..1d4827c 100644 --- a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java @@ -8,6 +8,7 @@ import com.example.demo.sevice.ActivityService; import com.github.pagehelper.PageHelper; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -25,6 +26,8 @@ public class ActivityServiceImpl implements ActivityService { @Autowired ActivityMapper activityMapper; + @Autowired + private CacheManager cacheManager; @Override @CacheEvict(value = {"activity"}, allEntries = true) @@ -44,7 +47,7 @@ public class ActivityServiceImpl implements ActivityService { return activityMapper.select(activity); } - @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ") + @CacheEvict(value = {"activity"}, allEntries = true) @Override public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) { // PageHelper.startPage(pageNum, pageSize); @@ -70,6 +73,7 @@ public class ActivityServiceImpl implements ActivityService { // 保存修改后的对象 activityMapper.edit(activity1); + }); return new PageInfo<>(list); } diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index 2ee1323..a6f2c4d 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -10,6 +10,7 @@ import com.example.demo.domain.vo.Statistics; import com.example.demo.domain.vo.Statisticss; import com.example.demo.domain.vo.SumCoin; import com.example.demo.mapper.StatisticsMapper; +import com.example.demo.mapper.UserMapper; import com.example.demo.sevice.StatisticsService; import lombok.RequiredArgsConstructor; import org.apache.ibatis.annotations.Param; @@ -31,6 +32,7 @@ import java.util.List; @CacheConfig(cacheNames = "statistics") public class StatisticsServiceImpl implements StatisticsService { private final StatisticsMapper statisticsMapper; + private final UserMapper userMapper; @Cacheable(key = "#root.method.name") @Override @@ -183,22 +185,23 @@ public class StatisticsServiceImpl implements StatisticsService { @Override public List getMee(Meium meium) { List result = new ArrayList<>(); + List regionsFromDb = userMapper.selectArea(); - // 预定义所有十二个地区 - List allRegions = Arrays.asList("新加坡", "马来西亚", "香港", "泰国", "加拿大", "越南HCM", "公司", "市场部", "研发部", "深圳运营", "韩国"); + // 创建一个动态列表 + List allRegions = new ArrayList<>(regionsFromDb); Date searchStartTime = meium.getSearchStartTime(); Date searchEndTime = meium.getSearchEndTime(); Integer updateType = meium.getUpdateType(); - // 如果开始时间和结束时间都为空,则直接返回默认统计结果,即全查 - if (searchStartTime == null && searchEndTime == null) { - if (0 == updateType) { - return statisticsMapper.getBuy(searchStartTime, searchEndTime); - } else if (1 == updateType) { - return statisticsMapper.getPay(searchStartTime, searchEndTime); + // 如果开始时间和结束时间都为空,则直接返回默认统计结果,即全查 + if (searchStartTime == null && searchEndTime == null) { + if (0 == updateType) { + return statisticsMapper.getBuy(searchStartTime, searchEndTime); + } else if (1 == updateType) { + return statisticsMapper.getPay(searchStartTime, searchEndTime); + } } - } // 获取日期范围内的所有日期 @@ -460,6 +463,7 @@ public class StatisticsServiceImpl implements StatisticsService { // 计算两个时间点之间的天数差异 long diffInMillies = endCal.getTimeInMillis() - startCal.getTimeInMillis(); long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); + System.out.println(daysBetween + "-------daysBetween----"); // 根据条件选择查询方法 List result = new ArrayList<>();