|
|
@ -83,28 +83,30 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe |
|
|
|
.eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret()) |
|
|
|
.eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret()) |
|
|
|
.eq(PushApplication::getCreateById, pushChatMessage.getUserId()) |
|
|
|
.eq(PushApplication::getCreateById, pushChatMessage.getUserId()) |
|
|
|
.eq(PushApplication::getStatus, "0")); |
|
|
|
.eq(PushApplication::getStatus, "0")); |
|
|
|
pushApplication = Optional.of(pushApplication).orElseThrow(() -> new CheckedException("你当前没有权限发送消息,请联系管理员!")); |
|
|
|
pushApplication = Optional.of(pushApplication).orElseThrow(() -> new CheckedException("你当前没有权限推送消息,请先创建推送应用后在试!")); |
|
|
|
|
|
|
|
|
|
|
|
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
|
|
|
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
|
|
|
// 如果ip地址存在即验证发送方ip
|
|
|
|
// 如果ip地址存在即验证发送方ip
|
|
|
|
if (StrUtil.isNotBlank(pushApplication.getIgnoreIp()) && !StrUtil.contains(pushApplication.getIgnoreIp(), ServletUtil.getClientIP(request))) { |
|
|
|
if (StrUtil.isNotBlank(pushApplication.getIgnoreIp()) && !StrUtil.contains(pushApplication.getIgnoreIp(), ServletUtil.getClientIP(request))) { |
|
|
|
throw new CheckedException("你的ip地址不正确,请检查消息应用中设置的ip地址!"); |
|
|
|
throw new CheckedException("你的ip地址不正确,请检查推送应用中设置的ip地址!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 配置推送用户
|
|
|
|
// 配置推送用户
|
|
|
|
if (StrUtil.isBlank(pushChatMessage.getAlias())) { |
|
|
|
if (StrUtil.isBlank(pushChatMessage.getAlias())) { |
|
|
|
List<PushConcernFan> pushConcernFanList = iPushConcernFanService.list(Wrappers.<PushConcernFan>lambdaQuery().eq(PushConcernFan::getFanUserId, pushChatMessage.getUserId())); |
|
|
|
List<PushConcernFan> pushConcernFanList = iPushConcernFanService.list(Wrappers.<PushConcernFan>lambdaQuery() |
|
|
|
|
|
|
|
.eq(PushConcernFan::getConcernUserId, pushChatMessage.getUserId()) |
|
|
|
|
|
|
|
.eq(PushConcernFan::getStatus, PushAuditStatusEnum.APPROVED)); |
|
|
|
pushChatMessage.setAlias(pushConcernFanList.stream().map(item -> item.getConcernUserId()).collect(Collectors.joining())); |
|
|
|
pushChatMessage.setAlias(pushConcernFanList.stream().map(item -> item.getConcernUserId()).collect(Collectors.joining())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 过滤掉黑名单用户
|
|
|
|
// 过滤掉黑名单用户
|
|
|
|
List<PushBlacklist> pushBlacklists = iPushBlacklistService.list(Wrappers.<PushBlacklist>lambdaQuery().eq(PushBlacklist::getFanUserId, pushChatMessage.getUserId())); |
|
|
|
List<PushBlacklist> pushBlacklists = iPushBlacklistService.list(Wrappers.<PushBlacklist>lambdaQuery().eq(PushBlacklist::getConcernUserId, pushChatMessage.getUserId())); |
|
|
|
pushBlacklists.forEach(item -> pushChatMessage.setAlias(pushChatMessage.getAlias().replaceAll(item.getConcernUserId() + ",|$", ""))); |
|
|
|
pushBlacklists.forEach(item -> pushChatMessage.setAlias(pushChatMessage.getAlias().replaceAll(item.getConcernUserId() + ",|$", ""))); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询推送用户设置的推送类型,如果参数中没有指定则采用默认的推送类型
|
|
|
|
// 查询粉丝设置的推送类型,如果参数中没有指定则采用默认的推送类型
|
|
|
|
List<PushConcernFanType> pushConcernFanTypeList = iPushConcernFanTypeService.list(Wrappers.<PushConcernFanType>lambdaQuery() |
|
|
|
List<PushConcernFanType> pushConcernFanTypeList = iPushConcernFanTypeService.list(Wrappers.<PushConcernFanType>lambdaQuery() |
|
|
|
.eq(PushConcernFanType::getFanUserId, pushChatMessage.getUserId()) |
|
|
|
.eq(PushConcernFanType::getConcernFanId, pushChatMessage.getUserId()) |
|
|
|
.eq(StrUtil.isNotBlank(pushChatMessage.getPushTypeId()), PushConcernFanType::getTypeId, pushChatMessage.getPushTypeId()) |
|
|
|
.eq(StrUtil.isNotBlank(pushChatMessage.getPushTypeId()), PushConcernFanType::getTypeId, pushChatMessage.getPushTypeId()) |
|
|
|
.eq(StrUtil.isBlank(pushChatMessage.getPushTypeId()), PushConcernFanType::getDefaultType, "1")); |
|
|
|
.eq(StrUtil.isBlank(pushChatMessage.getPushTypeId()), PushConcernFanType::getDefaultType, "1")); |
|
|
|
|
|
|
|
|
|
|
|