新增作者相关参数及接口

This commit is contained in:
anian
2026-03-15 23:41:07 +08:00
parent b1f30b374f
commit 5a13068143
6 changed files with 97 additions and 8 deletions
@@ -96,6 +96,22 @@ public class FriendFinderImpl implements FriendFinder {
));
}
@Override
public Flux<String> listAllAuthors() {
var listOptions = new ListOptions();
// 只查有数据的,排除已删除的
var query = isNull("metadata.deletionTimestamp");
listOptions.setFieldSelector(FieldSelector.of(query));
return client.listAll(FriendPost.class, listOptions, defaultSort())
// 提取作者名
.map(friendPost -> friendPost.getSpec().getAuthor())
// 过滤掉空值
.filter(StringUtils::isNotBlank)
// 去重
.distinct();
}
private Mono<ListResult<FriendPostVo>> pageFriendPost(ListOptions queryOptions, PageRequest page){
var listOptions = new ListOptions();
var query = all();
@@ -220,6 +236,8 @@ public class FriendFinderImpl implements FriendFinder {
private Integer page;
private Integer size;
private String linkName;
// 作者查询
private String author;
private List<String> sort;
public ListOptions toListOptions() {
@@ -227,6 +245,10 @@ public class FriendFinderImpl implements FriendFinder {
if (StringUtils.isNotBlank(linkName)) {
builder.andQuery(equal("spec.linkName", linkName));
}
// 作者查询
if (StringUtils.isNotBlank(author)) {
builder.andQuery(equal("spec.author", author));
}
return builder.build();
}