Jelajahi Sumber

新增文章发布文章获取等方法优化

fangzhen 8 bulan lalu
induk
melakukan
de1a95f531

+ 13 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -14,6 +14,7 @@ import com.ruoyi.generator.service.ICommunityArticleService;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -198,4 +199,16 @@ public class CommunityArticleController extends BaseController {
         }
         return AjaxResult.success(message);
     }
+
+
+    @ApiOperation("获取圈子信息")
+    @GetMapping("/circle")
+    //@Anonymous
+    public AjaxResult circle(@RequestParam("classId") String classId) {
+        if (Strings.isBlank("classId")) {
+            return AjaxResult.error("板块信息有误!");
+        }
+        List<CommunityCircle> communityCircles = communityArticleService.selectCommunityCircleList(classId);
+        return AjaxResult.success(communityCircles);
+    }
 }

+ 7 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityArticle.java

@@ -53,8 +53,15 @@ public class CommunityArticle implements Serializable {
      * 分类id
      */
     @ApiModelProperty("分类id")
+    @TableField(exist = false)
     private Long classId;
 
+    /**
+     * 圈子id
+     */
+    @ApiModelProperty("圈子id")
+    private Long circle_id;
+
     /**
      * 文章内容
      */

+ 3 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityArticleTag.java

@@ -2,6 +2,7 @@ package com.ruoyi.generator.domain.Community;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -43,6 +44,7 @@ public class CommunityArticleTag implements Serializable {
     * 创建时间
     */
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
     /**
     * 更新人
@@ -53,6 +55,7 @@ public class CommunityArticleTag implements Serializable {
     * 更新时间
     */
     @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
 }

+ 65 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCircle.java

@@ -0,0 +1,65 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 社区圈子
+* @TableName community_circle
+*/
+@Data
+@TableName("community_circle")
+public class CommunityCircle implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId("id")
+    private Long id;
+    /**
+    * 圈子名称
+    */
+    @Size(max= 50,message="编码长度不能超过50")
+    @ApiModelProperty("圈子名称")
+    @Length(max= 50,message="编码长度不能超过50")
+    private String circleName;
+    /**
+    * 热度
+    */
+    @ApiModelProperty("热度")
+    private Integer hot;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+    * 更新人
+    */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+    /**
+    * 更新时间
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+}

+ 61 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityClassCircle.java

@@ -0,0 +1,61 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 板块对应的圈子
+* @TableName community_class_circle
+*/
+@Data
+@TableName("community_class_circle")
+public class CommunityClassCircle implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId("id")
+    private Long id;
+    /**
+    * 圈子id
+    */
+    @ApiModelProperty("圈子id")
+    private Long circleId;
+    /**
+    * 板块id
+    */
+    @ApiModelProperty("板块id")
+    private Long classId;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+    * 更新人
+    */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+    /**
+    * 更新时间
+    */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+}

+ 3 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCommentLike.java

@@ -1,5 +1,6 @@
 package com.ruoyi.generator.domain.Community;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -43,6 +44,7 @@ public class CommunityCommentLike implements Serializable {
     * 创建时间
     */
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
     /**
     * 更新人
@@ -53,6 +55,7 @@ public class CommunityCommentLike implements Serializable {
     * 更新时间
     */
     @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
 }

+ 3 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityTag.java

@@ -2,6 +2,7 @@ package com.ruoyi.generator.domain.Community;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
@@ -44,6 +45,7 @@ public class CommunityTag implements Serializable {
     * 创建时间
     */
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
     /**
     * 更新人
@@ -54,6 +56,7 @@ public class CommunityTag implements Serializable {
     * 更新时间
     */
     @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
 }

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

