Pārlūkot izejas kodu

首页接口优化

小杜 3 mēneši atpakaļ
vecāks
revīzija
09a3a675a3

+ 0 - 14
yt-agent/agent-service/src/main/java/com/ytpm/controller/AgentIndexController.java

@@ -345,24 +345,13 @@ public class AgentIndexController {
         // 1. 查询今日数据
         param.setStartTime(DateUtil.getTodayStart());
         param.setEndTime(DateUtil.getTodayEnd());
-        long startTodayUsers = System.currentTimeMillis() ;
         List<YtDyzUser> todayUsers = appFeign.queryUserByTime(param);
-        long endTodayUsers = System.currentTimeMillis();
-        log.info("查询用户的时间{}",endTodayUsers-startTodayUsers);
         //每个小时的用户数
         int[] todayUser = appFeign.queryUserByTodayTime();
-        long endTodayUser = System.currentTimeMillis() ;
-        log.info("每个小时的用户数{}",endTodayUser-endTodayUsers);
         //今日登入
         List<String> todayLogin = appFeign.queryLoginRecords(param);
-        long timeMillis = System.currentTimeMillis() ;
-        log.info("今日登入{}",timeMillis-endTodayUser);
         Result<Map<String, Integer>> mapResult = riskFeign.queryBanned(param);
-        long timeMillis1 = System.currentTimeMillis() ;
-        log.info("今日封禁数据{}",timeMillis1-timeMillis);
         Map<String, int[]> data = riskFeign.queryBannedByHourToday().getData();
-        long timeMillis2 = System.currentTimeMillis() ;
-        log.info("今日封禁小时数据{}",timeMillis2-timeMillis1);
         Map<String, Integer> todayMap = mapResult.getData();
         //用户新增数
         result.put("today", todayUsers.size());
@@ -390,10 +379,7 @@ public class AgentIndexController {
         param.setEndTime(DateUtil.getMonthEnd());
         List<String> monthLogin = appFeign.queryLoginRecords(param);
         List<YtDyzUser> monthUsers = appFeign.queryUserByTime(param);
-        long currentTimeMillis = System.currentTimeMillis();
         Map<String, Integer> monthMap = riskFeign.queryBanned(param).getData();
-        long currentTimeMillis1 = System.currentTimeMillis();
-        log.info("当月数据{}",currentTimeMillis1-currentTimeMillis);
         result.put("month", monthUsers.size());
         result.put("monthLogin", monthLogin.size());
         result.put("monthRisk", monthMap.get("risk"));

+ 5 - 11
yt-app/app-service/src/main/java/com/ytpm/controller/UserController.java

@@ -9,6 +9,7 @@ import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.app.param.AppUserParam;
 import com.ytpm.app.param.AppUserQueryParam;
 import com.ytpm.app.param.YtAppUserListParam;
+import com.ytpm.app.view.HourCountView;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.dao.AdRecordMapper;
 import com.ytpm.dao.AppUserMapper;
@@ -228,20 +229,13 @@ public class UserController {
 
         Date startTime = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
         Date endTime = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
-
         // 查询用户注册数据
-        List<YtDyzUser> ytDyzUsers = appUserMapper.queryAllByTime(startTime, endTime);
+        List<HourCountView> hourCountViews = appUserMapper.countUsersByHour(startTime, endTime);
         // 初始化每小时用户数量数组
         int[] hourlyCounts = new int[24];
-        for (YtDyzUser user : ytDyzUsers) {
-            Date createTime = user.getRegistryTime();
-            if (createTime != null) {
-                Calendar calendar = Calendar.getInstance();
-                calendar.setTime(createTime);
-                int hour = calendar.get(Calendar.HOUR_OF_DAY);
-                if (hour >= 0 && hour < 24) {
-                    hourlyCounts[hour]++;
-                }
+        for (HourCountView hc : hourCountViews) {
+            if (hc.getHour() >= 0 && hc.getHour() < 24) {
+                hourlyCounts[hc.getHour()] = hc.getCount();
             }
         }
         return hourlyCounts;

+ 4 - 0
yt-app/app-service/src/main/java/com/ytpm/dao/AppUserMapper.java

@@ -3,6 +3,7 @@ package com.ytpm.dao;
 import com.ytpm.app.model.YtDyzPowerRecord;
 import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.app.param.YtAppUserListParam;
+import com.ytpm.app.view.HourCountView;
 import com.ytpm.app.view.WxDefaultConfig;
 import com.ytpm.app.view.YtAppUserListView;
 import org.apache.ibatis.annotations.Param;
@@ -63,6 +64,9 @@ public interface AppUserMapper {
             @Param("endTime") Date endTime
     );
 
+    List<HourCountView> countUsersByHour(@Param("startTime") Date startTime,
+                                         @Param("endTime") Date endTime);
+
     /**
      * 查询用户信息
      */

+ 7 - 0
yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml

@@ -240,6 +240,13 @@
         </where>
         ORDER BY registry_time DESC
     </select>
+    <select id="countUsersByHour" resultType="com.ytpm.app.view.HourCountView">
+        SELECT HOUR(registry_time) AS hour, COUNT(*) AS count
+        FROM yt_dyz_user
+        WHERE registry_time BETWEEN #{startTime} AND #{endTime}
+        GROUP BY HOUR(registry_time)
+    </select>
+
     <select id="getDefaultConfig" resultType="com.ytpm.app.view.WxDefaultConfig">
         select
             config_id, config_name, open_id appId, secret, app_id platformAppId, app_key platformAppSecret, app_type

+ 9 - 0
yt-common/src/main/java/com/ytpm/app/view/HourCountView.java

@@ -0,0 +1,9 @@
+package com.ytpm.app.view;
+
+import lombok.Data;
+
+@Data
+public class HourCountView {
+    private int hour;
+    private int count;
+}

+ 1 - 24
yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskManageController.java

@@ -175,22 +175,6 @@ public class RiskManageController {
         List<YtPlatformBanned> bannedList = riskService.queryBannedRecord(startTime, endTime);
 
         if (CollUtil.isNotEmpty(bannedList)) {
-            // 提取 userId
-            String userIds = bannedList.stream()
-                    .map(YtPlatformBanned::getUserId)
-                    .collect(Collectors.joining(","));
-
-
-            AppUserParam appUserParam = new AppUserParam();
-            appUserParam.setUserIds(userIds);
-            // 查询用户状态
-            ResultTable<YtDyzUser> userList = appFeign.getUserAll(appUserParam);
-            List<YtDyzUser> users = userList.getData();
-
-            // 构建 userId -> user 映射,便于匹配
-            Map<String, YtDyzUser> userMap = users.stream()
-                    .collect(Collectors.toMap(YtDyzUser::getUserId, Function.identity(), (a, b) -> a));
-
             for (YtPlatformBanned banned : bannedList) {
                 Date bannedTime = banned.getBannedTime(); // 替换为你实际的封禁时间字段
                 if (bannedTime != null) {
@@ -199,15 +183,8 @@ public class RiskManageController {
                     int hour = calendar.get(Calendar.HOUR_OF_DAY);
 
                     if (hour >= 0 && hour < 24) {
-                        YtDyzUser user = userMap.get(banned.getUserId());
-                        if (user != null) {
-                            if (user.getUserStatus() == UserStatusEnum.LOCK.getCode()) {
-                                lockCounts[hour]++;
-                            } else if (user.getUserStatus() == UserStatusEnum.RISK.getCode()) {
-                                riskCounts[hour]++;
-                            }
+                          lockCounts[hour]++;
                         }
-                    }
                 }
             }
         }

+ 1 - 1
yt-risk/risk-manage/src/main/resources/mapper/RiskManageMapper.xml

@@ -158,7 +158,7 @@
 
     <select id="queryBannedRecordGroupByUserId" resultType="com.ytpm.agent.model.YtPlatformBanned">
         select
-        banned_id, user_id, channel_id,agent_id, banned_time, banned_reason, banned_type, banned_limit, operator, operator_name
+        user_id
         from yt_platform_banned
         <where>
             <if test="startTime != null">