Просмотр исходного кода

feat(feedback): 添加反馈回复关联关系和已读状态功能

- 在Feedback模型中添加getReply方法建立与FeedbackReply的一对多关联
- 修改FeedbackRepository的get方法获取反馈信息时同时加载回复数据
- 新增read方法用于更新反馈的已读状态
- 在获取反馈详情时自动标记为已读状态
- 添加相关注释文档说明read方法用途
shichen месяцев назад: 4
Родитель
Сommit
d216051c43

+ 6 - 0
app/common/model/user/Feedback.php

@@ -43,4 +43,10 @@ class Feedback extends BaseModel
43 43
     {
44 44
         return $this->hasOne(FeedBackCategory::class,'feedback_category_id','type');
45 45
     }
46
+
47
+
48
+    public function getReply()
49
+    {
50
+        return $this->hasMany(FeedbackReply::class, 'feedback_id', 'feedback_id');
51
+    }
46 52
 }

+ 17 - 1
app/common/repositories/user/FeedbackRepository.php

@@ -49,11 +49,15 @@ class FeedbackRepository extends BaseRepository
49 49
 
50 50
     public function get( $id)
51 51
     {
52
-        $data = $this->dao->getWhere([$this->dao->getPk() => $id]);
52
+        // 获取反馈信息
53
+        $data = $this->dao->getWhere([$this->dao->getPk() => $id],'*',['getReply']);
53 54
         $type = app()->make(FeedBackCategoryRepository::class)->getWhere(['feedback_category_id' => $data['type']]);
54 55
         $parent = app()->make(FeedBackCategoryRepository::class)->getWhere(['feedback_category_id' => $type['pid']]);
55 56
         $data['type'] = $type['cate_name'];
56 57
         $data['category'] = $parent['cate_name'];
58
+
59
+        // 更改已读状态
60
+        $this->read($id, 'user_read');
57 61
         return $data;
58 62
     }
59 63
 
@@ -76,4 +80,16 @@ class FeedbackRepository extends BaseRepository
76 80
         return FeedbackReply::insert($insert);
77 81
     }
78 82
 
83
+    /**
84
+     * @param $feedbackId
85
+     * @param $type
86
+     * @return void
87
+     * @author 史晨
88
+     * @date 2026/3/17 14:37
89
+     * 更改已读状态
90
+     */
91
+    public function read($feedbackId, $type)
92
+    {
93
+        FeedbackReply::update([$type => 1], ['feedback_id' => $feedbackId]);
94
+    }
79 95
 }