@@ -24,7 +24,7 @@ public interface CommunityArticleMapper extends BaseMapper<CommunityArticle> {
      * @param communityArticle 文章条件
      * @return 文章首页信息
      */
-    List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle);
+    List<CommunityArticleVo> selectCommunityArticleList(@Param("communityArticle")CommunityArticle communityArticle, @Param("circleIds") List<Long> circleIds);
 
     /**
      * 获取该用户是否收藏该文章

+ 9 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityCircleMapper.java

@@ -0,0 +1,9 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityCircle;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CommunityCircleMapper extends BaseMapper<CommunityCircle> {
+}

+ 9 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityClassCircleMapper.java

@@ -0,0 +1,9 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityClassCircle;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CommunityClassCircleMapper extends BaseMapper<CommunityClassCircle> {
+}

+ 32 - 1
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -59,6 +59,12 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
     @Autowired
     private CommunityArticleImagesMapper communityArticleImagesMapper;
 
+    @Autowired
+    private CommunityClassCircleMapper communityClassCircleMapper;
+
+    @Autowired
+    private CommunityCircleMapper communityCircleMapper;
+
     /**
      * 查询文章列表
      *
@@ -67,7 +73,15 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
      */
     @Override
     public List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle) {
-        List<CommunityArticleVo> communityArticleVos = communityArticleMapper.selectCommunityArticleList(communityArticle);
+        //找出板块下的分类
+        Long classId = communityArticle.getClassId();
+        List<CommunityClassCircle> classCircles = communityClassCircleMapper.selectList(new QueryWrapper<CommunityClassCircle>().eq("class_id", classId));
+        List<Long> circleIds = new ArrayList<>();
+        for (CommunityClassCircle classCircle : classCircles) {
+            circleIds.add(classCircle.getCircleId());
+        }
+
+        List<CommunityArticleVo> communityArticleVos = communityArticleMapper.selectCommunityArticleList(communityArticle, circleIds);
         Long userId = SecurityUtils.getUserId();
         for (CommunityArticleVo articleVo : communityArticleVos) {
             //设置文章的点赞数量
@@ -263,4 +277,21 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
     public boolean deleteCommunityCollectById(CommunityArticleCollect collect) {
         return communityCollectMapper.deleteById(collect) > 0;
     }
+
+
+    /**
+     * 根据板块获取圈子列表
+     *
+     * @param classId 板块id
+     * @return 圈子列表信息
+     */
+    @Override
+    public List<CommunityCircle> selectCommunityCircleList(String classId) {
+        List<CommunityClassCircle> classes = communityClassCircleMapper.selectList(new QueryWrapper<CommunityClassCircle>().eq("class_id", classId));
+        List<Long> circleIds = new ArrayList<>();
+        for (CommunityClassCircle aClass : classes) {
+            circleIds.add(aClass.getCircleId());
+        }
+        return communityCircleMapper.selectBatchIds(circleIds);
+    }
 }

+ 8 - 4
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityArticleService.java

@@ -1,10 +1,7 @@
 package com.ruoyi.generator.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.generator.domain.Community.CommunityArticle;
-import com.ruoyi.generator.domain.Community.CommunityArticleCollect;
-import com.ruoyi.generator.domain.Community.CommunityArticleComment;
-import com.ruoyi.generator.domain.Community.CommunityLike;
+import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 
 import java.text.ParseException;
@@ -85,4 +82,11 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      * @return 删除是否成功
      */
     boolean deleteCommunityCollectById(CommunityArticleCollect collect);
+
+    /**
+     * 根据板块获取圈子列表
+     * @param classId 板块id
+     * @return 圈子列表信息
+     */
+    List<CommunityCircle> selectCommunityCircleList(String classId);
 }

+ 3 - 3
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityArticleVo.java

@@ -56,10 +56,10 @@ public class CommunityArticleVo extends BaseEntity implements Serializable {
     private String content;
 
     /**
-     * 分类id
+     * 圈子id
      */
-    @ApiModelProperty("分类id")
-    private String classId;
+    @ApiModelProperty("圈子id")
+    private String circleId;
 
     @ApiModelProperty("是否已点赞")
     private boolean isLike;

+ 12 - 8
ruoyi-generator/src/main/resources/mapper/community/ArticleMapper.xml

@@ -9,7 +9,7 @@
         <result property="userId" column="article_user_id"/>
         <result property="title" column="article_title"/>
         <result property="content" column="article_content"/>
-        <result property="classId" column="article_class_id"/>
+        <result property="circleId" column="article_circle_id"/>
         <result property="createBy" column="article_create_by"/>
         <result property="createTime" column="article_create_time"/>
         <result property="updateBy" column="article_update_by"/>
@@ -100,7 +100,7 @@
         a.title as article_title,
         a.is_comment as article_is_comment,
         a.content as article_content,
-        a.class_id as article_class_id,
+        a.circle_id as article_circle_id,
         a.create_by as article_create_by,
         a.create_time as article_create_time,
         a.update_by as article_update_by,
@@ -129,15 +129,19 @@
         left join community_article_images b on a.id = b.article_id
         left join sys_user c on a.user_id = c.user_id
         left join community_article_comment d on d.article_id = a.id
+        left join community_circle e on e.id = a.circle_id
         <where>
-            <if test="id != null and id != ''">
-                AND a.id = #{id}
+            <if test="communityArticle.id != null and communityArticle.id != ''">
+                AND a.id = #{communityArticle.id}
             </if>
-            <if test="title != null and title != ''">
-                AND a.title like concat('%', #{title}, '%')
+            <if test="communityArticle.title != null and communityArticle.title != ''">
+                AND a.title like concat('%', #{communityArticle.title}, '%')
             </if>
-            <if test="classId != null and classId != ''">
-                AND a.class_id = #{classId}
+            <if test="circleIds!= null and circleIds.size() > 0">
+                and a.circle_id IN
+                <foreach collection="circleIds" item="circleId" index="index" open="(" close=")" separator=",">
+                    #{circleId}
+                </foreach>
             </if>
         </where>
     </select>