fangzhen пре 9 месеци
родитељ
комит
7997437203

+ 33 - 8
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -2,29 +2,29 @@ package com.ruoyi.generator.controller;
 
 import com.ruoyi.common.annotation.Anonymous;
 import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.generator.domain.Community.CommunityArticle;
+import com.ruoyi.generator.domain.Community.CommunityLike;
 import com.ruoyi.generator.service.ICommunityArticleService;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 社区文章管理
- * 
+ *
  * @author fangzhen
  */
 @Api(tags = "社区文章管理")
 @RestController
 @RequestMapping("/community/article")
-public class CommunityArticleController extends BaseController
-{
+public class CommunityArticleController extends BaseController {
     @Autowired
     private ICommunityArticleService communityArticleService;
 
@@ -35,10 +35,35 @@ public class CommunityArticleController extends BaseController
     @ApiOperation("获取文章列表")
     @GetMapping("/list")
     //@Anonymous
-    public TableDataInfo genList(CommunityArticle communityArticle)
-    {
+    public TableDataInfo communityList(CommunityArticle communityArticle) {
         startPage();
         List<CommunityArticleVo> list = communityArticleService.selectCommunityArticleList(communityArticle);
         return getDataTable(list);
     }
+
+    /**
+     * 获取文章列表信息
+     */
+    @ApiOperation("文章点赞")
+    @PostMapping("/like")
+    //@Anonymous
+    public AjaxResult like(@RequestBody CommunityLike communityLike) {
+        if (Objects.isNull(communityLike.getArticleId()) || Objects.isNull(communityLike.getUserId())) {
+            AjaxResult.error("文章或用户信息异常!");
+        }
+        boolean isSuccess = true;
+        CommunityLike like = communityArticleService.selectCommunityLikeById(communityLike);
+        if (Objects.isNull(like)) {
+            //新增点赞
+            isSuccess = communityArticleService.insertCommunityLikeById(communityLike);
+        } else {
+            //删除点赞
+            isSuccess = communityArticleService.deleteCommunityLikeById(like);
+        }
+
+        if (!isSuccess) {
+            return AjaxResult.error("点赞失败!");
+        }
+        return AjaxResult.success("操作成功!");
+    }
 }

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

@@ -42,6 +42,20 @@ public interface CommunityArticleMapper {
      * @return 文章点赞信息
      */
     CommunityLike selectCommunityArticleLikeById(@Param("userId") Long userId, @Param("articleId") Long articleId);
+
+    /**
+     * 新增点赞
+     * @param communityLike 点赞信息
+     * @return 点赞是否成功
+     */
+    boolean insertCommunityLikeById(CommunityLike communityLike);
+
+    /**
+     * 删除点赞
+     * @param communityLike 点赞信息
+     * @return 删除是否成功
+     */
+    boolean deleteCommunityLikeById(CommunityLike communityLike);
 }
 
 

+ 36 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -64,4 +64,40 @@ public class CommunityArticleServiceImpl implements ICommunityArticleService {
         }
         return communityArticleVos;
     }
+
+
+    /**
+     * 查询该文章对应的用户是否已经点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 点赞信息
+     */
+    @Override
+    public CommunityLike selectCommunityLikeById(CommunityLike communityLike) {
+        return communityArticleMapper.selectCommunityArticleLikeById(communityLike.getUserId(), communityLike.getArticleId());
+    }
+
+
+    /**
+     * 新增点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 点赞是否成功
+     */
+    @Override
+    public boolean insertCommunityLikeById(CommunityLike communityLike) {
+        return communityArticleMapper.insertCommunityLikeById(communityLike);
+    }
+
+
+    /**
+     * 删除点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 删除是否成功
+     */
+    @Override
+    public boolean deleteCommunityLikeById(CommunityLike communityLike) {
+        return communityArticleMapper.deleteCommunityLikeById(communityLike);
+    }
 }

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

@@ -1,22 +1,46 @@
 package com.ruoyi.generator.service;
 
 import com.ruoyi.generator.domain.Community.CommunityArticle;
+import com.ruoyi.generator.domain.Community.CommunityLike;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 
 import java.util.List;
 
 /**
  * 业务 服务层
- * 
+ *
  * @author ruoyi
  */
-public interface ICommunityArticleService
-{
+public interface ICommunityArticleService {
     /**
      * 查询文章列表
-     * 
+     *
      * @param communityArticle 文章信息
      * @return 文章信息集合
      */
     List<CommunityArticleVo> selectCommunityArticleList(CommunityArticle communityArticle);
+
+    /**
+     * 查询该文章对应的用户是否已经点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 点赞信息
+     */
+    CommunityLike selectCommunityLikeById(CommunityLike communityLike);
+
+    /**
+     * 新增点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 点赞是否成功
+     */
+    boolean insertCommunityLikeById(CommunityLike communityLike);
+
+    /**
+     * 删除点赞
+     *
+     * @param communityLike 点赞信息
+     * @return 删除是否成功
+     */
+    boolean deleteCommunityLikeById(CommunityLike communityLike);
 }

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

@@ -162,4 +162,16 @@
             </if>
         </where>
     </select>
+
+    <insert id="insertCommunityLikeById" parameterType="communityLike">
+        insert into community_like (article_id, user_id, create_by, create_time, update_by, update_time)
+        values (#{articleId}, #{userId}, #{userId}, now(), #{userId}, now());
+    </insert>
+
+    <delete id="deleteCommunityLikeById" parameterType="communityLike">
+        delete
+        from community_like
+        where user_id = #{userId}
+          and article_id = #{articleId};
+    </delete>
 </mapper>