Commit c80affc9 by 吴星煌

数据统计bug

parent 44a032b6
package com.wecloud.imserver.client.api; package com.wecloud.imserver.client.api;
import com.wecloud.imserver.client.model.vo.LineChart; import com.wecloud.imserver.client.model.vo.LineChart;
import com.wecloud.imserver.client.model.vo.OverviewVo;
import com.wecloud.imserver.client.model.vo.StatisticsVo; import com.wecloud.imserver.client.model.vo.StatisticsVo;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -9,10 +10,11 @@ import java.util.List; ...@@ -9,10 +10,11 @@ import java.util.List;
public interface ImOverview { public interface ImOverview {
HashMap<String,Integer> overview(Long appId); //服务概览
OverviewVo overview(Long appId);
//数据统计中的业务统计
StatisticsVo groupStatistics(Long appId, LocalDateTime start, LocalDateTime end); StatisticsVo groupStatistics(Long appId, LocalDateTime start, LocalDateTime end);
//用户统计折线图
List<LineChart> activeUser(Long appId, LocalDateTime start, LocalDateTime end); List<LineChart> activeUser(Long appId, LocalDateTime start, LocalDateTime end);
} }
...@@ -2,10 +2,11 @@ package com.wecloud.imserver.client.model.vo; ...@@ -2,10 +2,11 @@ package com.wecloud.imserver.client.model.vo;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
public class LineChart { public class LineChart implements Serializable {
private Integer count; private Integer count;
......
package com.wecloud.imserver.client.model.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class OverviewVo implements Serializable {
private Integer activeUser;
private Integer registerUser;
private Integer activeGroup;
private Integer group;
}
package com.wecloud.im.appmanager; package com.wecloud.im.appmanager;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.entity.ImConversation; import com.wecloud.im.entity.ImConversation;
import com.wecloud.im.entity.ImMessage; import com.wecloud.im.entity.ImMessage;
...@@ -13,6 +12,7 @@ import com.wecloud.im.service.ImMessageService; ...@@ -13,6 +12,7 @@ import com.wecloud.im.service.ImMessageService;
import com.wecloud.im.service.ImStatisticsService; import com.wecloud.im.service.ImStatisticsService;
import com.wecloud.imserver.client.api.ImOverview; import com.wecloud.imserver.client.api.ImOverview;
import com.wecloud.imserver.client.model.vo.LineChart; import com.wecloud.imserver.client.model.vo.LineChart;
import com.wecloud.imserver.client.model.vo.OverviewVo;
import com.wecloud.imserver.client.model.vo.StatisticsVo; import com.wecloud.imserver.client.model.vo.StatisticsVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
...@@ -24,7 +24,6 @@ import java.time.LocalDateTime; ...@@ -24,7 +24,6 @@ import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -43,9 +42,8 @@ public class ImOverviewImpl implements ImOverview { ...@@ -43,9 +42,8 @@ public class ImOverviewImpl implements ImOverview {
private ImStatisticsService imStatisticsService; private ImStatisticsService imStatisticsService;
@Override @Override
public HashMap<String, Integer> overview(Long appId) { public OverviewVo overview(Long appId) {
HashMap<String, Integer> count = new HashMap<>(); OverviewVo overviewVo = new OverviewVo();
//今日活跃用户 //今日活跃用户
Integer activeUser = imMessageService.count(new LambdaQueryWrapper<ImMessage>() Integer activeUser = imMessageService.count(new LambdaQueryWrapper<ImMessage>()
.eq(ImMessage::getFkAppid, appId) .eq(ImMessage::getFkAppid, appId)
...@@ -53,12 +51,12 @@ public class ImOverviewImpl implements ImOverview { ...@@ -53,12 +51,12 @@ public class ImOverviewImpl implements ImOverview {
.groupBy(ImMessage::getSender) .groupBy(ImMessage::getSender)
.select(ImMessage::getSender) .select(ImMessage::getSender)
); );
count.put("activeUser",activeUser); overviewVo.setActiveUser(activeUser);
//总注册用户数 //总注册用户数
Integer registerUser = imClientService.count(new LambdaQueryWrapper<ImClient>() Integer registerUser = imClientService.count(new LambdaQueryWrapper<ImClient>()
.eq(ImClient::getFkAppid,appId) .eq(ImClient::getFkAppid,appId)
); );
count.put("registerUser",registerUser); overviewVo.setRegisterUser(registerUser);
//七天内活跃群组数 //七天内活跃群组数
List<Long> ids = imMessageService.list(new LambdaQueryWrapper<ImMessage>() List<Long> ids = imMessageService.list(new LambdaQueryWrapper<ImMessage>()
.ge(ImMessage::getCreateTime, LocalDateTime.now().minusDays(7)) .ge(ImMessage::getCreateTime, LocalDateTime.now().minusDays(7))
...@@ -73,16 +71,16 @@ public class ImOverviewImpl implements ImOverview { ...@@ -73,16 +71,16 @@ public class ImOverviewImpl implements ImOverview {
.eq(ImConversation::getChatType, ChatTypeEnum.THOUSAND_GROUP.getCode()) .eq(ImConversation::getChatType, ChatTypeEnum.THOUSAND_GROUP.getCode())
.in(ImConversation::getId, ids) .in(ImConversation::getId, ids)
); );
count.put("activeGroup",activeGroup); overviewVo.setActiveGroup(activeGroup);
//总群组数 //总群组数
Integer group = imConversationService.count(new LambdaQueryWrapper<ImConversation>() Integer group = imConversationService.count(new LambdaQueryWrapper<ImConversation>()
.eq(ImConversation::getFkAppid,appId) .eq(ImConversation::getFkAppid,appId)
.eq(ImConversation::getChatType, ChatTypeEnum.NORMAL_GROUP.getCode()) .eq(ImConversation::getChatType, ChatTypeEnum.NORMAL_GROUP.getCode())
.eq(ImConversation::getChatType, ChatTypeEnum.THOUSAND_GROUP.getCode()) .eq(ImConversation::getChatType, ChatTypeEnum.THOUSAND_GROUP.getCode())
); );
count.put("group",group); overviewVo.setGroup(group);
return count; return overviewVo;
} }
@Override @Override
...@@ -100,7 +98,7 @@ public class ImOverviewImpl implements ImOverview { ...@@ -100,7 +98,7 @@ public class ImOverviewImpl implements ImOverview {
.ge(ImStatistics::getTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN.minusHours(24))) .ge(ImStatistics::getTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN.minusHours(24)))
.le(ImStatistics::getTime, LocalDateTime.of(LocalDate.now(), LocalTime.MAX.minusHours(24))) .le(ImStatistics::getTime, LocalDateTime.of(LocalDate.now(), LocalTime.MAX.minusHours(24)))
); );
Integer activeGroup = statistics.getData(); Integer activeGroup = statistics == null ? 0 : statistics.getData();
statisticsVo.setActiveGroup(activeGroup); statisticsVo.setActiveGroup(activeGroup);
//新增群组数(前1天) //新增群组数(前1天)
...@@ -117,7 +115,7 @@ public class ImOverviewImpl implements ImOverview { ...@@ -117,7 +115,7 @@ public class ImOverviewImpl implements ImOverview {
statisticsVo.setDismissGroup(0); statisticsVo.setDismissGroup(0);
//活跃群组平均成员数 //活跃群组平均成员数
Integer avgMember = statistics.getGroupMember()/statistics.getData(); Integer avgMember = statistics == null ? 0 : statistics.getGroupMember()/statistics.getData();
statisticsVo.setAvgActiveGroup(avgMember); statisticsVo.setAvgActiveGroup(avgMember);
//活跃群组折线图 //活跃群组折线图
...@@ -167,6 +165,10 @@ public class ImOverviewImpl implements ImOverview { ...@@ -167,6 +165,10 @@ public class ImOverviewImpl implements ImOverview {
@Override @Override
public List<LineChart> activeUser(Long appId, LocalDateTime start, LocalDateTime end) { public List<LineChart> activeUser(Long appId, LocalDateTime start, LocalDateTime end) {
if(start == null && end ==null){
start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN.minusHours(24 * 8));
end = start.plusDays(7);
}
//活跃用户数 //活跃用户数
List<ImStatistics> imStatistics = imStatisticsService.activeUserOrGroup(appId, 1, start, end); List<ImStatistics> imStatistics = imStatisticsService.activeUserOrGroup(appId, 1, start, end);
List<LineChart> activeUser = new ArrayList<>(); List<LineChart> activeUser = new ArrayList<>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment