修改圈子成员人数统计
This commit is contained in:
parent
0af2f8f3ef
commit
af8bceb495
@ -18,6 +18,7 @@ import com.syzb.common.constant.IsOrNot;
|
|||||||
import com.syzb.common.util.logger.LoggerUtil;
|
import com.syzb.common.util.logger.LoggerUtil;
|
||||||
import com.syzb.group.entity.GroupInfo;
|
import com.syzb.group.entity.GroupInfo;
|
||||||
import com.syzb.group.mapper.GroupInfoMapper;
|
import com.syzb.group.mapper.GroupInfoMapper;
|
||||||
|
import com.syzb.group.service.common.GroupCommonService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ public class BusinessDataService {
|
|||||||
private ModuleUserMapper moduleUserMapper;
|
private ModuleUserMapper moduleUserMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private GroupInfoMapper groupInfoMapper;
|
private GroupCommonService groupCommonService;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void syncOrder() {
|
public void syncOrder() {
|
||||||
@ -79,7 +80,7 @@ public class BusinessDataService {
|
|||||||
List<ModuleUser> lastModuleUserList = moduleUserMapper.selectList(wrapper);
|
List<ModuleUser> lastModuleUserList = moduleUserMapper.selectList(wrapper);
|
||||||
Map<Integer, LocalDateTime> updateTimeMap = lastModuleUserList.stream().collect(Collectors.toMap(ModuleUser::getModuleId, ModuleUser::getUpdateTime));
|
Map<Integer, LocalDateTime> updateTimeMap = lastModuleUserList.stream().collect(Collectors.toMap(ModuleUser::getModuleId, ModuleUser::getUpdateTime));
|
||||||
LocalDateTime endTime = LocalDateTime.now();
|
LocalDateTime endTime = LocalDateTime.now();
|
||||||
Set<Integer> moduleIds = getModuleIds();
|
Set<Integer> moduleIds = groupCommonService.getModuleIds(null);
|
||||||
for (Integer moduleId : moduleIds) {
|
for (Integer moduleId : moduleIds) {
|
||||||
LocalDateTime startTime = updateTimeMap.getOrDefault(moduleId, INIT_SYNC_TIME);
|
LocalDateTime startTime = updateTimeMap.getOrDefault(moduleId, INIT_SYNC_TIME);
|
||||||
List<BusinessModuleUserVO> moduleUserList = businessApiService.getModuleUserList(moduleId, startTime, endTime);
|
List<BusinessModuleUserVO> moduleUserList = businessApiService.getModuleUserList(moduleId, startTime, endTime);
|
||||||
@ -100,25 +101,6 @@ public class BusinessDataService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<Integer> getModuleIds() {
|
|
||||||
Set<Integer> moduleIdSet = new HashSet<>();
|
|
||||||
LambdaQueryWrapper<GroupInfo> wrapper = Wrappers.<GroupInfo>lambdaQuery()
|
|
||||||
.select(GroupInfo::getAuthorityId);
|
|
||||||
List<GroupInfo> authIdList = groupInfoMapper.selectList(wrapper);
|
|
||||||
authIdList.stream().map(GroupInfo::getAuthorityId).filter(StrUtil::isNotBlank)
|
|
||||||
.forEach(authId -> {
|
|
||||||
String[] moduleIdStrArray = authId.split(",");
|
|
||||||
for (String moduleIdStr : moduleIdStrArray) {
|
|
||||||
try {
|
|
||||||
moduleIdSet.add(Integer.valueOf(moduleIdStr));
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
LoggerUtil.error("权限ID格式错误:" + authId + ":" + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return moduleIdSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
private AppOrder convertOrder(BusinessOrderVO order, boolean isNew) {
|
private AppOrder convertOrder(BusinessOrderVO order, boolean isNew) {
|
||||||
AppOrder appOrder = new AppOrder();
|
AppOrder appOrder = new AppOrder();
|
||||||
appOrder.setOrderId(order.getOrderId());
|
appOrder.setOrderId(order.getOrderId());
|
||||||
|
|||||||
@ -2,20 +2,23 @@ package com.syzb.group.service.common;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.hazelcast.core.HazelcastInstance;
|
import com.hazelcast.core.HazelcastInstance;
|
||||||
import com.hazelcast.map.IMap;
|
import com.hazelcast.map.IMap;
|
||||||
|
import com.syzb.business.entity.ModuleUser;
|
||||||
|
import com.syzb.business.mapper.ModuleUserMapper;
|
||||||
import com.syzb.common.config.cache.CacheKey;
|
import com.syzb.common.config.cache.CacheKey;
|
||||||
import com.syzb.common.constant.IsOrNot;
|
import com.syzb.common.constant.IsOrNot;
|
||||||
import com.syzb.common.entity.OnlineUser;
|
import com.syzb.common.entity.OnlineUser;
|
||||||
|
import com.syzb.common.util.logger.LoggerUtil;
|
||||||
import com.syzb.common.vo.IdCountVO;
|
import com.syzb.common.vo.IdCountVO;
|
||||||
import com.syzb.group.constant.GroupInteractiveType;
|
import com.syzb.group.constant.GroupInteractiveType;
|
||||||
import com.syzb.group.constant.GroupMessageUserType;
|
import com.syzb.group.constant.GroupMessageUserType;
|
||||||
import com.syzb.group.entity.*;
|
import com.syzb.group.entity.*;
|
||||||
import com.syzb.group.mapper.*;
|
import com.syzb.group.mapper.*;
|
||||||
import com.syzb.group.vo.GroupVO;
|
|
||||||
import com.syzb.group.vo.message.GroupMessageReadVO;
|
import com.syzb.group.vo.message.GroupMessageReadVO;
|
||||||
import com.syzb.group.vo.message.GroupMessageVO;
|
import com.syzb.group.vo.message.GroupMessageVO;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -51,6 +54,9 @@ public class GroupCommonService {
|
|||||||
@Resource
|
@Resource
|
||||||
private GroupMessageReadMapper groupMessageReadMapper;
|
private GroupMessageReadMapper groupMessageReadMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ModuleUserMapper moduleUserMapper;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveGroupMessageRead() {
|
public void saveGroupMessageRead() {
|
||||||
List<GroupMessageReadVO> cacheList = hazelcastInstance.getList(CacheKey.GroupKey.TEMP_READ_LIST);
|
List<GroupMessageReadVO> cacheList = hazelcastInstance.getList(CacheKey.GroupKey.TEMP_READ_LIST);
|
||||||
@ -58,7 +64,7 @@ public class GroupCommonService {
|
|||||||
Map<Integer, Set<String>> map = new HashMap<>(cacheList.size());
|
Map<Integer, Set<String>> map = new HashMap<>(cacheList.size());
|
||||||
for (GroupMessageReadVO read : cacheList) {
|
for (GroupMessageReadVO read : cacheList) {
|
||||||
if (read != null) {
|
if (read != null) {
|
||||||
read.getMessageIds().stream().forEach(m ->
|
read.getMessageIds().forEach(m ->
|
||||||
map.computeIfAbsent(m, k -> new HashSet<>()).add(read.getUserId()));
|
map.computeIfAbsent(m, k -> new HashSet<>()).add(read.getUserId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,9 +175,9 @@ public class GroupCommonService {
|
|||||||
GroupCollect collect = new GroupCollect();
|
GroupCollect collect = new GroupCollect();
|
||||||
collect.setGroupId(groupId);
|
collect.setGroupId(groupId);
|
||||||
collect.setDate(date);
|
collect.setDate(date);
|
||||||
collect.setTotalMembers(getTotalMembers(groupId));
|
collect.setTotalMembers(getModuleMembers(groupId, false));
|
||||||
collect.setVisitedMembers(visitMemberMap.getOrDefault(groupId, 0));
|
collect.setVisitedMembers(visitMemberMap.getOrDefault(groupId, 0));
|
||||||
collect.setNewMembers(getNewMembers(groupId));
|
collect.setNewMembers(getModuleMembers(groupId, true));
|
||||||
collect.setInteractionMembers(0);
|
collect.setInteractionMembers(0);
|
||||||
collect.setPrivateChatMembers(0);
|
collect.setPrivateChatMembers(0);
|
||||||
List<GroupMessage> messageMemberList = groupMessageMemberMap.get(groupId);
|
List<GroupMessage> messageMemberList = groupMessageMemberMap.get(groupId);
|
||||||
@ -235,13 +241,35 @@ public class GroupCommonService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Integer getTotalMembers(Integer groupId) {
|
public Set<Integer> getModuleIds(Integer groupId) {
|
||||||
// TODO
|
Set<Integer> moduleIdSet = new HashSet<>();
|
||||||
return 0;
|
LambdaQueryWrapper<GroupInfo> wrapper = Wrappers.<GroupInfo>lambdaQuery()
|
||||||
|
.select(GroupInfo::getAuthorityId)
|
||||||
|
.eq(groupId != null, GroupInfo::getId, groupId);
|
||||||
|
List<GroupInfo> authIdList = groupInfoMapper.selectList(wrapper);
|
||||||
|
authIdList.stream().map(GroupInfo::getAuthorityId).filter(StrUtil::isNotBlank)
|
||||||
|
.forEach(authId -> {
|
||||||
|
String[] moduleIdStrArray = authId.split(",");
|
||||||
|
for (String moduleIdStr : moduleIdStrArray) {
|
||||||
|
try {
|
||||||
|
moduleIdSet.add(Integer.valueOf(moduleIdStr));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
LoggerUtil.error("权限ID格式错误:" + authId + ":" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return moduleIdSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Integer getNewMembers(Integer groupId) {
|
private Integer getModuleMembers(Integer groupId, boolean isNew) {
|
||||||
// TODO
|
Set<Integer> moduleIds = getModuleIds(groupId);
|
||||||
return 0;
|
if (CollUtil.isEmpty(moduleIds)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<ModuleUser> wrapper = Wrappers.<ModuleUser>lambdaQuery()
|
||||||
|
.in(ModuleUser::getModuleId, moduleIds)
|
||||||
|
.ge(isNew, ModuleUser::getCreateTime, LocalDate.now().atStartOfDay());
|
||||||
|
return moduleUserMapper.selectCount(wrapper).intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user