From 85bafa86f44fbe6646019fd8ecbab79f552ccd0a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 04 二月 2026 21:44:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-service/xp-account/src/main/java/com/xiaopeng/account/service/impl/XpAppUserServiceImpl.java | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/xp-service/xp-account/src/main/java/com/xiaopeng/account/service/impl/XpAppUserServiceImpl.java b/xp-service/xp-account/src/main/java/com/xiaopeng/account/service/impl/XpAppUserServiceImpl.java
index 6e84b5e..f247684 100644
--- a/xp-service/xp-account/src/main/java/com/xiaopeng/account/service/impl/XpAppUserServiceImpl.java
+++ b/xp-service/xp-account/src/main/java/com/xiaopeng/account/service/impl/XpAppUserServiceImpl.java
@@ -3,8 +3,15 @@
import com.xiaopeng.account.mapper.XpAppUserMapper;
import com.xiaopeng.account.service.IXpAppUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.api.dto.statistics.DailyCountDTO;
+import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
+import com.xiaopeng.api.dto.statistics.UserStatisticsDTO;
import com.xiaopeng.api.model.account.XpAppUser;
import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
/**
* <p>
@@ -17,4 +24,27 @@
@Service
public class XpAppUserServiceImpl extends ServiceImpl<XpAppUserMapper, XpAppUser> implements IXpAppUserService {
+ @Override
+ public UserStatisticsDTO getUserStatistics(StatisticsQueryDTO query) {
+ UserStatisticsDTO dto = new UserStatisticsDTO();
+
+ // 1. 查询用户总数
+ dto.setTotalCount(baseMapper.selectCount(null));
+
+ // 2. 查询时间范围内新增用户数
+ if (query.getStartDate() != null && query.getEndDate() != null) {
+ dto.setNewCount(baseMapper.countNewUsers(query.getStartDate(), query.getEndDate()));
+ } else {
+ dto.setNewCount(0L);
+ }
+
+ // 3. 查询近N天每日新增用户数(默认30天)
+ Integer trendDays = query.getTrendDays() != null ? query.getTrendDays() : 30;
+ LocalDate endDate = LocalDate.now();
+ LocalDate startDate = endDate.minusDays(trendDays - 1);
+ List<DailyCountDTO> dailyCountList = baseMapper.getDailyUserCount(startDate, endDate);
+ dto.setDailyCountList(dailyCountList != null ? dailyCountList : new ArrayList<>());
+
+ return dto;
+ }
}
--
Gitblit v1.7.1