Ver código fonte

feat: EK-2086: Member Portal : Dashboard Article and Ad only show self country.

kevin 3 meses atrás
pai
commit
74b761b432

+ 41 - 2
backendApi/modules/v1/controllers/ArticleController.php

@@ -147,7 +147,26 @@ class ArticleController extends BaseController
         // 获取全部分类
         // 获取全部分类
         $allCategory = ArticleCategory::find()->where('STATUS=1')->asArray()->all();
         $allCategory = ArticleCategory::find()->where('STATUS=1')->asArray()->all();
 
 
-        return static::notice(['allCategory'=>$allCategory]);
+        // 管理员关联国家
+        $admin = Admin::findOne(Yii::$app->user->id);
+        $roleId = $admin->ROLE_ID;
+        if ($roleId == \Yii::$app->params['superAdminRoleId']) {
+            $countries = Countries::find()->asArray()->all();
+        } else {
+            // 关联国家
+            $countries = Countries::find()
+                ->select('COU.ID, COU.CODE, COU.NAME')
+                ->from(['COU' => Countries::tableName()])
+                ->join('INNER JOIN', AdminCountry::tableName() . ' AS ADL', 'ADL.COUNTRY_ID = COU.ID')
+                ->where(['ADL.ADMIN_ID' => $admin->ID])
+                ->asArray()
+                ->all();
+        }
+
+        return static::notice([
+            'allCategory' => $allCategory,
+            'countries' => $countries,
+        ]);
     }
     }
 
 
     /**
     /**
@@ -175,7 +194,27 @@ class ArticleController extends BaseController
         // 获取全部分类
         // 获取全部分类
         $allCategory = ArticleCategory::getAllCategory();
         $allCategory = ArticleCategory::getAllCategory();
         
         
-        return static::notice(['oneData'=>$oneData, 'allCategory'=>$allCategory]);
+        // 管理员关联国家
+        $admin = Admin::findOne(Yii::$app->user->id);
+        $roleId = $admin->ROLE_ID;
+        if ($roleId == \Yii::$app->params['superAdminRoleId']) {
+            $countries = Countries::find()->asArray()->all();
+        } else {
+            // 关联国家
+            $countries = Countries::find()
+                ->select('COU.ID, COU.CODE, COU.NAME')
+                ->from(['COU' => Countries::tableName()])
+                ->join('INNER JOIN', AdminCountry::tableName() . ' AS ADL', 'ADL.COUNTRY_ID = COU.ID')
+                ->where(['ADL.ADMIN_ID' => $admin->ID])
+                ->asArray()
+                ->all();
+        }
+        
+        return static::notice([
+            'oneData' => $oneData, 
+            'allCategory' => $allCategory, 
+            'countries' => $countries
+        ]);
     }
     }
 
 
     /**
     /**