动态列表新增排除黑名单用户
This commit is contained in:
parent
6110d4a934
commit
2281949767
@ -59,17 +59,25 @@ public class DynamicFollowQryExe {
|
||||
private final DynamicTimelineService dynamicTimelineService;
|
||||
private final UserProfileAppConvertor userProfileAppConvertor;
|
||||
private final UserSubscriptionService userSubscriptionService;
|
||||
private final com.red.circle.other.infra.database.rds.service.user.user.ShieldBlackService shieldBlackService;
|
||||
|
||||
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
|
||||
.listByUserId(cmd.requiredReqUserId(), null, null);
|
||||
|
||||
if (CollectionUtils.isEmpty(userSubscriptions)) {
|
||||
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
|
||||
.pageByTimeDesc(list, userRegionGateway.getRegionId(cmd.getReqUserId()),
|
||||
cmd.getPageReq(), Boolean.TRUE);
|
||||
|
||||
@ -53,11 +53,13 @@ public class DynamicLatestQryExe {
|
||||
private final DynamicCommentService dynamicCommentService;
|
||||
private final UserSubscriptionService userSubscriptionService;
|
||||
private final UserProfileAppConvertor userProfileAppConvertor;
|
||||
private final com.red.circle.other.infra.database.rds.service.user.user.ShieldBlackService shieldBlackService;
|
||||
|
||||
public PageResult<DynamicListCO> execute(DynamicLimitCmd cmd) {
|
||||
|
||||
List<Long> blackUserIds = shieldBlackService.listBlackUserIds(cmd.getReqUserId());
|
||||
PageResult<DynamicContent> dynamics = dynamicContentService
|
||||
.pageByTimeDesc(cmd.getPageReq(), null, cmd.requireReqSysOrigin());
|
||||
.pageByTimeDesc(cmd.getPageReq(), null, cmd.requireReqSysOrigin(), blackUserIds);
|
||||
|
||||
if (CollectionUtils.isEmpty(dynamics.getRecords())) {
|
||||
return PageResult.newPageResult(0);
|
||||
|
||||
@ -36,6 +36,16 @@ public interface DynamicContentService extends BaseService<DynamicContent> {
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
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);
|
||||
|
||||
/**
|
||||
* 获取用户所有黑名单用户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());
|
||||
}
|
||||
|
||||
@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