소스 검색

Merge branch 'master' into feature/EK-76

kevinElken 9 달 전
부모
커밋
8a44e99b1a
26개의 변경된 파일642개의 추가작업 그리고 80개의 파일을 삭제
  1. 6 6
      backendApi/config/menu.php
  2. 4 4
      backendApi/config/params.php
  3. 25 19
      backendApi/config/urlManagerRules.php
  4. 161 11
      backendApi/modules/v1/controllers/BonusController.php
  5. 124 0
      backendApi/modules/v1/controllers/ConfigController.php
  6. 26 2
      backendApi/modules/v1/controllers/CurrencyController.php
  7. 114 4
      backendApi/modules/v1/controllers/FinanceController.php
  8. 27 0
      backendApi/modules/v1/controllers/UserController.php
  9. 5 0
      backendApi/modules/v1/models/Admin.php
  10. 8 3
      backendApi/modules/v1/models/lists/bonus/BalanceList.php
  11. 8 4
      backendApi/modules/v1/models/lists/bonus/FlowBonusList.php
  12. 7 2
      backendApi/modules/v1/models/lists/bonus/PerfMonthList.php
  13. 10 5
      backendApi/modules/v1/models/lists/bonus/PerfOrderList.php
  14. 8 1
      backendApi/modules/v1/models/lists/bonus/PeriodBonusList.php
  15. 7 2
      backendApi/modules/v1/models/lists/bonus/UserPerfList.php
  16. 7 2
      backendApi/modules/v1/models/lists/finance/BalanceAuditList.php
  17. 1 1
      backendApi/modules/v1/models/lists/finance/RechargeList.php
  18. 12 2
      backendApi/modules/v1/models/lists/finance/TransferList.php
  19. 7 2
      backendApi/modules/v1/models/lists/user/ChangeHighestEmpLevelList.php
  20. 6 1
      backendApi/modules/v1/models/lists/user/DecLevelList.php
  21. 7 2
      backendApi/modules/v1/models/lists/user/MoveList.php
  22. 1 1
      common/messages/en-US/app.php
  23. 1 1
      common/messages/zh-CN/app.php
  24. 20 0
      common/models/Countries.php
  25. 32 4
      common/models/forms/WithdrawForm.php
  26. 8 1
      console/controllers/BonusController.php

+ 6 - 6
backendApi/config/menu.php

