消息管理

This commit is contained in:
liang.chao 2024-12-23 17:31:13 +08:00
parent 0f127d5b6a
commit 7e0a405019
1 changed files with 21 additions and 8 deletions

View File

@ -67,27 +67,40 @@ public class BmMessageServiceImpl implements IBmMessageService {
JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(t);
list.addAll(arrayCache.toList(BmMessage.class));
});
List<BmMessage> result = list.stream().filter(o -> companyId.equals(o.getFromCompany())).collect(Collectors.toList());
Map<Long, BmMessage> groupedMessages = result.stream()
List<BmMessage> result = list.stream().filter(o -> companyId.equals(o.getFromCompany()) || companyId.equals(o.getToCompany())).collect(Collectors.toList());
Map<Long, BmMessage> groupedMessages1 = result.stream()
.collect(Collectors.toMap(
BmMessage::getFromCompany,
Function.identity(),
(existing, replacement) -> existing
));
List<BmMessage> messages = new ArrayList<>(groupedMessages.values());
return messages;
Map<Long, BmMessage> groupedMessages2 = result.stream()
.collect(Collectors.toMap(
BmMessage::getToCompany,
Function.identity(),
(existing, replacement) -> existing
));
List<BmMessage> messages1 = new ArrayList<>(groupedMessages1.values());
List<BmMessage> messages2 = new ArrayList<>(groupedMessages2.values());
List<BmMessage> messages3 = new ArrayList<>();
messages3.addAll(messages1);
messages3.addAll(messages2);
return messages3;
}
public List<BmMessage> selectBmMessageListFromCacheOne(BmMessage bmMessage) {
Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId();
Collection<String> keys = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + "*");
Collection<String> keys1 = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + "*" + ":" + companyId);
Collection<String> keys2 = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + companyId + ":" + "*");
List<String> keys = new ArrayList<>();
keys.addAll(keys1);
keys.addAll(keys2);
List<BmMessage> list = new ArrayList<>();
keys.stream().forEach(t -> {
JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(t);
list.addAll(arrayCache.toList(BmMessage.class));
});
List<BmMessage> result = list.stream().filter(o -> companyId.equals(o.getFromCompany()) && o.getToCompany().equals(bmMessage.getToCompany())).collect(Collectors.toList());
return result;
return list;
}
/**
@ -104,7 +117,7 @@ public class BmMessageServiceImpl implements IBmMessageService {
bmMessage.setFromCompany(companyId);
bmMessage.setFromUser(SecurityUtils.getLoginUser().getSysUser().getUserId());
bmMessage.setUuid(String.valueOf(UUID.randomUUID()));
String msgKey = MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + System.currentTimeMillis();
String msgKey = MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + companyId + ":" + bmMessage.getToCompany();
(SpringUtils.getBean(RedisService.class)).setCacheObject(msgKey, Arrays.asList(bmMessage), MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE_HOURS, TimeUnit.HOURS);
return bmMessageMapper.insertBmMessage(bmMessage);
} catch (Exception e) {