|
|
@@ -457,4 +457,71 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Page<ForumPostInfo> adminPage(ForumPostInfoPageParam forumPostInfoPageParam) {
|
|
|
+ QueryWrapper<ForumPostInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ // 帖子标题
|
|
|
+ if (StringUtils.isNotBlank(forumPostInfoPageParam.getPostTitle())) {
|
|
|
+ queryWrapper.lambda().like(ForumPostInfo::getPostTitle, forumPostInfoPageParam.getPostTitle());
|
|
|
+ }
|
|
|
+ // 帖子分类
|
|
|
+ if (StringUtils.isNotBlank(forumPostInfoPageParam.getTypeId())) {
|
|
|
+ queryWrapper.lambda().eq(ForumPostInfo::getTypeId, forumPostInfoPageParam.getTypeId());
|
|
|
+ }
|
|
|
+ // 帖子类型 0普通帖子 1技术支持 2内容纠错
|
|
|
+ if (forumPostInfoPageParam.getPostType() != null) {
|
|
|
+ queryWrapper.lambda().eq(ForumPostInfo::getPostType, forumPostInfoPageParam.getPostType());
|
|
|
+ }
|
|
|
+ // 根据标识排序
|
|
|
+ // 排序字段 0回复 1浏览 2活动
|
|
|
+ if (forumPostInfoPageParam.getSortField() != null) {
|
|
|
+ if (forumPostInfoPageParam.getSortField() == 0) {
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getReplyCount);
|
|
|
+ } else if (forumPostInfoPageParam.getSortField() == 1) {
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getViewCount);
|
|
|
+ } else {
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getLastReplyTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 排序方式 0最新 1热门
|
|
|
+ if (forumPostInfoPageParam.getSortOrder() != null) {
|
|
|
+ if (forumPostInfoPageParam.getSortOrder() == 0) {
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getCreateTime);
|
|
|
+ } else if (forumPostInfoPageParam.getSortOrder() == 1) {
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getViewCount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 置顶的优先
|
|
|
+ queryWrapper.lambda().orderByDesc(ForumPostInfo::getIsTop);
|
|
|
+ Page<ForumPostInfo> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
+ if (page.getRecords().size() > 0) {
|
|
|
+ for (ForumPostInfo forumPostInfo : page.getRecords()) {
|
|
|
+ // 关联帖子分类名称
|
|
|
+ ForumPostType forumPostType = forumPostTypeMapper.selectById(forumPostInfo.getTypeId());
|
|
|
+ if (ObjectUtil.isNotNull(forumPostType)) {
|
|
|
+ forumPostInfo.setTypeName(forumPostType.getTypeName());
|
|
|
+ }
|
|
|
+ // 关联发帖用户的信息
|
|
|
+ JSONObject user = sysUserApi.getUserByIdWithoutException(forumPostInfo.getUserId());
|
|
|
+ if (user != null) {
|
|
|
+ forumPostInfo.setUserNickName(user.getStr("name"));
|
|
|
+ forumPostInfo.setUserAvatar(user.getStr("avatar"));
|
|
|
+ }
|
|
|
+ // 关联最后发帖用户的信息
|
|
|
+ JSONObject lastReplyUser = sysUserApi.getUserByIdWithoutException(forumPostInfo.getLastReplyUserId());
|
|
|
+ if (lastReplyUser != null) {
|
|
|
+ forumPostInfo.setLastReplyUserNickName(lastReplyUser.getStr("name"));
|
|
|
+ forumPostInfo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
|
|
|
+ }
|
|
|
+ // 校验帖子是否为自己的
|
|
|
+ if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
|
|
|
+ forumPostInfo.setIsSelf(1);
|
|
|
+ } else {
|
|
|
+ forumPostInfo.setIsSelf(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
}
|