@@ -67,8 +67,8 @@ return [
             ['name'=>'Member level adjustment list', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'dec-level-list', 'routePath'=>'user/dec-level-list', 'show'=>1, 'wiki' => 'memberLevelAdjustmentList'],//会员级别调整列表
             ['name'=>'修改会员级别', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-user-dec-level', 'routePath'=>'user/change-user-dec-level', 'show'=>0,],
             ['name'=>'Modify Stockist level', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-user-dec-role', 'routePath'=>'user/change-user-dec-role', 'show'=>1, 'wiki' => 'modifyStockistLevel'],//修改报单中心级别
-            ['name'=>'会员最高聘级调整', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-user-dec-level', 'routePath'=>'user/change-highest-emp-level-list', 'show'=>1, 'wiki' => 'memberHighestEmpLevelAdjustment'],
-            ['name'=>'修改会员最高聘级', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-user-dec-level', 'routePath'=>'user/change-highest-emp-level', 'show'=>0,],
+            ['name'=>'会员最高聘级调整', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-highest-emp-level-list', 'routePath'=>'user/change-highest-emp-level-list', 'show'=>1, 'wiki' => 'memberHighestEmpLevelAdjustment'],
+            ['name'=>'修改会员最高聘级', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'change-highest-emp-level', 'routePath'=>'user/change-highest-emp-level', 'show'=>0,],
         ]
     ],
     'atlas'=>[
@@ -275,10 +275,10 @@ return [
             ['name'=>'编辑会员级别', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'dec-level-edit', 'routePath'=>'config/dec-level-edit', 'show'=>0,],
             ['name'=>'报单中心级别配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'dec-role', 'routePath'=>'config/dec-role', 'show'=>1, 'wiki' => 'decRoleConfig'],
             ['name'=>'编辑报单中心级别', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'dec-role-edit', 'routePath'=>'config/dec-role-edit', 'show'=>0,],
-            ['name'=>'汇率列表', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'currencies-conversions', 'routePath'=>'currency/currencies-conversions', 'show'=>1,  'wiki' => 'exchangeRateConfig'],
-            ['name'=>'汇率配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'set-currencies-conversions', 'routePath'=>'currency/set-currencies-conversions', 'show'=>0],
-            ['name'=>'运费模板列表', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'transportation', 'routePath'=>'transportation/transportation', 'show'=>1,  'wiki' => 'transportationConfig'],
-            ['name'=>'运费模板设置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'set-transportation', 'routePath'=>'transportation/set-transportation', 'show'=>0],
+            ['name'=>'汇率列表', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'currencies', 'routePath'=>'config/currencies', 'config'=>'config/currencies', 'show'=>1,  'wiki' => 'currenciesConfig'],
+            ['name'=>'汇率配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'set-currencies-conversions', 'config'=>'config/set-currencies-conversions', 'show'=>0],
+            ['name'=>'运费模板', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'transportation', 'routePath'=>'config/transportation', 'show'=>1,  'wiki' => 'transportationConfig'],
+            ['name'=>'运费设置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'set-transportation', 'routePath'=>'config/set-transportation', 'show'=>0],
         ],
     ],
 ];

+ 4 - 4
backendApi/config/params.php

@@ -83,10 +83,10 @@ return [
         'demo/ipayments',
         'article/detail',
         'admin/change-language',
-        'currency/currencies-conversions',
-        'currency/set-currencies-conversions',
-        'transportation/transportation',
-        'transportation/set-transportation',
+//        'currency/currencies-conversions',
+//        'currency/set-currencies-conversions',
+//        'transportation/transportation',
+//        'transportation/set-transportation',
         'bonus/auto-calc',
         'bonus/calc-period',
         'bonus/close-period',

+ 25 - 19
backendApi/config/urlManagerRules.php

@@ -322,6 +322,10 @@ return [
             'POST,GET sms' => 'sms',
             'POST,GET transfer' => 'transfer',
             'POST,GET score' => 'score',
+            'GET currencies' => 'currencies',
+            'POST set-currencies-conversions' => 'set-currencies-conversions',
+            'GET transportation' => 'transportation',
+            'POST set-transportation' => 'set-transportation',
         ],
     ],
     [
@@ -593,23 +597,25 @@ return [
             'GET sync-calc-record/<periodNum>' => 'sync-calc-record',
         ],
     ],
-    [
-        'class' => 'yii\rest\UrlRule',
-        'pluralize' => false,
-        'controller' => 'v1/currency',
-        'extraPatterns' => [
-            'GET currencies' => 'currencies',
-            'GET currencies-conversions' => 'currencies-conversions',
-            'POST set-currencies-conversions' => 'set-currencies-conversions',
-        ],
-    ],
-    [
-        'class' => 'yii\rest\UrlRule',
-        'pluralize' => false,
-        'controller' => 'v1/transportation',
-        'extraPatterns' => [
-            'GET transportation' => 'transportation',
-            'POST set-transportation' => 'set-transportation',
-        ],
-    ],
+//    [
+//        'class' => 'yii\rest\UrlRule',
+//        'pluralize' => false,
+//        'controller' => 'v1/currency',
+//        'extraPatterns' => [
+//            'GET currencies' => 'currencies',
+//            'GET currencies-conversions' => 'currencies-conversions',
+//            'POST set-currencies-conversions' => 'set-currencies-conversions',
+//            'GET transportation' => 'transportation',
+//            'POST set-transportation' => 'set-transportation',
+//        ],
+//    ],
+//    [
+//        'class' => 'yii\rest\UrlRule',
+//        'pluralize' => false,
+//        'controller' => 'v1/transportation',
+//        'extraPatterns' => [
+//            'GET transportation' => 'transportation',
+//            'POST set-transportation' => 'set-transportation',
+//        ],
+//    ],
 ];

+ 161 - 11
backendApi/modules/v1/controllers/BonusController.php

@@ -8,6 +8,8 @@
 
 namespace backendApi\modules\v1\controllers;
 
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use backendApi\modules\v1\models\exportForms\BonusExportForm;
 use backendApi\modules\v1\models\lists\bonus\BalanceList;
 use backendApi\modules\v1\models\lists\bonus\FlowBalanceList;
@@ -197,6 +199,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new FlowBonusList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
         return static::notice($data);
@@ -227,8 +241,23 @@ class BonusController extends BaseController {
             'REMARK' => 'REMARK',
             'TRANSFER_SN' => 'TRANSFER_SN',
         ]);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
-        $result = $form->run($filter, 'Bonus_Flow'); // 奖金流水
+        $result = $form->run(['condition'=>$condition, 'params'=>$params], 'Bonus_Flow'); // 奖金流水
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -311,6 +340,9 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+
+
         $listObj = new FlowBalanceList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
         return static::notice($data);
@@ -836,8 +868,23 @@ class BonusController extends BaseController {
         }
         $period = Period::instance();
         $yearMonth = $period->getYearMonth($periodNum);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND CU.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
-        $result = $form->run(array_merge($filter, ['others'=>['yearMonth'=>$yearMonth]]), 'Member Bonus'); // 往期奖金
+        $result = $form->run(array_merge(['condition'=>$condition, 'params'=>$params, 'others'=>['yearMonth'=>$yearMonth]]), 'Member Bonus'); // 往期奖金
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -894,6 +941,17 @@ class BonusController extends BaseController {
             $params[':PERIOD_NUM'] = $periodNum;
         }
 
+        $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 .= " AND CU.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new PeriodBonusList();
         return $listObj->getList(['condition'=>$condition, 'params'=>$params, 'others'=>['yearMonth'=>$yearMonth]]);
     }
@@ -2066,11 +2124,22 @@ class BonusController extends BaseController {
         $filter = $this->filterCondition([
             'USER_NAME' => 'UI.USER_NAME',
             'REAL_NAME' => 'UI.REAL_NAME',
-            'userIds' => 'UB.USER_ID',
             'IS_DEC' => 'UI.IS_DEC',
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND UI.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new BalanceList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
         return static::notice($data);
@@ -2086,17 +2155,25 @@ class BonusController extends BaseController {
         $filter = $this->filterCondition([
             'USER_NAME' => 'UI.USER_NAME',
             'REAL_NAME' => 'UI.REAL_NAME',
-            'userIds' => 'UB.USER_ID',
-            'BONUS' => 'BONUS',
             'IS_DEC' => 'UI.IS_DEC',
-            'PERIOD_AT' => 'UI.PERIOD_AT',
-            'MOBILE' => 'UI.MOBILE',
-            'TEL' => 'UI.TEL',
-//            'CF' => 'CF',
-//            'LX' => 'LX',
         ]);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND UI.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
-        $result = $form->run($filter, '会员奖金余额');
+        $result = $form->run(['condition'=>$condition, 'params'=>$params], '会员奖金余额');
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -2317,6 +2394,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new PerfOrderList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
 
@@ -2359,6 +2448,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
         $result = $form->run(['condition'=>$condition, 'params'=>$params], '业绩单');
         if (!$result) {
@@ -2427,6 +2528,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new PerfMonthList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
 
@@ -2449,6 +2562,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
         $result = $form->run(['condition'=>$condition, 'params'=>$params], '月业绩');
         if (!$result) {
@@ -2651,6 +2776,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new UserPerfList();
         $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]);
 
@@ -2669,6 +2806,18 @@ class BonusController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new BonusExportForm();
         $result = $form->run(['condition'=>$condition, 'params'=>$params], '用户业绩');
         if (!$result) {
@@ -2682,6 +2831,7 @@ class BonusController extends BaseController {
      *
      */
     public function actionAutoWithdraw() {
+        Cache::setWithdrawLock(0); // todo
         $withdrawLock = Cache::getWithdrawLock();
         if ($withdrawLock!=0){
             return static::notice(Form::formatErrorsForApi('已有进程在生成'), 400);

+ 124 - 0
backendApi/modules/v1/controllers/ConfigController.php

@@ -9,14 +9,22 @@
 namespace backendApi\modules\v1\controllers;
 
 use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use common\helpers\Cache;
 use common\helpers\Date;
 use common\helpers\Form;
+use common\helpers\LoggerTool;
+use common\models\Countries;
+use common\models\Currency;
+use common\models\CurrencyConversions;
 use common\models\DecRole;
 use common\models\forms\ConfigForm;
 use common\models\forms\ConfigPeriodForm;
+use common\models\forms\CurrenciesConversionsForm;
 use common\models\forms\DecLevelForm;
 use common\models\forms\DecRoleForm;
+use common\models\forms\FreeTemplateForm;
 use common\models\forms\RegTypeForm;
 use common\models\forms\DeclarationLevelForm;
 use common\models\forms\EmployLevelForm;
@@ -24,6 +32,7 @@ use common\models\forms\OcrApiForm;
 use common\models\forms\SmsApiForm;
 use common\models\forms\SmsTemplateForm;
 use common\models\forms\WithdrawLevelForm;
+use common\models\FreeTemplate;
 use common\models\OcrApi;
 use common\models\RegType;
 use common\models\DeclarationLevel;
@@ -35,10 +44,18 @@ use Yii;
 use common\models\Config;
 use yii\base\Exception;
 use yii\helpers\Json;
+use yii\web\HttpException;
 
 class ConfigController extends BaseController {
     public $modelClass = Config::class;
 
+    public $currencyModelClass = Currency::class;
+
+    public $currencyConversionsModelClass = CurrencyConversions::class;
+
+    public $freeTemplateModelClass = FreeTemplate::class;
+    public $countiesModelClass = Countries::class;
+
     public function behaviors() {
         return parent::behaviors();
     }
@@ -798,4 +815,111 @@ class ConfigController extends BaseController {
         file_put_contents($path, $content, LOCK_EX);
         return static::notice(Yii::t('ctx', 'successfully'));
     }
+
+    public function actionCurrencies()
+    {
+        // 国家
+        $countries = Cache::getCountries();
+        // 货币
+        $currencies = $this->currencyModelClass::getFromCache();
+        // 汇率
+        $currencyConversion = $this->currencyConversionsModelClass::getFromCache();
+
+        $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);
+        }
+
+        $countriesCurrencyIds = array_column($countries, 'LOCAL_CURRENCY_ID');
+        $currencyConversion = array_filter($currencyConversion, fn($item) => in_array($item['TO_CURRENCY_ID'], $countriesCurrencyIds));
+        $currencyConversion = array_values($currencyConversion);
+        $currencyConversion = array_column($currencyConversion, null, 'TO_CURRENCY_ID');
+
+        $currencies = array_filter($currencies, fn($item) => in_array($item['ID'], $countriesCurrencyIds));
+        $currencies = array_values($currencies);
+
+        foreach ($currencies as &$currency) {
+            $currency['PRODUCT_RATE'] = $currencyConversion[$currency['ID']]['PRODUCT_RATE'] ?? 0;
+            $currency['BONUSES_RATE'] = $currencyConversion[$currency['ID']]['BONUSES_RATE'] ?? 0;
+        }
+
+        return static::notice(['data' => $currencies]);
+    }
+
+    /**
+     * @throws \yii\db\Exception
+     * @throws HttpException
+     */
+    public function actionSetCurrenciesConversions()
+    {
+        if (\Yii::$app->request->isPost) {
+            $formModel = new CurrenciesConversionsForm();
+            $formModel->scenario = 'setCurrenciesConversions';
+            if ($formModel->load(\Yii::$app->request->post(), '') && $formModel->setCurrenciesConversions()) {
+                // 更新缓存
+                $this->currencyConversionsModelClass::updateToCache();
+
+                return static::notice(\Yii::t('ctx', 'successfully'));
+            } else {
+                return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
+
+            }
+        }
+
+        return static::notice(\Yii::t('ctx', 'illegalRequest'));
+    }
+
+    public function actionTransportation()
+    {
+        // 国家列表
+        $countries = $this->countiesModelClass::getFromCache();
+        // 运费列表
+        $transportation = $this->freeTemplateModelClass::getFromCache();
+
+        $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);
+            $countriesId = array_column($countries, 'ID');
+
+            $transportation = array_filter($transportation, fn($item) => in_array($item['country_id'], $countriesId));
+            $transportation = array_values($transportation);
+        }
+
+        $transportation = array_column($transportation, NULL, 'country_id');
+
+        foreach ($countries as &$country) {
+            $country['freight'] = $transportation[$country['ID']]['freight'] ?? 0;
+            $country['free_shipping'] = $transportation[$country['ID']]['free_shipping'] ?? 0;
+            $country['currency'] = $this->currencyModelClass::getById($country['LOCAL_CURRENCY_ID']);
+        }
+
+        return static::notice(['data' => $countries]);
+    }
+
+    public function actionSetTransportation()
+    {
+        if (\Yii::$app->request->isPost) {
+            $formModel = new FreeTemplateForm();
+            $formModel->scenario = 'setTransportation';
+            if ($formModel->load(\Yii::$app->request->post(), '') && $formModel->setTransportation()) {
+                // 更新缓存
+                $this->modelClass::updateToCache();
+
+                return static::notice(\Yii::t('ctx', 'successfully'));
+            } else {
+                return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
+
+            }
+        }
+
+        return static::notice(\Yii::t('ctx', 'illegalRequest'));
+    }
 }

+ 26 - 2
backendApi/modules/v1/controllers/CurrencyController.php

@@ -2,10 +2,14 @@
 
 namespace backendApi\modules\v1\controllers;
 
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
+use common\helpers\Cache;
 use common\helpers\Form;
 use common\models\Currency;
 use common\models\CurrencyConversions;
 use common\models\forms\CurrenciesConversionsForm;
+use Yii;
 use yii\db\Exception;
 use yii\web\HttpException;
 
@@ -23,10 +27,30 @@ class CurrencyController extends BaseController
 
     public function actionCurrenciesConversions()
     {
-        // 货币列表
+        // 国家
+        $countries = Cache::getCountries();
+        // 货币
         $currencies = $this->modelClass::getFromCache();
-        // 货币汇率配置
+        // 汇率配置
         $currencyConversion = $this->currencyConversionsModelClass::getFromCache();
+
+        $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);
+            $countriesId = array_column($countries, 'ID');
+
+            $currencies = array_filter($currencies, fn($currency) => in_array($currency['ID'], $countriesId));
+            $currencies = array_values($currencies);
+            $currenciesId = array_column($currencies, 'ID');
+
+            $currencyConversion = array_filter($currencyConversion, fn($conversion) => in_array($conversion['TO_CURRENCY_ID'], $currenciesId));
+            $currencyConversion = array_values($currencyConversion);
+        }
+
         $currencyConversion = array_column($currencyConversion, NULL, 'TO_CURRENCY_ID');
 
         foreach ($currencies as &$currency) {

+ 114 - 4
backendApi/modules/v1/controllers/FinanceController.php

@@ -9,6 +9,8 @@
 namespace backendApi\modules\v1\controllers;
 
 use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use backendApi\modules\v1\models\exportForms\FinanceExportForm;
 use backendApi\modules\v1\models\lists\finance\BalanceAuditList;
 use backendApi\modules\v1\models\lists\finance\HistoryBonusList;
@@ -93,6 +95,18 @@ class FinanceController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new BalanceAuditList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
         return static::notice($data);
@@ -123,8 +137,23 @@ class FinanceController extends BaseController {
             'CREATE_ADMIN_NAME' => 'ADMC.ADMIN_NAME',
             'AUDIT_ADMIN_NAME' => 'ADMU.ADMIN_NAME',
         ]);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new FinanceExportForm();
-        $result = $form->run($filter, Yii::t('ctx', 'memberEcoinAdjustmentListFileName')); // 会员余额调整列表
+        $result = $form->run(['condition' => $condition, 'params' => $params], Yii::t('ctx', 'memberEcoinAdjustmentListFileName')); // 会员余额调整列表
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -273,6 +302,18 @@ class FinanceController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new TransferList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
         return static::notice($data);
@@ -305,8 +346,23 @@ class FinanceController extends BaseController {
             'PERIOD_NUM' => 'PERIOD_NUM',
             'REMARK' => 'REMARK',
         ]);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new FinanceExportForm();
-        $result = $form->run($filter, Yii::t('ctx', 'financeControllerTransferListExport')); // 转账列表
+        $result = $form->run(['condition' => $condition, 'params' => $params], Yii::t('ctx', 'financeControllerTransferListExport')); // 转账列表
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -330,6 +386,18 @@ class FinanceController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new WithdrawList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
 
@@ -453,8 +521,23 @@ class FinanceController extends BaseController {
                  $filter['condition'] .= " AND W.WITHDRAW_PERIOD_NUM = $periodNum";
             }
         }
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new FinanceExportForm();
-        $result = $form->run($filter, Yii::t('ctx', 'exportWithdrawApplyExcelName')); // 提现申请
+        $result = $form->run(['condition' => $condition, 'params' => $params], Yii::t('ctx', 'exportWithdrawApplyExcelName')); // 提现申请
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }
@@ -1084,6 +1167,18 @@ class FinanceController extends BaseController {
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new RechargeList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
         return static::notice($data);
@@ -1104,8 +1199,23 @@ class FinanceController extends BaseController {
             'BANK_NO' => 'R.BANK_NO',
             'CREATED_AT' => 'R.CREATED_AT',
         ]);
+
+        $condition = $filter['condition'];
+        $params = $filter['params'];
+
+        $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 .= " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $form = new FinanceExportForm();
-        $result = $form->run($filter, 'Recharge'); // 充值申请
+        $result = $form->run(['condition' => $condition, 'params' => $params], 'Recharge'); // 充值申请
         if (!$result) {
             return static::notice(Form::formatErrorsForApi($form->getErrors()), 400);
         }

+ 27 - 0
backendApi/modules/v1/controllers/UserController.php

@@ -739,6 +739,18 @@ class UserController extends BaseController
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND CU.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new MoveList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
         return static::notice($data);
@@ -921,6 +933,9 @@ class UserController extends BaseController
             $userInfo['CASH'] = Cash::getAvailableBalance($userInfo['ID']);
             $userInfo['RECONSUME_POINTS'] = Balance::getBalanceReconsumePoints($userInfo['ID']);
             $userInfo['EXCHANGE_POINTS'] = Balance::getBalanceExchangePoints($userInfo['ID']);
+            $userInfo['country'] = Countries::getNameById($userInfo['COUNTRY_ID']);
+            $userInfo['countryCode'] = Countries::getCodeById($userInfo['COUNTRY_ID']);
+
             return static::notice($userInfo);
         }else{
             return static::notice('Member number does not exist', 400);//会员编号不存在
@@ -2459,6 +2474,18 @@ class UserController extends BaseController
         ]);
         $condition = $filter['condition'];
         $params = $filter['params'];
+
+        $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 .= " AND CU.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         $listObj = new ChangeHighestEmpLevelList();
         $data = $listObj->getList(['condition' => $condition, 'params' => $params]);
 

+ 5 - 0
backendApi/modules/v1/models/Admin.php

@@ -132,6 +132,11 @@ class Admin extends ActiveRecord
         return $data ? $data['ADMIN_NAME'] : null;
     }
 
+    public static function getRoleIdById($id){
+        $data = self::findOneAsArray('ID=:ID', [':ID' => $id], 'ROLE_ID');
+        return $data ? $data['ROLE_ID'] : null;
+    }
+
     /**
      * 操作日志记录条件
      * @return array

+ 8 - 3
backendApi/modules/v1/models/lists/bonus/BalanceList.php

@@ -6,6 +6,7 @@ use common\helpers\user\Info;
 use common\libs\dataList\column\Price;
 use common\libs\dataList\column\YesNo;
 use common\libs\dataList\DataListInterface;
+use common\models\Countries;
 use common\models\User;
 use common\models\UserBind;
 use common\models\UserBonus;
@@ -34,13 +35,14 @@ class BalanceList extends \common\libs\dataList\DataList implements DataListInte
     {
         $this->condition .= ' AND UI.STATUS=1 AND I.LAST_LOGIN_AT>=1620748800';
         $this->listData = UserBonus::lists($this->condition, $this->params, [
-            'select' => 'UB.*,UI.*,UW.CASH, UP.AMOUNTS AS PRP',
+            'select' => 'UB.*,UI.*,UW.CASH, UP.AMOUNTS AS PRP, C.NAME AS COUNTRY',
             'from' => UserBonus::tableName() . ' AS UB',
             'join' => [
-                ['LEFT JOIN', User::tableName() . ' AS UI', 'UI.ID=UB.USER_ID'],
+                ['INNER JOIN', User::tableName() . ' AS UI', 'UI.ID=UB.USER_ID'],
                 ['LEFT JOIN', UserWallet::tableName() . ' AS UW', 'UW.USER_ID=UB.USER_ID'],
                 ['LEFT JOIN', UserInfo::tableName() . ' AS I', 'I.USER_ID=UB.USER_ID'],
-                ['LEFT JOIN', "(SELECT USER_ID,SUM(AMOUNTS) AS AMOUNTS FROM AR_USER_PERFORMANCE WHERE STATUS_ID<30 GROUP BY USER_ID) UP", 'UW.USER_ID=UP.USER_ID']
+                ['LEFT JOIN', "(SELECT USER_ID,SUM(AMOUNTS) AS AMOUNTS FROM AR_USER_PERFORMANCE WHERE STATUS_ID<30 GROUP BY USER_ID) UP", 'UW.USER_ID=UP.USER_ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'UI.COUNTRY_ID=C.ID'],
             ],
             'orderBy' => 'UB.CREATED_AT ASC, UB.ID ASC',
             'page' => $this->page,
@@ -74,6 +76,9 @@ class BalanceList extends \common\libs\dataList\DataList implements DataListInte
                         'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'IS_DEC' => [
                     'header' => \Yii::t('ctx', 'whetherStockist'), // 是否报单中心
                     'value' => function($row) {

+ 8 - 4
backendApi/modules/v1/models/lists/bonus/FlowBonusList.php

@@ -8,9 +8,11 @@ use common\helpers\user\Info;
 use common\libs\dataList\column\Price;
 use common\libs\dataList\column\YesNo;
 use common\libs\dataList\DataListInterface;
+use common\models\Countries;
 use common\models\DealType;
 use common\models\FlowBonus;
 use common\libs\dataList\column\DateTime;
+use common\models\User;
 use Yii;
 
 class FlowBonusList extends \common\libs\dataList\DataList implements DataListInterface {
@@ -28,18 +30,17 @@ class FlowBonusList extends \common\libs\dataList\DataList implements DataListIn
      */
     public function dataHandle() {
         $this->listData = FlowBonus::lists($this->condition, $this->params, [
-            'select' => 'FB.*,U.USER_NAME,U.REAL_NAME,U.IS_DEC',
+            'select' => 'FB.*,U.USER_NAME,U.REAL_NAME,U.IS_DEC, C.NAME AS COUNTRY',
             'orderBy' => 'FB.CREATED_AT DESC,FB.SORT DESC,FB.AUTO_SORT DESC,FB.ID DESC',
             'from' => FlowBonus::tableName() . ' AS FB',
             'join' => [
-                ['LEFT JOIN', \common\models\User::tableName() . ' AS U', 'FB.USER_ID=U.ID'],
+                ['INNER JOIN', User::tableName() . ' AS U', 'FB.USER_ID=U.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
             ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
         ]);
         foreach ($this->listData['list'] as $key => $value) {
-            //$userInfo = Info::baseInfoZh($value['USER_ID']);
-            //$this->listData['list'][$key] = array_merge($userInfo, $value);
             $this->listData['list'][$key]['DEAL_TYPE_NAME'] = DealType::getAllTypesForShow()[$value['DEAL_TYPE_ID']]['TYPE_NAME'] ?? '';
             $this->listData['list'][$key]['LAST_DEC_LV_NAME'] = Cache::getDecLevelConfig()[$value['LAST_DEC_LV']]['LEVEL_NAME'] ?? '';
             $this->listData['list'][$key]['LAST_EMP_LV_NAME'] = Cache::getEmpLevelConfig()[$value['LAST_EMP_LV']]['LEVEL_NAME'] ?? '';
@@ -101,6 +102,9 @@ class FlowBonusList extends \common\libs\dataList\DataList implements DataListIn
                         'tag' => ['type' => 'success', 'size' => 'small', 'class' => 'no-border']
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'LAST_DEC_LV_NAME' => [
                     'header' => Yii::t('ctx', 'memberLevel'), // 会员级别
                     'headerOther' => [

+ 7 - 2
backendApi/modules/v1/models/lists/bonus/PerfMonthList.php

@@ -4,6 +4,7 @@ namespace backendApi\modules\v1\models\lists\bonus;
 use common\helpers\Cache;
 use common\helpers\user\Info;
 use common\models\CalcBonusBSDefault;
+use common\models\Countries;
 use common\models\PerfMonth;
 use common\models\User as modelUser;
 use common\libs\dataList\column\Price;
@@ -29,12 +30,13 @@ class PerfMonthList extends \common\libs\dataList\DataList implements DataListIn
     public function dataHandle()
     {
         $data = PerfMonth::lists($this->condition, $this->params, [
-            'select'=>'PM.*, U.USER_NAME, U.REAL_NAME,RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME',
+            'select'=>'PM.*, U.USER_NAME, U.REAL_NAME,RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME, C.NAME AS COUNTRY',
             'from' => PerfMonth::tableName().' AS PM',
             'join' => [
-                ['LEFT JOIN', modelUser::tableName() . ' AS U', 'PM.USER_ID=U.ID'],
+                ['INNER JOIN', modelUser::tableName() . ' AS U', 'PM.USER_ID=U.ID'],
                 ['LEFT JOIN', UserInfo::tableName() . ' AS UI', 'PM.USER_ID=UI.USER_ID'],
                 ['LEFT JOIN', modelUser::tableName() . ' AS RU', 'UI.REC_UID=RU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
             ],
             'orderBy' => 'PM.CREATED_AT DESC, PM.ID DESC',
             'page' => $this->page,
@@ -74,6 +76,9 @@ class PerfMonthList extends \common\libs\dataList\DataList implements DataListIn
                         'width' => '150',
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'REC_USER_NAME' => [
                     'header' => Yii::t('ctx', 'recommenderNo'), // 推荐人编号
                     'headerOther' => [

+ 10 - 5
backendApi/modules/v1/models/lists/bonus/PerfOrderList.php

@@ -3,6 +3,7 @@ namespace backendApi\modules\v1\models\lists\bonus;
 
 use backendApi\modules\v1\models\Admin;
 use backendApi\modules\v1\models\User;
+use common\models\Countries;
 use common\models\User as modelUser;
 use common\helpers\Cache;
 use common\helpers\user\Info;
@@ -36,10 +37,11 @@ class PerfOrderList extends \common\libs\dataList\DataList implements DataListIn
     public function dataHandle()
     {
         $data = PerfOrder::lists($this->condition, $this->params, [
-            'select'=>'PO.*, U.USER_NAME, U.REAL_NAME',
+            'select'=>'PO.*, U.USER_NAME, U.REAL_NAME, C.NAME AS COUNTRY',
             'from' => PerfOrder::tableName().' AS PO',
             'join' => [
-                ['LEFT JOIN', modelUser::tableName() . ' AS U', 'PO.USER_ID=U.ID'],
+                ['INNER JOIN', modelUser::tableName() . ' AS U', 'PO.USER_ID=U.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
             ],
             'orderBy' => 'PO.CREATED_AT DESC, PO.ID DESC',
             'page' => $this->page,
@@ -63,7 +65,7 @@ class PerfOrderList extends \common\libs\dataList\DataList implements DataListIn
                 'PERIOD_NUM' => [
                     'header' => Yii::t('ctx', 'payCycle'), // 结算期数
                     'headerOther' => [
-                        'width' => '140',
+                        'width' => '120',
                     ],
                 ],
                 'SN' => [
@@ -72,13 +74,13 @@ class PerfOrderList extends \common\libs\dataList\DataList implements DataListIn
                         return "\t".$row['SN'];
                     },
                     'headerOther' => [
-                        'width' => '250',
+                        'width' => '220',
                     ],
                 ],
                 'DEC_TYPE' => [
                     'header' =>  Yii::t('ctx', 'saleType'), // 业绩单类型
                     'headerOther' => [
-                        'width' => '130',
+                        'width' => '160',
                     ],
                     'value' => function($row){
                         $decTypes = [
@@ -109,6 +111,9 @@ class PerfOrderList extends \common\libs\dataList\DataList implements DataListIn
                         'width' => '150',
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'LAST_REC_USER_NAME' => [
                     'header' => Yii::t('ctx', 'sponsorNoAtSettlement'), // 结算时开拓者编号
                     'headerOther' => [

+ 8 - 1
backendApi/modules/v1/models/lists/bonus/PeriodBonusList.php

@@ -6,10 +6,12 @@ use common\helpers\Tool;
 use common\helpers\user\Info;
 use common\libs\dataList\DataListInterface;
 use common\models\CalcBonus;
+use common\models\Countries;
 use common\models\DeclarationLevel;
 use common\models\EliteLevel;
 use common\models\EmployLevel;
 use common\models\Period;
+use common\models\User;
 use common\models\UserInfo;
 use Yii;
 
@@ -31,11 +33,13 @@ class PeriodBonusList extends \common\libs\dataList\DataList implements DataList
     {
         $yearMonth = $this->others['yearMonth'];
         $this->listData = CalcBonus::lists($this->condition, $this->params, [
-            'select'=>'CB.*,UI.CON_UID,UI.REC_UID,PO.CALC_YEAR,PO.CALC_MONTH',
+            'select'=>'CB.*,UI.CON_UID,UI.REC_UID,PO.CALC_YEAR,PO.CALC_MONTH, C.NAME AS COUNTRY',
             'from' => CalcBonus::tableName().' AS CB',
             'join' => [
                 ['INNER JOIN', UserInfo::tableName() . ' AS UI', 'CB.USER_ID=UI.USER_ID'],
                 ['INNER JOIN', Period::tableName() . ' AS PO', 'PO.PERIOD_NUM=CB.PERIOD_NUM'],
+                ['INNER JOIN', User::tableName() . ' AS CU', 'UI.USER_ID=CU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'CU.COUNTRY_ID=C.ID'],
             ],
             'yearMonth' => $yearMonth,
             'orderBy' => 'CB.CREATED_AT DESC, CB.ID DESC',
@@ -97,6 +101,9 @@ class PeriodBonusList extends \common\libs\dataList\DataList implements DataList
                         'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'LAST_DEC_LV_NAME' => [
                     'header' => \Yii::t('ctx', 'PCMemberLevel'), // 结算时会员级别
                     'headerOther' => [

+ 7 - 2
backendApi/modules/v1/models/lists/bonus/UserPerfList.php

@@ -3,6 +3,7 @@ namespace backendApi\modules\v1\models\lists\bonus;
 
 use common\helpers\Cache;
 use common\helpers\user\Info;
+use common\models\Countries;
 use common\models\PerfMonth;
 use common\models\User as modelUser;
 use common\libs\dataList\column\Price;
@@ -29,10 +30,11 @@ class UserPerfList extends \common\libs\dataList\DataList implements DataListInt
     public function dataHandle()
     {
         $data = UserPerf::lists($this->condition, $this->params, [
-            'select'=>'UP.*, U.USER_NAME, U.REAL_NAME',
+            'select'=>'UP.*, U.USER_NAME, U.REAL_NAME, C.NAME AS COUNTRY',
             'from' => UserPerf::tableName().' AS UP',
             'join' => [
-                ['LEFT JOIN', modelUser::tableName() . ' AS U', 'UP.USER_ID=U.ID'],
+                ['INNER JOIN', modelUser::tableName() . ' AS U', 'UP.USER_ID=U.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
             ],
             'orderBy' => 'UP.ID DESC',
             'page' => $this->page,
@@ -60,6 +62,9 @@ class UserPerfList extends \common\libs\dataList\DataList implements DataListInt
                         'width' => '200',
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'PV_PCS' => [
                     'header' => Yii::t('ctx', 'personalPerformance'), // 个人业绩
                     'headerOther' => [

+ 7 - 2
backendApi/modules/v1/models/lists/finance/BalanceAuditList.php

@@ -9,6 +9,7 @@ use common\libs\dataList\column\DateTime;
 use common\libs\dataList\column\YesNo;
 use common\libs\dataList\DataListInterface;
 use common\models\BalanceAudit;
+use common\models\Countries;
 use common\models\DealType;
 use common\models\User;
 use Yii;
@@ -28,13 +29,14 @@ class BalanceAuditList extends \common\libs\dataList\DataList implements DataLis
      */
     public function dataHandle() {
         $this->listData = BalanceAudit::lists($this->condition, $this->params, [
-            'select' => 'BA.*,U.USER_NAME,U.REAL_NAME,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME AUDIT_ADMIN_NAME',
+            'select' => 'BA.*,U.USER_NAME,U.REAL_NAME,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME AUDIT_ADMIN_NAME, C.NAME AS COUNTRY',
             'orderBy' => 'BA.CREATED_AT DESC, BA.ID DESC',
             'from' => BalanceAudit::tableName() . ' AS BA',
             'join' => [
-                ['LEFT JOIN', User::tableName() . ' AS U', 'BA.USER_ID=U.ID'],
+                ['INNER JOIN', User::tableName() . ' AS U', 'BA.USER_ID=U.ID'],
                 ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'BA.UPDATE_ADMIN_ID=ADMC.ID'],
                 ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'BA.AUDIT_ADMIN_ID=ADMU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
             ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
@@ -71,6 +73,9 @@ class BalanceAuditList extends \common\libs\dataList\DataList implements DataLis
                         'width' => '120',
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'LAST_DEC_LV_NAME' => [
                     'header' => Yii::t('ctx', 'modelListFinanceBalanceAuditListMemberLevel'), // 会员级别
                     'headerOther' => [

+ 1 - 1
backendApi/modules/v1/models/lists/finance/RechargeList.php

@@ -32,7 +32,7 @@ class RechargeList extends \common\libs\dataList\DataList implements DataListInt
             'from' => Recharge::tableName() . ' AS R',
             'join' => [
                 ['LEFT JOIN', UserInfo::tableName() . ' AS UI', 'UI.USER_ID=R.USER_ID'],
-                ['LEFT JOIN', USER::tableName() . ' AS U', 'U.ID=R.USER_ID'],
+                ['INNER JOIN', USER::tableName() . ' AS U', 'U.ID=R.USER_ID'],
                 ['LEFT JOIN', OpenBank::tableName() . ' AS OB', 'OB.BANK_CODE=R.OPEN_BANK'],
                 ['LEFT JOIN', Admin::tableName() . ' AS ADMA', 'ADMA.ID=R.AUDIT_ADMIN'],
                 ['LEFT JOIN', Countries::tableName() . ' AS CN', 'U.COUNTRY_ID=CN.ID'],

+ 12 - 2
backendApi/modules/v1/models/lists/finance/TransferList.php

@@ -12,6 +12,7 @@ use common\libs\dataList\column\DateTime;
 use common\libs\dataList\column\YesNo;
 use common\libs\dataList\DataListInterface;
 use common\models\BalanceAudit;
+use common\models\Countries;
 use common\models\DealType;
 use common\models\forms\ReconsumeForm;
 use common\models\PerfAudit;
@@ -19,6 +20,7 @@ use common\models\ReconsumeAudit;
 use common\models\ReconsumePool;
 use common\models\DecRole;
 use common\models\Transfer;
+use common\models\User;
 use common\models\UserInfo;
 use common\models\UserSystem;
 use common\models\YearHighestEmpLv;
@@ -39,8 +41,13 @@ class TransferList extends \common\libs\dataList\DataList implements DataListInt
      */
     public function dataHandle() {
         $this->listData = Transfer::lists($this->condition, $this->params, [
-            'orderBy' => 'CREATED_AT DESC, ID DESC',
-            'from' => Transfer::tableName(),
+            'select' => 'BA.*, C.NAME AS COUNTRY',
+            'orderBy' => 'BA.CREATED_AT DESC, BA.ID DESC',
+            'from' => Transfer::tableName() . ' AS BA',
+            'join' => [
+                ['INNER JOIN', User::tableName() . ' AS U', 'BA.OUT_UID=U.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'U.COUNTRY_ID=C.ID'],
+            ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
         ]);
@@ -79,6 +86,9 @@ class TransferList extends \common\libs\dataList\DataList implements DataListInt
                         'width' => '120',
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'LAST_OUT_DEC_LV_NAME' => [
                     'header' => Yii::t('ctx', 'modelListFinanceTranserListLastOutDecLvName'), // 转出主体会员级别
                     'headerOther' => [

+ 7 - 2
backendApi/modules/v1/models/lists/user/ChangeHighestEmpLevelList.php

@@ -4,6 +4,7 @@ namespace backendApi\modules\v1\models\lists\user;
 use backendApi\modules\v1\models\Admin;
 use common\helpers\Cache;
 use common\libs\dataList\DataListInterface;
+use common\models\Countries;
 use common\models\HighestEmpLevelLog;
 use common\models\User;
 use common\libs\dataList\column\DateTime;
@@ -25,12 +26,13 @@ class ChangeHighestEmpLevelList extends \common\libs\dataList\DataList implement
     public function dataHandle()
     {
         $this->listData = HighestEmpLevelLog::lists($this->condition, $this->params, [
-            'select' => 'LL.*, CU.USER_NAME, ADM.ADMIN_NAME',
+            'select' => 'LL.*, CU.USER_NAME, ADM.ADMIN_NAME, C.NAME AS COUNTRY',
             'orderBy' => 'LL.CREATED_AT DESC, LL.ID DESC',
             'from' => HighestEmpLevelLog::tableName() . ' AS LL',
             'join' => [
                 ['LEFT JOIN', Admin::tableName() . ' AS ADM', 'LL.ADMIN_ID=ADM.ID'],
-                ['LEFT JOIN', User::tableName() . ' AS CU', 'LL.USER_ID=CU.ID'],
+                ['INNER JOIN', User::tableName() . ' AS CU', 'LL.USER_ID=CU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'CU.COUNTRY_ID=C.ID'],
             ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
@@ -50,6 +52,9 @@ class ChangeHighestEmpLevelList extends \common\libs\dataList\DataList implement
                 'USER_NAME' => [
                     'header' => Yii::t('ctx', 'memberCode'),
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'FROM_HIGHEST_EMP_LV_NAME' => [
                     'header' => Yii::t('ctx', 'levelBeforeModification'),
                     'value' => function($row) use($empLevelConfig) {

+ 6 - 1
backendApi/modules/v1/models/lists/user/DecLevelList.php

@@ -4,6 +4,7 @@ namespace backendApi\modules\v1\models\lists\user;
 use backendApi\modules\v1\models\Admin;
 use common\helpers\Cache;
 use common\libs\dataList\DataListInterface;
+use common\models\Countries;
 use common\models\DecLevelLog;
 use common\models\User;
 use common\models\UserInfo;
@@ -27,12 +28,13 @@ class DecLevelList extends \common\libs\dataList\DataList implements DataListInt
     public function dataHandle()
     {
         $this->listData = DecLevelLog::lists($this->condition, $this->params, [
-            'select' => 'LL.*, CU.USER_NAME, ADM.ADMIN_NAME',
+            'select' => 'LL.*, CU.USER_NAME, ADM.ADMIN_NAME, C.NAME AS COUNTRY',
             'orderBy' => 'LL.CREATED_AT DESC, LL.ID DESC',
             'from' => DecLevelLog::tableName() . ' AS LL',
             'join' => [
                 ['LEFT JOIN', Admin::tableName() . ' AS ADM', 'LL.ADMIN_ID=ADM.ID'],
                 ['INNER JOIN', User::tableName() . ' AS CU', 'LL.USER_ID=CU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'CU.COUNTRY_ID=C.ID'],
             ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
@@ -53,6 +55,9 @@ class DecLevelList extends \common\libs\dataList\DataList implements DataListInt
                     'header' => Yii::t('ctx', 'memberCode'),
                     'headerOther' => ['minWidth' => '120'],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'FROM_DEC_LV_NAME' => [
                     'header' => Yii::t('ctx', 'levelBeforeModification'),
                     'headerOther' => ['minWidth' => '110'],

+ 7 - 2
backendApi/modules/v1/models/lists/user/MoveList.php

@@ -6,6 +6,7 @@ use common\helpers\Cache;
 use common\helpers\http\BackendToFrontendApi;
 use common\helpers\user\Info;
 use common\libs\dataList\DataListInterface;
+use common\models\Countries;
 use common\models\DecRole;
 use common\models\OpenBank;
 use common\models\Region;
@@ -36,15 +37,16 @@ class MoveList extends \common\libs\dataList\DataList implements DataListInterfa
         $this->listData = User::lists($this->condition, $this->params, [
             'select' => 'UM.*,
                 CU.USER_NAME MOVE_USER_NAME,CU.REAL_NAME MOVE_REAL_NAME,FUI.USER_NAME FROM_USER_NAME,TUI.USER_NAME TO_USER_NAME,ADMC.ADMIN_NAME MOVE_ADMIN_NAME,ADMU.ADMIN_NAME AUDIT_ADMIN_NAME
-                ',
+                , C.NAME AS COUNTRY',
             'orderBy' => 'UM.CREATED_AT DESC, UM.ID DESC',
             'from' => UserMove::tableName() . ' AS UM',
             'join' => [
-                ['LEFT JOIN', User::tableName() . ' AS CU', 'UM.USER_ID=CU.ID'],
+                ['INNER JOIN', User::tableName() . ' AS CU', 'UM.USER_ID=CU.ID'],
                 ['LEFT JOIN', UserInfo::tableName() . ' AS FUI', 'UM.FROM_UID=FUI.USER_ID'],
                 ['LEFT JOIN', UserInfo::tableName() . ' AS TUI', 'UM.TO_UID=TUI.USER_ID'],
                 ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'UM.MOVE_ADMIN_ID=ADMC.ID'],
                 ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'UM.AUDIT_ADMIN_ID=ADMU.ID'],
+                ['INNER JOIN', Countries::tableName() . ' AS C', 'CU.COUNTRY_ID=C.ID'],
             ],
             'page' => $this->page,
             'pageSize' => $this->pageSize,
@@ -71,6 +73,9 @@ class MoveList extends \common\libs\dataList\DataList implements DataListInterfa
                         'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
                     ],
                 ],
+                'COUNTRY' => [
+                    'header' => Yii::t('ctx', 'country'),
+                ],
                 'FROM_USER_NAME' => [
                     'header' => Yii::t('ctx', 'uperCodeBeforeMoving'),
                     'headerOther' => ['width' => '120'],

+ 1 - 1
common/messages/en-US/app.php

@@ -231,7 +231,7 @@ return [
     'decRegistrationEmailContent' => "
         <p>Welcome to Elken Global!</p>
         <p>Congratulations on successfully joining the Elken family! We are committed to empowering you to grow and succeed.</p>  
-        <p>Access your back office here: <a href='https://ngds.elken.com'>https://ngds.elken.com</a></p>
+        <p>Access your back office here: <a href='https://meads.elken.com'>https://ngds.elken.com</a></p>
         <p>Username: [{userName}]</p>
         <p>Password: {passWord} (Please change it for security reasons.)</p>
         <p>To kickstart your success journey, explore essential resources, videos, and guides here: <a href='https://bit.ly/ElkenWelcomeKit'>https://bit.ly/ElkenWelcomeKit</a></p>

+ 1 - 1
common/messages/zh-CN/app.php

@@ -236,7 +236,7 @@ return [
     'decRegistrationEmailContent' => "
         <p>欢迎来到Elken Global!</p>
         <p>祝贺您成功加入Elken大家庭!我们致力于赋予您成长和成功的能力。</p>  
-        <p>访问您的后台: <a href='https://ngds.elken.com'>https://ngds.elken.com</a></p>
+        <p>访问您的后台: <a href='https://meads.elken.com'>https://ngds.elken.com</a></p>
         <p>用户名: [{userName}]</p>
         <p>密码: {passWord} (出于安全原因,请更改密码。)</p>
         <p>要启动您的成功之旅,请在此处浏览必要的资源、视频和指南: <a href='https://bit.ly/ElkenWelcomeKit'>https://bit.ly/ElkenWelcomeKit</a></p>

+ 20 - 0
common/models/Countries.php

@@ -103,6 +103,26 @@ class Countries extends \common\components\ActiveRecord
         return self::findOneAsArray('ID=:ID', [':ID' => $id]);
     }
 
+    /**
+     * 通过ID获取
+     * @param string $id
+     * @return string
+     */
+    public static function getNameById(string $id): string
+    {
+        return self::findOneAsArray('ID=:ID', [':ID' => $id])['NAME'];
+    }
+
+    /**
+     * 通过ID获取
+     * @param string $id
+     * @return string
+     */
+    public static function getCodeById(string $id): string
+    {
+        return self::findOneAsArray('ID=:ID', [':ID' => $id])['CODE'];
+    }
+
     /**
      * 通过ID查询币种.
      * @param string $id

+ 32 - 4
common/models/forms/WithdrawForm.php

@@ -2,10 +2,14 @@
 
 namespace common\models\forms;
 
+use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use common\components\Model;
 use common\helpers\Cache;
 use common\helpers\Date;
 use common\helpers\Form;
+use common\helpers\LoggerTool;
 use common\helpers\Tool;
 use common\helpers\user\Balance;
 use common\helpers\user\Info;
@@ -735,11 +739,36 @@ class WithdrawForm extends Model {
      *
      * @throws \yii\db\Exception
      */
-    public function batchWithdraw($limit, $start){
+    public function batchWithdraw($limit, $start, $params){
         $config = Cache::getSystemConfig();
         $minAmount = $config['manualWithdrawMinAmount']['VALUE'];
+
+        $condition = '';
+        $adminRoleId = Admin::getRoleIdById($params['handleUserId']);
+        $isSuper = AdminRole::isSuperAdmin($adminRoleId);
+        if (!$isSuper) {
+            $adminCountry = AdminCountry::getCountry($params['handleUserId']);
+            $quotedAdminCountry = array_map(function($item) {
+                return "'" . addslashes($item) . "'";
+            }, $adminCountry);
+
+            $condition = " AND U.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")";
+        }
+
         // 查找有奖金的用户
-        $allData = UserBonus::find()->select('USER_ID, USER_NAME, ID_CARD, BONUS')->from(UserBonus::tableName().' AS UB')->join('LEFT JOIN', User::tableName().' AS U','UB.USER_ID = U.ID')->where("BONUS>$minAmount")->offset(0)->limit($limit)->orderBy('U.ID')->asArray()->all();
+        $allData = UserBonus::find()
+            ->select('USER_ID, USER_NAME, ID_CARD, BONUS')
+            ->from(UserBonus::tableName().' AS UB')
+            ->join('INNER JOIN', User::tableName() . ' AS U','UB.USER_ID = U.ID ' . $condition)
+            ->where("BONUS>$minAmount")
+            ->offset(0)
+            ->limit($limit)
+            ->orderBy('U.ID')
+            ->asArray()
+            ->all();
+
+        LoggerTool::debug($allData);
+
         if($allData){
             foreach ($allData as $data){
                 $db = \Yii::$app->db;
@@ -776,7 +805,6 @@ class WithdrawForm extends Model {
                     if (!$withdrawModel->save()) {
                         throw new Exception(Form::formatErrorsForApi($withdrawModel->getErrors()));
                     }
-//                    print_r($data['BONUS'].',,'.$i.PHP_EOL);
                     $transaction->commit();
                     unset($withdrawModel);
                 } catch (Exception $e) {
@@ -788,7 +816,7 @@ class WithdrawForm extends Model {
             unset($allData);
             $start = $start + $limit;
 
-            return self::batchWithdraw($limit, $start);
+            return self::batchWithdraw($limit, $start, $params);
         }
         return true;
     }

+ 8 - 1
console/controllers/BonusController.php

@@ -7,6 +7,9 @@
  */
 namespace console\controllers;
 
+use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
+use backendApi\modules\v1\models\AdminRole;
 use backendApi\modules\v1\models\lists\bonus\BalanceList;
 use backendApi\modules\v1\models\lists\bonus\CfLxAuditList;
 use backendApi\modules\v1\models\lists\bonus\FlowBalanceList;
@@ -51,6 +54,7 @@ use common\helpers\Excel;
 use common\helpers\Form;
 use common\helpers\http\RemoteUploadApi;
 use common\helpers\Log;
+use common\helpers\LoggerTool;
 use common\libs\export\module\BonusExport;
 use common\models\forms\PeriodForm;
 use common\models\forms\UserPerformanceForm;
@@ -58,6 +62,7 @@ use common\models\forms\WithdrawForm;
 use common\models\LogAsync;
 use common\models\Withdraw;
 use common\models\UserBonus;
+use Yii;
 use yii\db\Exception;
 
 class BonusController extends BaseController
@@ -529,9 +534,11 @@ class BonusController extends BaseController
      *
      */
     public function actionAutoWithdraw($taskKey){
+        $params = Cache::getAsyncParams($taskKey);
+
         Cache::setWithdrawLock(1);
         $formModel = new WithdrawForm();
-        $formModel->batchWithdraw(1000,0);
+        $formModel->batchWithdraw(5,0, $params);
         Cache::setWithdrawLock(0);
     }