Browse Source

新增部分接口,和功能优化

fangzhen 8 months ago
parent
commit
bfff7ec1d7

+ 54 - 2
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.mapper.community.CommunityArticleCommentMapper;
 import com.ruoyi.generator.mapper.community.CommunityClassMapper;
+import com.ruoyi.generator.mapper.community.CommunityCommentLikeMapper;
 import com.ruoyi.generator.service.ICommunityArticleService;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import io.swagger.annotations.Api;
@@ -14,6 +17,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Objects;
 
@@ -31,9 +35,13 @@ public class CommunityArticleController extends BaseController {
 
     @Autowired
     private CommunityClassMapper communityClassMapper;
+
     @Autowired
     private CommunityArticleCommentMapper communityArticleCommentMapper;
 
+    @Autowired
+    private CommunityCommentLikeMapper communityCommentLikeMapper;
+
 
     /**
      * 获取文章列表信息
@@ -57,7 +65,7 @@ public class CommunityArticleController extends BaseController {
 
     @ApiOperation("文章评价")
     @PostMapping("/comment")
-    public AjaxResult comment(@RequestBody CommunityArticleComment communityArticleComment) {
+    public AjaxResult comment(@RequestBody CommunityArticleComment communityArticleComment) throws ParseException {
         if (null == communityArticleComment.getArticleId()) {
             return AjaxResult.error("文章不存在或异常!");
         }
@@ -73,7 +81,7 @@ public class CommunityArticleController extends BaseController {
     }
 
     /**
-     * 获取文章列表信息
+     * 文章点赞
      */
     @ApiOperation("文章点赞")
     @PostMapping("/like")
@@ -87,6 +95,10 @@ public class CommunityArticleController extends BaseController {
         CommunityLike like = communityArticleService.selectCommunityLikeById(communityLike);
         if (Objects.isNull(like)) {
             //新增点赞
+            communityLike.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+            communityLike.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+            communityLike.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+            communityLike.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
             isSuccess = communityArticleService.insertCommunityLikeById(communityLike);
             message = "感谢点赞";
         } else {
@@ -132,4 +144,44 @@ public class CommunityArticleController extends BaseController {
         }
         return AjaxResult.success(message);
     }
+
+
+    /**
+     * 文章点赞
+     */
+    @ApiOperation("评论点赞")
+    @PostMapping("/commentLike")
+    //@Anonymous
+    public AjaxResult commentLike(@RequestBody CommunityCommentLike commentLike) {
+        if (Objects.isNull(commentLike.getCommentId()) || Objects.isNull(commentLike.getUserId())) {
+            return AjaxResult.error("评论或用户信息异常!");
+        }
+        boolean isSuccess = true;
+        String message = "";
+        //查询该评论是否已点赞
+        List<CommunityCommentLike> commentLikes = communityCommentLikeMapper
+                .selectList(new QueryWrapper<CommunityCommentLike>()
+                        .eq("comment_id", commentLike.getCommentId())
+                        .eq("user_id", commentLike.getUserId()));
+
+        if (commentLikes.isEmpty()) {
+            //新增点赞
+            commentLike.setCreateBy(SecurityUtils.getLoginUser().getUserId());
+            commentLike.setUpdateBy(SecurityUtils.getLoginUser().getUserId());
+            commentLike.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+            commentLike.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
+            communityCommentLikeMapper.insert(commentLike);
+            message = "感谢点赞";
+        } else {
+            //删除点赞
+            communityCommentLikeMapper.deleteById(commentLike);
+            message = "取消点赞";
+        }
+
+        if (!isSuccess) {
+            message = "操作失败!";
+            return AjaxResult.error(message);
+        }
+        return AjaxResult.success(message);
+    }
 }

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

@@ -0,0 +1,58 @@
+package com.ruoyi.generator.domain.Community;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 评价点赞表
+* @TableName community_comment_like
+*/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommunityCommentLike implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    private Long id;
+    /**
+    * 评价id
+    */
+    @ApiModelProperty("评价id")
+    private Long commentId;
+    /**
+    * 点赞用户id
+    */
+    @ApiModelProperty("点赞用户id")
+    private Long userId;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    /**
+    * 更新人
+    */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+    /**
+    * 更新时间
+    */
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+}

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

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

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

@@ -5,14 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
-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.mapper.community.CommunityArticleCommentMapper;
-import com.ruoyi.generator.mapper.community.CommunityArticleMapper;
-import com.ruoyi.generator.mapper.community.CommunityCollectMapper;
-import com.ruoyi.generator.mapper.community.CommunityLikeMapper;
+import com.ruoyi.generator.domain.Community.*;
+import com.ruoyi.generator.mapper.community.*;
 import com.ruoyi.generator.vo.CommunityArticleCommentVo;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -21,6 +15,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Objects;
 
@@ -44,9 +39,13 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
 
     @Autowired
     private CommunityCollectMapper communityCollectMapper;
+
     @Autowired
     private CommunityArticleCommentMapper communityArticleCommentMapper;
 
