|  | @@ -36,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import javax.annotation.Resource;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
 | 
	
	
		
			
				|  | @@ -77,33 +78,35 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 | 
	
		
			
				|  |  |  			LOGGER.error("接收地址不能为空");
 | 
	
		
			
				|  |  |  			return;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		List<BasicUserInfo> basicUserInfo = teacherDao.findBasicUserInfo(receivers.keySet());
 | 
	
		
			
				|  |  |  		List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
 | 
	
		
			
				|  |  | -		for (BasicUserInfo user : basicUserInfo) {
 | 
	
		
			
				|  |  | +		List<BasicUserInfo> basicUserInfo = teacherDao.findBasicUserInfo(receivers.keySet());
 | 
	
		
			
				|  |  | +		Map<Long, String> userIdPhoneMap = basicUserInfo.stream().collect(Collectors.toMap(BasicUserInfo::getUserId, BasicUserInfo::getPhone));
 | 
	
		
			
				|  |  | +		receivers.forEach((userId, value) -> {
 | 
	
		
			
				|  |  | +			String phone = userIdPhoneMap.getOrDefault(userId, null);
 | 
	
		
			
				|  |  |  			CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
 | 
	
		
			
				|  |  | -			messageParam.setUserId(user.getUserId());
 | 
	
		
			
				|  |  | +			messageParam.setUserId(userId);
 | 
	
		
			
				|  |  |  			messageParam.setAppKey(EAppKey.KLX);
 | 
	
		
			
				|  |  |  			messageParam.setClientType(getClientType(jpushType));
 | 
	
		
			
				|  |  |  			messageParam.setClientId(messageParam.getClientType());
 | 
	
		
			
				|  |  |  			messageParam.setType(type.getCode());
 | 
	
		
			
				|  |  |  			messageParam.setUrl(url);
 | 
	
		
			
				|  |  |  			Map<Long, String> params = new HashMap<>();
 | 
	
		
			
				|  |  | -			params.put(user.getUserId(), user.getPhone());
 | 
	
		
			
				|  |  | +			params.put(userId, Optional.ofNullable(phone).orElse(value));
 | 
	
		
			
				|  |  |  			messageParam.setReceivers(params);
 | 
	
		
			
				|  |  |  			messageParam.setRealSend(!debugMode);
 | 
	
		
			
				|  |  | -			if(args != null && args.length > 0){
 | 
	
		
			
				|  |  | +			if (args != null && args.length > 0) {
 | 
	
		
			
				|  |  |  				String[] argsStr = new String[args.length];
 | 
	
		
			
				|  |  |  				for (int i = 0; i < args.length; i++) {
 | 
	
		
			
				|  |  | -					if (args[i]!=null){
 | 
	
		
			
				|  |  | +					if (args[i] != null) {
 | 
	
		
			
				|  |  |  						argsStr[i] = args[i].toString();
 | 
	
		
			
				|  |  | -					}else {
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  |  						argsStr[i] = "";
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				messageParam.setContentArgs(argsStr);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			messageParams.add(messageParam);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  |  		messageFeignClientService.sysMessageBatchSendMessage(messageParams);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |