Bläddra i källkod

miniprogram fix

zhaoyang 1 år sedan
förälder
incheckning
658b4298ed
1 ändrade filer med 15 tillägg och 3 borttagningar
  1. 15 3
      modules/Manage/Http/Controllers/MiniprogramController.php

+ 15 - 3
modules/Manage/Http/Controllers/MiniprogramController.php

@@ -8,13 +8,15 @@ use Modules\Manage\Enmus\MiniprogramType;
 use Modules\Manage\Http\Requests\MiniprogramRequest;
 use Modules\Manage\Http\Requests\MiniprogramUpdateRequest;
 use Modules\Manage\Models\Miniprogram;
+use Modules\Channel\Models\UserHasMiniprograms;
 use Illuminate\Support\Facades\DB;
 use Log;
+use Modules\Channel\Services\User\UserService;
 
 class MiniprogramController extends Controller
 {
 
-    public function __construct(protected readonly Miniprogram $miniprogram)
+    public function __construct(protected readonly Miniprogram $miniprogram,protected readonly UserHasMiniprograms $userHasMiniprograms)
     {
         
     }
@@ -26,6 +28,7 @@ class MiniprogramController extends Controller
      */
     public function index(Request $request)
     {
+        $uid = $this->getLoginUser()->id;
         $name = $request->get('name');
         $play_name = $request->get('play_name');
         $company = $request->get('company');
@@ -45,8 +48,17 @@ class MiniprogramController extends Controller
         if($type){
             $where[] = ['type','=',$type];
         }
-
-        $result = $this->miniprogram->where($where)->orderBy('id','desc')->paginate($page_size);
+        if(UserService::userHasRole($uid,'administrator')){
+            $result = $this->miniprogram->where($where)->orderBy('id','desc')->paginate($page_size);
+        }else{
+            $result = $this->userHasMiniprograms->join('miniprogram','miniprogram.id','=','user_has_miniprograms.miniprogram_id')
+            ->where('user_has_miniprograms.is_enabled',1)
+            ->where('uid',$uid)
+            ->where($where)
+            ->select('miniprogram.*')
+            ->paginate($page_size);
+        }
+       
         foreach($result as $item){
             $item->type_name = MiniprogramType::from($item->type)->name();
             $item->status_name = $item->status == 1 ?'启用':'禁用';