From 80997d8cbea234a540f656cfbf0001f2ba499036 Mon Sep 17 00:00:00 2001 From: nili Date: Thu, 11 Apr 2024 16:14:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E7=82=B9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/game/service/AdminService.java | 17 +++++++--- .../game/service/AggregationService.java | 32 +++++++++++++++++++ .../group/game/service/bo/OverviewBo.java | 2 ++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 game-service/src/main/java/awesome/group/game/service/AggregationService.java diff --git a/game-service/src/main/java/awesome/group/game/service/AdminService.java b/game-service/src/main/java/awesome/group/game/service/AdminService.java index 96f7302..de7e090 100644 --- a/game-service/src/main/java/awesome/group/game/service/AdminService.java +++ b/game-service/src/main/java/awesome/group/game/service/AdminService.java @@ -19,8 +19,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; +import com.google.common.base.Joiner; import org.apache.commons.lang.RandomStringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -29,7 +28,6 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import com.google.common.base.Joiner; import java.sql.Timestamp; import java.text.ParseException; @@ -53,6 +51,9 @@ public class AdminService { @Autowired private MatrixAdvAggregationMapper aggregationMapper; + @Autowired + private AggregationService aggregationService; + public static final int SUPER_ADMIN = 1;//超级管理员 public static final int NORMAL_ADMIN = 2;//普通管理员 public static final int OTHER = 3;//普通账号 @@ -215,7 +216,7 @@ public class AdminService { income += ecpm; advRecordMapper.insert(record); - try{ + try { Thread.sleep(ThreadLocalRandom.current().nextInt(10_000, 20_000)); } catch (Exception e) { L.trace("mockData", "error:" + e.getMessage(), e); @@ -252,7 +253,13 @@ public class AdminService { LambdaQueryWrapper appQuery = new QueryWrapper().select("sum(income) as income").lambda(); appQuery.in(MatrixApp::getId, appIds); - bo.totalIncome = appMapper.selectOne(appQuery).getIncome() + bo.todayIncome; + bo.totalIncome = appMapper.selectOne(appQuery).getIncome(); + + int today = DateUtil.currentDate(); + int yesterday = DateUtil.datePlus(today, -1); + int rangeStart = DateUtil.datePlus(today, -7); + bo.yesterdayIncome = aggregationService.getIncome(appIds, yesterday, yesterday); +// bo.recent7DaysIncome = aggregationService.getIncome(appIds, rangeStart, yesterday); return bo; } diff --git a/game-service/src/main/java/awesome/group/game/service/AggregationService.java b/game-service/src/main/java/awesome/group/game/service/AggregationService.java new file mode 100644 index 0000000..4ba8397 --- /dev/null +++ b/game-service/src/main/java/awesome/group/game/service/AggregationService.java @@ -0,0 +1,32 @@ +package awesome.group.game.service; + +import awesome.group.game.dao.bean.MatrixAdvAggregation; +import awesome.group.game.dao.mapper.MatrixAdvAggregationMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +@Service +public class AggregationService { + @Resource + private MatrixAdvAggregationMapper aggregationMapper; + + public long getIncome(List appIds, int startDate, int endDate) { + if (CollectionUtils.isEmpty(appIds)) { + return 0L; + } + LambdaQueryWrapper query = new QueryWrapper() + .select("sum(income) as income").lambda(); + query.in(MatrixAdvAggregation::getAppId, appIds); + query.between(MatrixAdvAggregation::getDate, startDate, endDate); + MatrixAdvAggregation data = aggregationMapper.selectOne(query); + if (data == null) { + return 0L; + } + return data.getIncome(); + } +} diff --git a/game-service/src/main/java/awesome/group/game/service/bo/OverviewBo.java b/game-service/src/main/java/awesome/group/game/service/bo/OverviewBo.java index 0370cc9..dd3c719 100644 --- a/game-service/src/main/java/awesome/group/game/service/bo/OverviewBo.java +++ b/game-service/src/main/java/awesome/group/game/service/bo/OverviewBo.java @@ -3,4 +3,6 @@ package awesome.group.game.service.bo; public class OverviewBo { public long todayIncome; public long totalIncome; + + public long yesterdayIncome; }