ソースを参照

获取文章信息添加总数据量

fangzhen 6 ヶ月 前
コミット
5aa3e7dd58

+ 11 - 3
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -2,6 +2,7 @@ package com.ruoyi.generator.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -12,7 +13,10 @@ import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.mapper.community.*;
 import com.ruoyi.generator.service.*;
-import com.ruoyi.generator.vo.*;
+import com.ruoyi.generator.vo.CommunityArticleVo;
+import com.ruoyi.generator.vo.CommunityCircleVo;
+import com.ruoyi.generator.vo.CommunityCollectionArticleVo;
+import com.ruoyi.generator.vo.CommunityCollectionVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.logging.log4j.util.Strings;
@@ -82,8 +86,12 @@ public class CommunityArticleController extends BaseController {
         int pageNum = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
         int pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
         int searchType = Convert.toInt(ServletUtils.getParameter("searchType"), 0);
-        List<CommunityArticleVo> list = communityArticleService.selectCommunityArticleList(communityArticle, pageNum, pageSize, searchType);
-        return getDataTable(list);
+        TableDataInfo rspData = new TableDataInfo();
+        List<CommunityArticleVo> list = communityArticleService.selectCommunityArticleList(rspData,communityArticle, pageNum, pageSize, searchType);
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        return rspData;
     }
 
     /**

+ 5 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityArticleMapper.java

@@ -18,6 +18,11 @@ import java.util.List;
  */
 @Mapper
 public interface CommunityArticleMapper extends BaseMapper<CommunityArticle> {
+
+    int selectCommunityArticleCount(@Param("communityArticle") CommunityArticle communityArticle,
+                                    @Param("circleIds") List<Long> circleIds,
+                                    @Param("searchType") int searchType);
+
     /**
      * 获取文章内容首页信息
      *

+ 7 - 3
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.generator.service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
@@ -106,7 +107,7 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
      * @return 文章信息集合
      */
     @Override
-    public List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle, int pageNum, int pageSize, int searchType) {
+    public List<CommunityArticleVo> selectCommunityArticleList(TableDataInfo rspData, CommunityArticle communityArticle, int pageNum, int pageSize, int searchType) {
         //找出板块下的分类
         Long classId = communityArticle.getClassId();
         Long id = communityArticle.getId();
@@ -143,6 +144,7 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
         //根据分类查找文章
         int offset = (pageNum - 1) * pageSize;
         communityArticleVos = communityArticleMapper.selectCommunityArticleList(communityArticle, circleIds, offset, pageSize, searchType);
+        rspData.setTotal(communityArticleMapper.selectCommunityArticleCount(communityArticle, circleIds, searchType));
         List<CommunityArticleVo> communityArticleVos_copy = new ArrayList<>(communityArticleVos);
         for (CommunityArticleVo articleVo : communityArticleVos_copy) {
             List<Map<String, Object>> imageList = articleVo.getImageList();
@@ -612,6 +614,7 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
 
     /**
      * 判断评论的人 是否在文章作者的关注列表中
+     *
      * @param userId    必填
      * @param commentId 可选  评论的评论接口
      * @param articleId 可选  文章评论接口
@@ -619,7 +622,7 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
      * @throws ParseException
      */
     @Override
-    public Boolean checkCommentPermission(Long userId,Long commentId,Long articleId) throws ParseException {
+    public Boolean checkCommentPermission(Long userId, Long commentId, Long articleId) throws ParseException {
         /**
          * 1.传commentId 说明是 评论的评论接口
          * 2.传articleId 说明是文章评论接口
@@ -635,7 +638,8 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
                     .selectList(new QueryWrapper<CommunityArticleComment>().eq("id", commentId));
             CommunityArticleComment communityArticleComment = communityArticleComments.get(0);
             articleId = communityArticleComment.getArticleId();
-        };
+        }
+        ;
 
         //获取文章信息 找到文章创建人
         List<CommunityArticle> communityArticles

+ 2 - 1
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityArticleService.java

@@ -1,6 +1,7 @@
 package com.ruoyi.generator.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.vo.*;
 
@@ -19,7 +20,7 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      * @param communityArticle 文章信息
      * @return 文章信息集合
      */
-    List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle, int pageNum, int pageSize, int searchType);
+    List<CommunityArticleVo> selectCommunityArticleList(TableDataInfo rspData,CommunityArticle communityArticle, int pageNum, int pageSize, int searchType);
 
     /**
      * 发布文章

+ 33 - 0
ruoyi-generator/src/main/resources/mapper/community/ArticleMapper.xml

@@ -197,6 +197,39 @@
         limit #{offset},#{limit}
     </select>
 
+    <select id="selectCommunityArticleCount" parameterType="CommunityArticle" resultType="int">
+        SELECT COUNT(DISTINCT a.id)
+        FROM community_article a
+        LEFT JOIN sys_user c ON a.user_id = c.user_id
+        LEFT JOIN community_article_circle e ON e.article_id = a.id
+        LEFT JOIN community_article_tag f ON f.article_id = a.id
+        <where>
+            <if test="communityArticle.id != null and communityArticle.id != ''">
+                AND a.id = #{communityArticle.id}
+            </if>
+            <if test="communityArticle.title != null and communityArticle.title != ''">
+                AND a.title LIKE CONCAT('%', #{communityArticle.title}, '%')
+            </if>
+            <if test="circleIds != null and circleIds.size() > 0">
+                AND e.circle_id IN
+                <foreach collection="circleIds" item="circleId" open="(" close=")" separator=",">
+                    #{circleId}
+                </foreach>
+            </if>
+            <if test="communityArticle.userId != null and communityArticle.userId != ''">
+                AND a.user_id = #{communityArticle.userId}
+            </if>
+            <if test="communityArticle.userIds != null and communityArticle.userIds.size > 0">
+                AND a.user_id IN
+                <foreach collection="communityArticle.userIds" item="userId" open="(" close=")" separator=",">
+                    #{userId}
+                </foreach>
+            </if>
+            AND (a.is_delete != 1 OR a.is_delete IS NULL)
+        </where>
+    </select>
+
+
     <select id="selectCommunityArticleCollectById" resultMap="CommunityCollectResult">
         select collect_id, article_id, user_id, create_by, create_time, update_by, update_time from
         community_article_collect