فهرست منبع

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

kevinElken 9 ماه پیش
والد
کامیت
de4cc9edec
2فایلهای تغییر یافته به همراه24 افزوده شده و 12 حذف شده
  1. 21 10
      backendApi/modules/v1/controllers/ShopController.php
  2. 3 2
      backendApi/modules/v1/controllers/SiteController.php

+ 21 - 10
backendApi/modules/v1/controllers/ShopController.php

@@ -9,6 +9,7 @@
 namespace backendApi\modules\v1\controllers;
 
 use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use backendApi\modules\v1\models\exportForms\BaShopExportForm;
 use backendApi\modules\v1\models\exportForms\ShopExportForm;
 use backendApi\modules\v1\models\lists\shop\DecOrderList;
@@ -182,11 +183,15 @@ class ShopController extends BaseController {
         $currenciesConversions = CurrencyConversions::getFromCache();
         $currenciesConversions = array_column($currenciesConversions, NULL, 'TO_CURRENCY_ID');
 
-        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
-        $adminCountry = AdminCountry::getCountry($adminId);
+        $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']);
+        if (!$isSuper) {
+            $adminId = Yii::$app->getUser()->getUserInfo()['id'];
+            $adminCountry = AdminCountry::getCountry($adminId);
+
+            $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry));
+            $countries = array_values($countries);
+        }
 
-        $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry));
-        $countries = array_values($countries);
         foreach ($countries as $key => $country) {
             // 货币
             $countries[$key]['LOCAL_CURRENCY_NAME'] = $currencies[$country['LOCAL_CURRENCY_ID']]['NAME'] ?? '';
@@ -437,14 +442,20 @@ class ShopController extends BaseController {
             'IS_AUTO' => 'O.IS_AUTO'
         ]);
 
-        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
-        $adminCountry = AdminCountry::getCountry($adminId);
+        $condition = ' 1=1 ' . $filter['condition'];
 
-        $quotedAdminCountry = array_map(function($item) {
-            return "'" . addslashes($item) . "'";
-        }, $adminCountry);
+        $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) {
+                return "'" . addslashes($item) . "'";
+            }, $adminCountry);
+
+            $condition = ' 1=1 ' . $filter['condition'] . " AND O.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
 
-        $condition = ' 1=1 ' . $filter['condition'] . " AND O.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
         $params = $filter['params'];
         $condition .= $condition ? ' AND O.IS_DELETE=0' : ' O.IS_DELETE=0';
         $listObj = new OrderList();

+ 3 - 2
backendApi/modules/v1/controllers/SiteController.php

@@ -186,8 +186,9 @@ class SiteController extends BaseController
         // 国家
         $countries = Cache::getCountries();
 
-        $filter = \Yii::$app->request->get('filter', 0);
-        if ($filter) {
+//        $filter = \Yii::$app->request->get('filter', 0);
+        $isSuperAdmin = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']);
+        if (!$isSuperAdmin) {
             $adminId = Yii::$app->getUser()->getUserInfo()['id'];
             $adminCountry = AdminCountry::getCountry($adminId);