Ver código fonte

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

kevinElken 10 meses atrás
pai
commit
232c671f41

+ 16 - 2
backendApi/modules/v1/controllers/ShopController.php

@@ -8,6 +8,7 @@
 
 namespace backendApi\modules\v1\controllers;
 
+use backendApi\modules\v1\models\AdminCountry;
 use backendApi\modules\v1\models\exportForms\BaShopExportForm;
 use backendApi\modules\v1\models\exportForms\ShopExportForm;
 use backendApi\modules\v1\models\lists\shop\DecOrderList;
@@ -179,6 +180,11 @@ 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);
+
+        $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry));
+
         foreach ($countries as &$country) {
             // 货币
             $country['LOCAL_CURRENCY_NAME'] = $currencies[$country['LOCAL_CURRENCY_ID']]['NAME'] ?? '';
@@ -428,7 +434,11 @@ class ShopController extends BaseController {
             'COUNTRY' => 'O.COUNTRY_ID',
             'IS_AUTO' => 'O.IS_AUTO'
         ]);
-        $condition = ' 1=1 ' . $filter['condition'];
+
+        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
+        $adminCountry = AdminCountry::getCountry($adminId);
+
+        $condition = ' 1=1 ' . $filter['condition'] . ' AND O.COUNTRY_ID IN (' . implode(',', $adminCountry) . ')';
         $params = $filter['params'];
         $condition .= $condition ? ' AND O.IS_DELETE=0' : ' O.IS_DELETE=0';
         $listObj = new OrderList();
@@ -454,7 +464,11 @@ class ShopController extends BaseController {
             'STATUS' => 'O.STATUS',
             'IS_AUTO' => 'O.IS_AUTO'
         ]);
-        $filter['condition'] = !$filter['condition'] ? '1=1 AND O.IS_DELETE=0' : ('O.IS_DELETE=0 ' . $filter['condition']);
+
+        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
+        $adminCountry = AdminCountry::getCountry($adminId);
+
+        $filter['condition'] = !$filter['condition'] ? '1=1 AND O.IS_DELETE=0' : ('O.IS_DELETE=0 ' . $filter['condition']) . ' AND O.COUNTRY_ID IN (' . implode(',', $adminCountry) . ')';
         $form = new ShopExportForm();
         $result = $form->run($filter, \Yii::t('ctx', 'shopOrderListExport')); // 订单列表
         if (!$result) {

+ 16 - 4
backendApi/modules/v1/controllers/UserController.php

@@ -10,6 +10,7 @@ namespace backendApi\modules\v1\controllers;
 
 use backendApi\modules\v1\components\UserAuth;
 use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
 use backendApi\modules\v1\models\exportForms\BaUserExportForm;
 use backendApi\modules\v1\models\exportForms\UserExportForm;
 use backendApi\modules\v1\models\lists\shop\BaUserList;
@@ -144,12 +145,13 @@ class UserController extends BaseController
             ],
             'ADDRESS' => 'U.ADDRESS',
         ]);
-        $condition = $filter['condition'];
-        $params = $filter['params'];
-        $condition .= ' AND UI.DELETED=0 ';
 
         $adminId = Yii::$app->getUser()->getUserInfo()['id'];
-        LoggerTool::info('AdminID : ' . $adminId);
+        $adminCountry = AdminCountry::getCountry($adminId);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+        $condition .= ' AND UI.DELETED=0 AND U.COUNTRY_ID IN (' . implode(',', $adminCountry) . ')';
 
         $listObj = new IndexList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
@@ -205,6 +207,16 @@ class UserController extends BaseController
             'VERIFIED_AT' => 'U.VERIFIED_AT',
             'ALLOW_TRANSFER' => 'UI.ALLOW_TRANSFER',
         ]);
+
+        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
+        $adminCountry = AdminCountry::getCountry($adminId);
+
+        $condition = $filter['condition'] ?? '';
+        $filter['condition'] = $condition . ' AND O.COUNTRY_ID IN (' . implode(',', $adminCountry) . ')';
+
+        $adminId = Yii::$app->getUser()->getUserInfo()['id'];
+        $adminCountry = AdminCountry::getCountry($adminId);
+
         $form = new UserExportForm();
         $result = $form->run($filter, 'Member_List');
         if (!$result) {