From b69edf91df77182944ccd376ec0ec1c033bf5b82 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期一, 27 五月 2024 15:25:00 +0800 Subject: [PATCH] 写用户端接口 --- ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java | 3 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java | 14 ++-- ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java | 3 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java | 19 ++++++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java | 77 +++++++++++++++++++++++++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java | 20 ++++++ 8 files changed, 131 insertions(+), 9 deletions(-) diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java index 9dc38ce..4f64ecd 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java @@ -1,9 +1,19 @@ package com.ruoyi.article.controller; +import com.ruoyi.article.dto.ArticleCommentsDTO; +import com.ruoyi.article.dto.MemberLikeDTO; +import com.ruoyi.article.service.IMemberLikeService; +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; /** * <p> @@ -17,4 +27,14 @@ @RequestMapping("/member-like") public class MemberLikeController { + @Resource + private IMemberLikeService memberLikeService; + @PostMapping("/saveMemberLike") + @ResponseBody + @ApiOperation(value = "文章,评论和回复 点赞和取消点赞") + public R<T> saveMemberLike(MemberLikeDTO memberLikeDTO) { + memberLikeService.saveMemberLike(memberLikeDTO); + return R.ok(); + } + } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java index 01597c6..addf007 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java @@ -73,6 +73,7 @@ @ApiModelProperty(value = "1 评论,2 是回复") private Integer type; - + @ApiModelProperty(value = "点赞数") + private Integer likeCount; } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java index 1666013..0b1faa9 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java @@ -1,8 +1,6 @@ package com.ruoyi.article.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @@ -28,7 +26,7 @@ private static final long serialVersionUID = 1L; - @TableId(value = "id", type = IdType.AUTO) + @TableId(value = "id", type = IdType.ASSIGN_ID) private Integer id; @ApiModelProperty(value = "会员id") @@ -41,22 +39,26 @@ private Long type; @ApiModelProperty(value = "创建者") + @TableField(value = "create_by", fill = FieldFill.INSERT) private String createBy; @ApiModelProperty(value = "创建时间") + @TableField(value = "create_time", fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "更新者") + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) private String updateBy; @ApiModelProperty(value = "更新时间") + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") + @TableLogic private Integer delFlag; - @ApiModelProperty(value = "点赞数") - private Long likeNum; + } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java new file mode 100644 index 0000000..aa3605c --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/dto/MemberLikeDTO.java @@ -0,0 +1,19 @@ +package com.ruoyi.article.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class MemberLikeDTO { + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "资讯id/评论id/回复id") + private Long articleId; + + @ApiModelProperty(value = "1 点赞资讯,2 点赞评论, 3 点赞回复") + private Long type; + + @ApiModelProperty(value = "1 点赞,2 取消点赞") + private Long state; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java index b5d537a..e049907 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.article.domain.MemberLike; +import com.ruoyi.article.dto.MemberLikeDTO; /** * <p> @@ -13,4 +14,6 @@ */ public interface IMemberLikeService extends IService<MemberLike> { + void saveMemberLike(MemberLikeDTO memberLikeDTO); + } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java index f241b86..4c53c83 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java @@ -1,7 +1,7 @@ package com.ruoyi.article.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.article.domain.pojo.ArticleComments; +import com.ruoyi.article.domain.ArticleComments; import com.ruoyi.article.dto.ArticleCommentsDTO; import com.ruoyi.article.mapper.ArticleCommentsMapper; import com.ruoyi.article.service.IArticleCommentsService; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java index 1b4913a..e0db56b 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java @@ -54,7 +54,7 @@ Page<Article> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize()); LambdaQueryWrapper< Article> wrapper= Wrappers.lambdaQuery(); if (articleDTO.getArticleType()!=0){ - wrapper.like(Article::getArticleType,articleDTO.getArticleType()); + wrapper.eq(Article::getArticleType,articleDTO.getArticleType()); } wrapper.like(Article::getTitle,articleDTO.getTitle()); wrapper.eq(Article::getStatus,2); diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java index a855882..4655268 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java @@ -1,10 +1,22 @@ package com.ruoyi.article.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.article.domain.Article; +import com.ruoyi.article.domain.ArticleComments; import com.ruoyi.article.domain.MemberLike; +import com.ruoyi.article.dto.MemberLikeDTO; import com.ruoyi.article.mapper.MemberLikeMapper; +import com.ruoyi.article.service.IArticleCommentsService; +import com.ruoyi.article.service.IArticleService; import com.ruoyi.article.service.IMemberLikeService; +import com.ruoyi.common.core.exception.ServiceException; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -18,4 +30,69 @@ public class MemberLikeServiceImpl extends ServiceImpl<MemberLikeMapper, MemberLike> implements IMemberLikeService { + @Resource + private IMemberLikeService memberLikeService; + @Resource + private IArticleService articleService; + + @Resource + private IArticleCommentsService articleCommentsService; + + @Override + public void saveMemberLike(MemberLikeDTO memberLikeDTO) { + if (memberLikeDTO.getMemberId()!=null) { + throw new ServiceException("用户ID不能为空"); + } + if (memberLikeDTO.getState()!=null) { + throw new ServiceException("类型不能为空"); + } + if (memberLikeDTO.getState()==1){ + MemberLike memberLike=new MemberLike(); + memberLike.setMemberId(memberLikeDTO.getMemberId()); + memberLike.setArticleId(memberLikeDTO.getArticleId()); + memberLike.setType(memberLikeDTO.getType()); + if (memberLikeDTO.getType()==1){ + Article byId = articleService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()+1); + articleService.saveOrUpdate(byId); + } + if (memberLikeDTO.getType()==2){ + ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()+1); + articleCommentsService.saveOrUpdate(byId); + } + if (memberLikeDTO.getType()==3){ + ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()+1); + articleCommentsService.saveOrUpdate(byId); + } + memberLikeService.save(memberLike); + }else{ + LambdaQueryWrapper< MemberLike> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(MemberLike::getMemberId,memberLikeDTO.getMemberId()); + wrapper.eq(MemberLike::getArticleId,memberLikeDTO.getArticleId()); + wrapper.eq(MemberLike::getType,memberLikeDTO.getType()); + wrapper.eq( MemberLike::getDelFlag,0); + List< MemberLike> memberLikes = memberLikeService.list(wrapper); + for (MemberLike memberLike:memberLikes){ + memberLikeService.removeById(memberLike); + + if (memberLikeDTO.getType()==1){ + Article byId = articleService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()-1); + articleService.saveOrUpdate(byId); + } + if (memberLikeDTO.getType()==2){ + ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()-1); + articleCommentsService.saveOrUpdate(byId); + } + if (memberLikeDTO.getType()==3){ + ArticleComments byId = articleCommentsService.getById(memberLikeDTO.getArticleId()); + byId.setLikeCount(byId.getLikeCount()-1); + articleCommentsService.saveOrUpdate(byId); + } + } + } + } } -- Gitblit v1.7.1