动态列表新增排除黑名单用户
This commit is contained in:
parent
6110d4a934
commit
2281949767
@ -59,17 +59,25 @@ public class DynamicFollowQryExe {
|
|||||||
private final DynamicTimelineService dynamicTimelineService;
|
private final DynamicTimelineService dynamicTimelineService;
|
||||||
private final UserProfileAppConvertor userProfileAppConvertor;
|
private final UserProfileAppConvertor userProfileAppConvertor;
|
||||||
private final UserSubscriptionService userSubscriptionService;
|
private final UserSubscriptionService userSubscriptionService;
|
||||||
|
private final com.red.circle.other.infra.database.rds.service.user.user.ShieldBlackService shieldBlackService;
|
||||||
|
|
||||||
public PageResult<DynamicListCO> execute(DynamicLimitCmd cmd) {
|
public PageResult<DynamicListCO> execute(DynamicLimitCmd cmd) {
|
||||||
|
|
||||||
// 获取关注人列表
|
// 获取黑名单用户列表
|
||||||
|
List<Long> blackUserIds = shieldBlackService.listBlackUserIds(cmd.getReqUserId());
|
||||||
|
Set<Long> blackUserSet = CollectionUtils.isEmpty(blackUserIds) ? Sets.newHashSet() : Sets.newHashSet(blackUserIds);
|
||||||
|
|
||||||
|
// 获取关注人列表,过滤黑名单用户
|
||||||
List<UserSubscription> userSubscriptions = userSubscriptionService
|
List<UserSubscription> userSubscriptions = userSubscriptionService
|
||||||
.listByUserId(cmd.requiredReqUserId(), null, null);
|
.listByUserId(cmd.requiredReqUserId(), null, null);
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(userSubscriptions)) {
|
if (CollectionUtils.isEmpty(userSubscriptions)) {
|
||||||
return PageResult.newPageResult(0);
|
return PageResult.newPageResult(0);
|
||||||
}
|
}
|
||||||
List<Long> list = userSubscriptions.stream().map(UserSubscription::getSubscribeUserId).toList();
|
List<Long> list = userSubscriptions.stream()
|
||||||
|
.map(UserSubscription::getSubscribeUserId)
|
||||||
|
.filter(userId -> !blackUserSet.contains(userId))
|
||||||
|
.toList();
|
||||||
PageResult<DynamicTimeline> timelines = dynamicTimelineService
|
PageResult<DynamicTimeline> timelines = dynamicTimelineService
|
||||||
.pageByTimeDesc(list, userRegionGateway.getRegionId(cmd.getReqUserId()),
|
.pageByTimeDesc(list, userRegionGateway.getRegionId(cmd.getReqUserId()),
|
||||||
cmd.getPageReq(), Boolean.TRUE);
|
cmd.getPageReq(), Boolean.TRUE);
|
||||||
|
|||||||
@ -53,11 +53,13 @@ public class DynamicLatestQryExe {
|
|||||||
private final DynamicCommentService dynamicCommentService;
|
private final DynamicCommentService dynamicCommentService;
|
||||||
private final UserSubscriptionService userSubscriptionService;
|
private final UserSubscriptionService userSubscriptionService;
|
||||||
private final UserProfileAppConvertor userProfileAppConvertor;
|
private final UserProfileAppConvertor userProfileAppConvertor;
|
||||||
|
private final com.red.circle.other.infra.database.rds.service.user.user.ShieldBlackService shieldBlackService;
|
||||||
|
|
||||||
public PageResult<DynamicListCO> execute(DynamicLimitCmd cmd) {
|
public PageResult<DynamicListCO> execute(DynamicLimitCmd cmd) {
|
||||||
|
|
||||||
|
List<Long> blackUserIds = shieldBlackService.listBlackUserIds(cmd.getReqUserId());
|
||||||
PageResult<DynamicContent> dynamics = dynamicContentService
|
PageResult<DynamicContent> dynamics = dynamicContentService
|
||||||
.pageByTimeDesc(cmd.getPageReq(), null, cmd.requireReqSysOrigin());
|
.pageByTimeDesc(cmd.getPageReq(), null, cmd.requireReqSysOrigin(), blackUserIds);
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(dynamics.getRecords())) {
|
if (CollectionUtils.isEmpty(dynamics.getRecords())) {
|
||||||
return PageResult.newPageResult(0);
|
return PageResult.newPageResult(0);
|
||||||
|
|||||||
@ -36,6 +36,16 @@ public interface DynamicContentService extends BaseService<DynamicContent> {
|
|||||||
*/
|
*/
|
||||||
PageResult<DynamicContent> pageByTimeDesc(PageQuery pageQuery, String region, String sysOrigin);
|
PageResult<DynamicContent> pageByTimeDesc(PageQuery pageQuery, String region, String sysOrigin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得分页数据(排除黑名单用户)
|
||||||
|
*
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @param region 地区
|
||||||
|
* @param sysOrigin 系统来源
|
||||||
|
* @param blackUserIds 黑名单用户ID列表
|
||||||
|
*/
|
||||||
|
PageResult<DynamicContent> pageByTimeDesc(PageQuery pageQuery, String region, String sysOrigin, List<Long> blackUserIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得分页数据
|
* 获得分页数据
|
||||||
*
|
*
|
||||||
|
|||||||
@ -67,6 +67,18 @@ public class DynamicContentServiceImpl extends
|
|||||||
.page(pageQuery);
|
.page(pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<DynamicContent> pageByTimeDesc(PageQuery pageQuery, String region, String sysOrigin, List<Long> blackUserIds) {
|
||||||
|
|
||||||
|
return query()
|
||||||
|
.eq(DynamicContent::getDel, Boolean.FALSE)
|
||||||
|
.eq(DynamicContent::getSysOrigin, sysOrigin)
|
||||||
|
.eq(region != null, DynamicContent::getRegion, region)
|
||||||
|
.notIn(CollectionUtils.isNotEmpty(blackUserIds), DynamicContent::getCreateUser, blackUserIds)
|
||||||
|
.orderByDesc(DynamicContent::getCreateTime)
|
||||||
|
.page(pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<DynamicContent> pageByTimeDesc(Long userId, PageQuery pageQuery) {
|
public PageResult<DynamicContent> pageByTimeDesc(Long userId, PageQuery pageQuery) {
|
||||||
|
|
||||||
|
|||||||
@ -70,4 +70,12 @@ public interface ShieldBlackService extends BaseService<ShieldBlack> {
|
|||||||
*/
|
*/
|
||||||
List<ShieldBlack> pageUserBlacklist(Long userId, Long searchUserId, Long lastId);
|
List<ShieldBlack> pageUserBlacklist(Long userId, Long searchUserId, Long lastId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户所有黑名单用户ID列表.
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 黑名单用户ID列表
|
||||||
|
*/
|
||||||
|
List<Long> listBlackUserIds(Long userId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,5 +110,21 @@ public class ShieldBlackServiceImpl extends BaseServiceImpl<ShieldBlackDAO, Shie
|
|||||||
.list()).orElse(CollectionUtils.newArrayList());
|
.list()).orElse(CollectionUtils.newArrayList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Long> listBlackUserIds(Long userId) {
|
||||||
|
if (Objects.isNull(userId)) {
|
||||||
|
return CollectionUtils.newArrayList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Optional.ofNullable(query()
|
||||||
|
.select(ShieldBlack::getShieldUserId)
|
||||||
|
.eq(ShieldBlack::getUserId, userId)
|
||||||
|
.list())
|
||||||
|
.orElse(CollectionUtils.newArrayList())
|
||||||
|
.stream()
|
||||||
|
.map(ShieldBlack::getShieldUserId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user