|
@@ -54,6 +54,8 @@ import java.io.IOException;
|
|
|
import java.net.URL;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
|
|
|
|
|
@@ -446,18 +448,22 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
if(StringUtils.isEmpty(jpushType)){
|
|
|
jpushType = "STUDENT";
|
|
|
}
|
|
|
- List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(new ArrayList<>(receivers.keySet()));
|
|
|
+ // 处理注册验证码,没有用户ID的情况导致没有发送短息
|
|
|
List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
|
|
|
- for (SimpleUserDto user : userDtoList) {
|
|
|
+ List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(new ArrayList<>(receivers.keySet()));
|
|
|
+ Map<Integer, SimpleUserDto> userMap = userDtoList.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, Function.identity()));
|
|
|
+ for (Map.Entry<Integer, String> receive : receivers.entrySet()) {
|
|
|
+ Long userId = Long.valueOf(Optional.ofNullable(receive.getKey()).orElse(-1));
|
|
|
+ SimpleUserDto user = userMap.getOrDefault(userId.intValue(), new SimpleUserDto());
|
|
|
CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
|
|
|
- messageParam.setUserId(user.getUserId().longValue());
|
|
|
+ messageParam.setUserId(userId);
|
|
|
messageParam.setAppKey(EAppKey.GYM);
|
|
|
messageParam.setClientType(getClientType(jpushType));
|
|
|
- messageParam.setClientId(messageParam.getClientType());
|
|
|
+ messageParam.setClientId(getClientType(jpushType));
|
|
|
messageParam.setType(type.getCode());
|
|
|
messageParam.setUrl(url);
|
|
|
Map<Long, String> params = new HashMap<>();
|
|
|
- params.put(user.getUserId().longValue(), user.getPhone());
|
|
|
+ params.put(userId, Optional.ofNullable(user.getPhone()).orElse(receive.getValue()));
|
|
|
messageParam.setReceivers(params);
|
|
|
messageParam.setRealSend(!debugMode);
|
|
|
if(args != null && args.length > 0){
|