消息管理
This commit is contained in:
		
							parent
							
								
									0f127d5b6a
								
							
						
					
					
						commit
						7e0a405019
					
				| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue