| | |
| | | package com.xinquan.meditation.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xinquan.common.core.domain.R; |
| | | import com.xinquan.common.core.enums.ReportStatusEnum; |
| | | import com.xinquan.common.core.exception.ServiceException; |
| | | import com.xinquan.common.security.service.TokenService; |
| | | import com.xinquan.common.security.utils.SecurityUtils; |
| | | import com.xinquan.meditation.mapper.MeditationReportMapper; |
| | | import com.xinquan.meditation.service.MeditationReportService; |
| | |
| | | import java.util.Optional; |
| | | |
| | | import com.xinquan.system.api.domain.MeditationReport; |
| | | import com.xinquan.system.api.model.LoginUser; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | @Autowired |
| | | private MeditationReportMapper meditationReportMapper; |
| | | |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | /** |
| | | * 举报提问 |
| | | * |
| | |
| | | */ |
| | | @Override |
| | | public void report(Long id, String content) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | return; |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | | MeditationQuestion meditationQuestion = this.getById(id); |
| | | if (Optional.ofNullable(meditationQuestion).isPresent()) { |
| | | meditationQuestion.setReportStatus(2); |
| | |
| | | meditationReport.setMeditationId(meditationQuestion.getMeditationId()); |
| | | meditationReport.setQuestionId(meditationQuestion.getId()); |
| | | meditationReport.setReportContent(content); |
| | | meditationReport.setReportUserId(SecurityUtils.getUserId()); |
| | | meditationReport.setReportUserId(userId); |
| | | meditationReport.setCreateTime(LocalDateTime.now()); |
| | | meditationReportMapper.insert(meditationReport); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public void likeQuestion(Long id) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | return ; |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | | |
| | | 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") |
| | | .eq(MeditationQuestionLike::getAppUserId, userId).last("limit 1") |
| | | .oneOpt(); |
| | | if (likeOpt.isPresent()) { |
| | | // 已点赞则取消点赞 |
| | |
| | | } else { |
| | | // 未点赞则点赞 |
| | | MeditationQuestionLike meditationQuestionLike = new MeditationQuestionLike(); |
| | | meditationQuestionLike.setAppUserId(SecurityUtils.getUserId()); |
| | | meditationQuestionLike.setAppUserId(userId); |
| | | meditationQuestionLike.setMeditationQuestionId(id); |
| | | if (meditationQuestionLikeService.save(meditationQuestionLike)) { |
| | | meditationQuestion.setLikeCount(meditationQuestion.getLikeCount() + 1); |