Răsfoiți Sursa

discussion 发送通知

visuddhinanda 1 an în urmă
părinte
comite
809387b07a
1 a modificat fișierele cu 57 adăugiri și 3 ștergeri
  1. 57 3
      api-v8/app/Http/Resources/NotificationResource.php

+ 57 - 3
api-v8/app/Http/Resources/NotificationResource.php

@@ -4,9 +4,13 @@ namespace App\Http\Resources;
 
 use Illuminate\Http\Resources\Json\JsonResource;
 use Illuminate\Support\Facades\Log;
-use App\Http\Api\UserApi;
+
 use App\Models\SentPr;
+use App\Models\Wbw;
+use App\Models\Discussion;
 use App\Models\Sentence;
+
+use App\Http\Api\UserApi;
 use App\Http\Api\PaliTextApi;
 use App\Http\Api\ChannelApi;
 
@@ -33,10 +37,9 @@ class NotificationResource extends JsonResource
             "created_at"=> $this->created_at,
             "updated_at"=> $this->updated_at,
         ];
-
+        $data['channel'] = ChannelApi::getById($this->channel);
         switch ($this->res_type) {
             case 'suggestion':
-                $data['channel'] = ChannelApi::getById($this->channel);
                 $prData = SentPr::where('uid',$this->res_id)->first();
                 if($prData){
                     $link = config('mint.server.dashboard_base_path')."/article/para/{$prData->book_id}-{$prData->paragraph}";
@@ -65,6 +68,57 @@ class NotificationResource extends JsonResource
                     }
                 }
                 break;
+            case 'discussion':
+                    $discussion = Discussion::where('id',$this->res_id)->first();
+                    if($discussion->parent){
+                        $topic = Discussion::where('id',$discussion->parent)->first();
+                    }
+                    if($discussion){
+                        $link = config('mint.server.dashboard_base_path').'/discussion/topic/';
+                        if(isset($topic)){
+                            $link .= "{$topic->id}#{$discussion->id}";
+                        }else{
+                            $link .= "{$discussion->id}";
+                        }
+                        $data['url'] = $link;
+                        //标题
+                        switch ($discussion->res_type) {
+                            case 'sentence':
+                                break;
+                            case 'wbw':
+                                $wbw = Wbw::where('uid',$discussion->res_id)->first();
+                                if($wbw){
+                                    $data['title'] = $wbw->word;
+
+                                }
+
+                                break;
+                            default:
+                                break;
+                        }
+                        /*
+                        {
+                            $path = json_decode(PaliTextApi::getChapterPath($prData->book_id,$prData->paragraph));
+                            if(count($path)>0){
+                                $data['title'] = end($path)->title;
+                                $data['book_title'] = $path[0]->title;
+                            }else{
+                                Log::error('no path data',['pr data'=>$prData]);
+                            }
+                            //内容
+                            $orgContent = Sentence::where('book_id',$prData->book_id)
+                                                    ->where('paragraph',$prData->paragraph)
+                                                    ->where('word_start',$prData->word_start)
+                                                    ->where('word_end',$prData->word_end)
+                                                    ->where('channel_uid',$prData->channel_uid)
+                                                    ->value('content');
+                            $content = '>'. mb_substr($orgContent,0,70,"UTF-8")."\n\n";
+                            $content .= mb_substr($prData->content,0,140,"UTF-8");
+                            $data['content'] = $content;
+                        }
+                        */
+                    }
+                    break;
             default:
                 # code...
                 break;