From b01f752252eaadd1fa31eda6a9ad43146660b721 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 03 四月 2025 23:42:57 +0800
Subject: [PATCH] bug修改

---
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationQuestionServiceImpl.java |   45 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 36 insertions(+), 9 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 4007bbc..b01e626 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,17 +1,23 @@
 package com.xinquan.meditation.service.impl;
 
 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.common.security.service.TokenService;
+import com.xinquan.meditation.mapper.MeditationReportMapper;
+import com.xinquan.meditation.api.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.time.LocalDateTime;
 import java.util.Objects;
 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;
 
 /**
@@ -26,8 +32,13 @@
 @RequiredArgsConstructor
 public class MeditationQuestionServiceImpl extends ServiceImpl<MeditationQuestionMapper, MeditationQuestion> implements MeditationQuestionService {
 
-    private final MeditationQuestionLikeService meditationQuestionLikeService;
+    @Autowired
+    private MeditationQuestionLikeService meditationQuestionLikeService;
+    @Autowired
+    private MeditationReportMapper meditationReportMapper;
 
+    @Autowired
+    private TokenService tokenService;
     /**
      * 举报提问
      *
@@ -36,12 +47,22 @@
      */
     @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(ReportStatusEnum.REPORTED.getCode());
-            meditationQuestion.setReportUserId(SecurityUtils.getUserId());
-            meditationQuestion.setReportContent(content);
+            meditationQuestion.setReportStatus(2);
             this.updateById(meditationQuestion);
+            MeditationReport meditationReport = new MeditationReport();
+            meditationReport.setMeditationId(meditationQuestion.getMeditationId());
+            meditationReport.setQuestionId(meditationQuestion.getId());
+            meditationReport.setReportContent(content);
+            meditationReport.setReportUserId(userId);
+            meditationReport.setCreateTime(LocalDateTime.now());
+            meditationReportMapper.insert(meditationReport);
         }
     }
 
@@ -52,6 +73,12 @@
      */
     @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("提问不存在");
@@ -59,7 +86,7 @@
         // 判断是否已点赞
         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()) {
             // 已点赞则取消点赞
@@ -68,7 +95,7 @@
         } else {
             // 未点赞则点赞
             MeditationQuestionLike meditationQuestionLike = new MeditationQuestionLike();
-            meditationQuestionLike.setAppUserId(SecurityUtils.getUserId());
+            meditationQuestionLike.setAppUserId(userId);
             meditationQuestionLike.setMeditationQuestionId(id);
             if (meditationQuestionLikeService.save(meditationQuestionLike)) {
                 meditationQuestion.setLikeCount(meditationQuestion.getLikeCount() + 1);

--
Gitblit v1.7.1