From 2862c3e4da3adbb4bea43151514f0c43b86476d6 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 07 九月 2024 17:49:17 +0800 Subject: [PATCH] APP端冥想首页相关接口 --- xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java | 65 +++++++++++++++++++++++++++++++- 1 files changed, 62 insertions(+), 3 deletions(-) diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java index ff1852b..4007bbc 100644 --- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java +++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java @@ -1,9 +1,17 @@ package com.xinquan.meditation.service.impl; -import com.xinquan.meditation.domain.MeditationQuestion; -import com.xinquan.meditation.mapper.MeditationQuestionMapper; -import com.xinquan.meditation.service.MeditationQuestionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xinquan.common.core.enums.ReportStatusEnum; +import com.xinquan.common.core.exception.ServiceException; +import com.xinquan.common.security.utils.SecurityUtils; +import com.xinquan.meditation.domain.MeditationQuestion; +import com.xinquan.meditation.domain.MeditationQuestionLike; +import com.xinquan.meditation.mapper.MeditationQuestionMapper; +import com.xinquan.meditation.service.MeditationQuestionLikeService; +import com.xinquan.meditation.service.MeditationQuestionService; +import java.util.Objects; +import java.util.Optional; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** @@ -15,6 +23,57 @@ * @since 2024-08-21 */ @Service +@RequiredArgsConstructor public class MeditationQuestionServiceImpl extends ServiceImpl<MeditationQuestionMapper, MeditationQuestion> implements MeditationQuestionService { + private final MeditationQuestionLikeService meditationQuestionLikeService; + + /** + * 举报提问 + * + * @param id 提问id + * @param content 举报内容 + */ + @Override + public void report(Long id, String content) { + MeditationQuestion meditationQuestion = this.getById(id); + if (Optional.ofNullable(meditationQuestion).isPresent()) { + meditationQuestion.setReportStatus(ReportStatusEnum.REPORTED.getCode()); + meditationQuestion.setReportUserId(SecurityUtils.getUserId()); + meditationQuestion.setReportContent(content); + this.updateById(meditationQuestion); + } + } + + /** + * 点赞/取消点赞提问 + * + * @param id 提问id + */ + @Override + public void likeQuestion(Long id) { + MeditationQuestion meditationQuestion = this.getById(id); + if (Objects.isNull(meditationQuestion)) { + throw new ServiceException("提问不存在"); + } + // 判断是否已点赞 + Optional<MeditationQuestionLike> likeOpt = meditationQuestionLikeService.lambdaQuery() + .eq(MeditationQuestionLike::getMeditationQuestionId, id) + .eq(MeditationQuestionLike::getAppUserId, SecurityUtils.getUserId()).last("limit 1") + .oneOpt(); + if (likeOpt.isPresent()) { + // 已点赞则取消点赞 + meditationQuestionLikeService.removeById(likeOpt.get()); + meditationQuestion.setLikeCount(meditationQuestion.getLikeCount() - 1); + } else { + // 未点赞则点赞 + MeditationQuestionLike meditationQuestionLike = new MeditationQuestionLike(); + meditationQuestionLike.setAppUserId(SecurityUtils.getUserId()); + meditationQuestionLike.setMeditationQuestionId(id); + if (meditationQuestionLikeService.save(meditationQuestionLike)) { + meditationQuestion.setLikeCount(meditationQuestion.getLikeCount() + 1); + } + } + this.updateById(meditationQuestion); + } } -- Gitblit v1.7.1