Browse Source

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

kevin 4 months ago
parent
commit
b8d54c10a5
1 changed files with 21 additions and 0 deletions
  1. 21 0
      backendApi/modules/v1/controllers/AdminController.php

+ 21 - 0
backendApi/modules/v1/controllers/AdminController.php

@@ -66,6 +66,27 @@ class AdminController extends BaseController
             ],
             'orderBy' => 'A.CREATED_AT ASC',
         ]);
+
+        // 遍历查询管理员关联国家,只返回国家CODE AS COUNTRY_CODE
+        foreach ($data['list'] as &$value) {
+            // 跳过超管
+            if ($value['ROLE_ID'] == \Yii::$app->params['superAdminRoleId']) {
+                $value['COUNTRY_CODE'] = '';
+                continue;
+            }
+
+            $countryCode = AdminCountry::find()
+                ->from(AdminCountry::tableName() . ' AS AC')
+                ->join('INNER JOIN', Countries::tableName() . ' AS COU', 'AC.COUNTRY_ID=COU.ID')
+                ->select('COU.CODE AS COUNTRY_CODE')
+                ->where(['COUNTRY_ID' => $value['COUNTRY_ID']])
+                ->where(['ADMIN_ID' => $value['ID']])
+                ->asArray()
+                ->column();
+
+            $value['COUNTRY_CODE'] = implode(',', $countryCode);
+        }
+
         return static::notice($data);
     }