Преглед изворни кода

1.修复在线论坛的bug

jasonk5949 пре 7 месеци
родитељ
комит
bbfdd7119e

+ 14 - 1
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/controller/ForumPostInfoController.java

@@ -55,7 +55,7 @@ public class ForumPostInfoController {
     private ForumPostInfoService forumPostInfoService;
 
     /**
-     * 获取帖子信息表分页
+     * 前台获取帖子信息表分页
      *
      * @author 金吉龙
      * @date  2025/07/16 08:46
@@ -67,6 +67,19 @@ public class ForumPostInfoController {
         return CommonResult.data(forumPostInfoService.page(forumPostInfoPageParam));
     }
 
+    /**
+     * 后台获取帖子信息表分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/16 08:46
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取帖子信息表分页")
+    @GetMapping("/forum/postinfo/adminPage")
+    public CommonResult<Page<ForumPostInfo>> adminPage(ForumPostInfoPageParam forumPostInfoPageParam) {
+        return CommonResult.data(forumPostInfoService.adminPage(forumPostInfoPageParam));
+    }
+
     /**
      * 发帖
      *

+ 2 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/ForumPostInfoService.java

@@ -102,4 +102,6 @@ public interface ForumPostInfoService extends IService<ForumPostInfo> {
      * @date  2025/07/16 08:46
      */
     Page<ForumPostInfo> moreList(ForumPostInfoPageParam forumPostInfoPageParam);
+
+    Page<ForumPostInfo> adminPage(ForumPostInfoPageParam forumPostInfoPageParam);
 }

+ 67 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/impl/ForumPostInfoServiceImpl.java

@@ -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;
+    }
+
 }