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