فهرست منبع

feat: EK-856: 管理员增加“Country”属性.

kevinElken 9 ماه پیش
والد
کامیت
de5409969b
1فایلهای تغییر یافته به همراه13 افزوده شده و 12 حذف شده
  1. 13 12
      backendApi/modules/v1/controllers/AdminController.php

+ 13 - 12
backendApi/modules/v1/controllers/AdminController.php

@@ -45,30 +45,31 @@ class AdminController extends BaseController
             'IS_ENABLE' => 'A.IS_ENABLE',
         ]);
 
-        $join = [
-            ['LEFT JOIN', AdminRole::tableName().' AS AR', 'A.ROLE_ID=AR.ID'],
-            ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=A.CREATE_ADMIN'],
-            ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=A.UPDATE_ADMIN'],
-        ];
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+        $condition .= ' AND A.IS_DEL=0';
 
         $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']);
         if (!$isSuper) {
             $adminId = Yii::$app->getUser()->getUserInfo()['id'];
             $adminCountry = AdminCountry::getCountry($adminId);
-            $quotedAdminCountry = array_map(function($item) {
+
+            $adminIds = AdminCountry::find()->select('ADMIN_ID')->where(['in', 'COUNTRY_ID', $adminCountry])->column();
+            $quotedAdminId = array_map(function($item) {
                 return "'" . addslashes($item) . "'";
-            }, $adminCountry);
+            }, $adminIds);
 
-            $join[] = ['INNER JOIN', AdminCountry::tableName() . ' AS AC', "AC.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ") AND AC.ADMIN_ID=A.ID"];
+            $condition .= ' AND A.ID IN (' . implode(',', $quotedAdminId) . ')';
         }
 
-        $condition = $filter['condition'];
-        $condition .= ' AND A.IS_DEL=0';
-        $params = $filter['params'];
         $data = Admin::lists($condition, $params, [
             'select' => 'A.*,AR.ROLE_NAME,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME',
             'from' => Admin::tableName().' AS A',
-            'join' => $join,
+            'join' => [
+                ['LEFT JOIN', AdminRole::tableName().' AS AR', 'A.ROLE_ID=AR.ID'],
+                ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=A.CREATE_ADMIN'],
+                ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=A.UPDATE_ADMIN'],
+            ],
             'orderBy' => 'A.CREATED_AT ASC',
         ]);