+    @Autowired
+    private CommunityCommentLikeMapper communityCommentLikeMapper;
+
     /**
      * 查询文章列表
      *
@@ -56,31 +55,46 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
     @Override
     public List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle) {
         List<CommunityArticleVo> communityArticleVos = communityArticleMapper.selectCommunityArticleList(communityArticle);
-        CommunityArticleVo communityArticleVo = null;
         Long userId = SecurityUtils.getUserId();
-        for (int i = 0; i < communityArticleVos.size(); i++) {
-            communityArticleVo = communityArticleVos.get(i);
+        for (CommunityArticleVo articleVo : communityArticleVos) {
+            //设置文章的点赞数量
+            articleVo.setLikeCount(communityLikeMapper
+                    .selectList(new QueryWrapper<CommunityLike>()
+                            .eq("article_id", articleVo.getId()))
+                    .size());
+
             //文章下的评论
-            List<CommunityArticleCommentVo> comments = communityArticleVo.getComments();
+            List<CommunityArticleCommentVo> comments = articleVo.getComments();
             for (CommunityArticleCommentVo communityArticleCommentVo : comments) {
                 //获取评论的用户信息
                 SysUser sysUser = sysUserMapper.selectUserById(communityArticleCommentVo.getUserId());
                 communityArticleCommentVo.setUsername(sysUser.getUserName());
                 communityArticleCommentVo.setAvatar(sysUser.getAvatar());
+                //当前登录用户是否已点赞
+                List<CommunityCommentLike> commentLikes = communityCommentLikeMapper
+                        .selectList(new QueryWrapper<CommunityCommentLike>()
+                                .eq("comment_id", communityArticleCommentVo.getId()).eq("user_id", userId));
+                communityArticleCommentVo.setCommentLike(!commentLikes.isEmpty());
+
+                //该评论的点赞数量
+                communityArticleCommentVo.setCommentLikeCount(communityCommentLikeMapper
+                        .selectList(new QueryWrapper<CommunityCommentLike>()
+                                .eq("comment_id", communityArticleCommentVo.getId()))
+                        .size());
 
                 //判断是否已收藏
                 CommunityArticleCollect collect = communityCollectMapper
                         .selectOne(new QueryWrapper<CommunityArticleCollect>()
                                 .eq("user_id", userId)
                                 .eq("article_id", communityArticleCommentVo.getArticleId()));
-                communityArticleVo.setCollect(!Objects.isNull(collect));
+                articleVo.setCollect(!Objects.isNull(collect));
 
                 //判断是否已点赞
                 CommunityLike like = communityLikeMapper
                         .selectOne(new QueryWrapper<CommunityLike>()
                                 .eq("user_id", userId)
                                 .eq("article_id", communityArticleCommentVo.getArticleId()));
-                communityArticleVo.setLike(!Objects.isNull(like));
+                articleVo.setLike(!Objects.isNull(like));
             }
         }
         return communityArticleVos;
@@ -89,15 +103,16 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
 
     /**
      * 发送评论
+     *
      * @param communityArticleComment 评论信息
      */
     @Override
-    public void sendComment(CommunityArticleComment communityArticleComment) {
+    public void sendComment(CommunityArticleComment communityArticleComment) throws ParseException {
         communityArticleComment.setId(null);
         communityArticleComment.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
         communityArticleComment.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
-        communityArticleComment.setCreateTime(DateUtils.parseDate(DateUtils.getNowDate()));
-        communityArticleComment.setUpdateTime(DateUtils.parseDate(DateUtils.getNowDate()));
+        communityArticleComment.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+        communityArticleComment.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
         communityArticleCommentMapper.insert(communityArticleComment);
     }
 

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

@@ -7,6 +7,7 @@ import com.ruoyi.generator.domain.Community.CommunityArticleComment;
 import com.ruoyi.generator.domain.Community.CommunityLike;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 
+import java.text.ParseException;
 import java.util.List;
 
 /**
@@ -27,7 +28,7 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      * 发送评论
      * @param communityArticleComment 评论信息
      */
-    void sendComment(CommunityArticleComment communityArticleComment);
+    void sendComment(CommunityArticleComment communityArticleComment) throws ParseException;
 
     /**
      * 查询该文章对应的用户是否已经点赞

+ 12 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityArticleCommentVo.java

@@ -43,6 +43,18 @@ public class CommunityArticleCommentVo extends BaseEntity implements Serializabl
     @ApiModelProperty("评论人用户名")
     private String username;
 
+    /**
+     * 评论点赞数
+     */
+    @ApiModelProperty("评论点赞数")
+    private int commentLikeCount;
+
+    /**
+     * 评论点赞数
+     */
+    @ApiModelProperty("当前用户是否已点赞")
+    private boolean isCommentLike;
+
     /**
      * 评论人头像
      */

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

@@ -63,6 +63,9 @@ public class CommunityArticleVo extends BaseEntity implements Serializable {
     @ApiModelProperty("是否已点赞")
     private boolean isLike;
 
+    @ApiModelProperty("点赞个数")
+    private int likeCount;
+
     @ApiModelProperty("是否允许评论")
     private boolean isComment;