Преглед изворни кода

Merge branch 'feature/2047-saveUserLevel'

kevin_zhangl пре 3 година
родитељ
комит
62d5aa3433
31 измењених фајлова са 187 додато и 68 уклоњено
  1. 1 0
      backendApi/modules/v1/controllers/BonusController.php
  2. 1 1
      backendApi/modules/v1/controllers/ShopController.php
  3. 4 1
      backendApi/modules/v1/controllers/SiteController.php
  4. 3 2
      backendApi/modules/v1/controllers/UserController.php
  5. 12 2
      backendApi/modules/v1/models/lists/atlas/NetworkList.php
  6. 12 2
      backendApi/modules/v1/models/lists/atlas/RelationList.php
  7. 2 2
      backendApi/modules/v1/models/lists/bonus/BalanceList.php
  8. 2 2
      backendApi/modules/v1/models/lists/bonus/FlowBonusList.php
  9. 4 3
      backendApi/modules/v1/models/lists/bonus/PeriodBonusList.php
  10. 2 2
      backendApi/modules/v1/models/lists/finance/BalanceAuditList.php
  11. 40 12
      backendApi/modules/v1/models/lists/user/IndexList.php
  12. 6 0
      backendEle/src/components/FilterUser.vue
  13. 3 0
      backendEle/src/utils/baseInfo.js
  14. 2 1
      backendEle/src/utils/vuexStore.js
  15. 1 1
      backendEle/src/views/atlas/network-opt.vue
  16. 1 1
      backendEle/src/views/atlas/relation-opt.vue
  17. 1 1
      backendEle/src/views/user/empty-list.vue
  18. 4 4
      backendEle/src/views/user/index.vue
  19. 1 1
      backendEle/src/views/user/user-add-opt.vue
  20. 24 12
      common/helpers/bonus/BonusCalc.php
  21. 31 8
      common/helpers/bonus/BonusSend.php
  22. 1 1
      common/helpers/user/Balance.php
  23. 8 0
      common/models/User.php
  24. 1 1
      common/models/forms/AdminAddUserForm.php
  25. 1 1
      common/models/forms/DeclarationUpgradeForm.php
  26. 3 1
      frontendApi/modules/v1/controllers/BonusController.php
  27. 1 1
      frontendEle/src/views/atlas/network.vue
  28. 1 1
      frontendEle/src/views/atlas/relation.vue
  29. 6 3
      frontendEle/src/views/bonus/other.vue
  30. 1 1
      frontendEle/src/views/dashboard/index.vue
  31. 7 0
      sql/upgrade/2047.sql

+ 1 - 0
backendApi/modules/v1/controllers/BonusController.php

@@ -940,6 +940,7 @@ class BonusController extends BaseController {
             'LAST_REAL_NAME' => 'CB.LAST_REAL_NAME',
             'LAST_DEC_LV_NAME' => 'CB.LAST_DEC_LV',
             'LAST_EMP_LV_NAME' => 'CB.LAST_EMP_LV',
+            'LAST_CROWN_LV_NAME' => 'CB.LAST_CROWN_LV',
             'LAST_MOBILE' => 'CB.LAST_MOBILE',
             'LAST_PERIOD_AT' => 'CB.LAST_PERIOD_AT',
             'LAST_CREATED_AT' => 'CB.LAST_CREATED_AT',

+ 1 - 1
backendApi/modules/v1/controllers/ShopController.php

@@ -415,7 +415,7 @@ 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']);
+        $filter['condition'] = !$filter['condition'] ? ' AND O.IS_DELETE=0' : ('O.IS_DELETE=0 ' . $filter['condition']);
         $form = new ShopExportForm();
         $result = $form->run($filter, 'Order_List'); // 订单列表
         if (!$result) {

+ 4 - 1
backendApi/modules/v1/controllers/SiteController.php

@@ -67,8 +67,10 @@ class SiteController extends BaseController
     public function actionBaseInfo(){
         // 会员级别
         $decLevels = Cache::getDecLevelConfig();
-        // 
+        // 管理星
         $empLevels = Cache::getEmpLevelConfig();
+        // 皇冠星级
+        $crownLevels = Cache::getStarCrownLevelConfig();
         // 注册类型
         $regTypes = RegType::getTypes();
         // 类型
@@ -104,6 +106,7 @@ class SiteController extends BaseController
         return [
             'decLevels' => $decLevels,
             'empLevels' => $empLevels,
+            'crownLevels' => $crownLevels,
             'regTypes' => $regTypes,
             'dealTypes' => $dealTypes,
             'systems' => $systems,

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

@@ -114,8 +114,9 @@ class UserController extends BaseController
             'DEC_LV_UPDATED_AT' => 'U.DEC_LV_UPDATED_AT',
             'LAST_DEC_LV_NAME' => 'U.LAST_DEC_LV',
             'EMP_LV_NAME' => 'U.EMP_LV',
-//            'HIGHEST_EMP_LV_NAME' => 'UI.HIGHEST_EMP_LV',
-//            'HIGHEST_EMP_LV_PERIOD' => 'UI.HIGHEST_EMP_LV_PERIOD',
+            'LAST_EMP_LV_NAME' => 'U.LAST_EMP_LV',
+            'CROWN_LV_NAME' => 'U.CROWN_LV',
+            'LAST_CROWN_LV_NAME' => 'U.LAST_CROWN_LV',
             'REC_USER_NAME' => 'RU.USER_NAME',
             'CON_USER_NAME' => 'CU.USER_NAME',
             'ID_CARD' => 'U.ID_CARD',

+ 12 - 2
backendApi/modules/v1/models/lists/atlas/NetworkList.php

@@ -10,8 +10,10 @@ use common\helpers\user\Perf;
 use common\libs\dataList\column\Price;
 use common\libs\dataList\DataListInterface;
 use common\models\CalcBonus;
+use common\models\EmployLevel;
 use common\models\PerfMonth;
 use common\models\Period;
+use common\models\StarCrownLevel;
 use common\models\UserBind;
 use common\models\UserInfo;
 use common\libs\dataList\column\DateTime;
@@ -42,6 +44,7 @@ class NetworkList extends \common\libs\dataList\DataList implements DataListInte
         $mainUserInfo = Info::baseInfo($userId, $periodNum);
         $decLevelConfig = Cache::getDecLevelConfig();
         $empLevelConfig = Cache::getEmpLevelConfig();
+        $crownLevelConfig = Cache::getStarCrownLevelConfig();
         $param = [];
         if ( $this->pageSize ) $param['pageSize'] = $this->pageSize;
         if ( $this->page !== null ) $param['page'] = $this->page;
@@ -56,7 +59,8 @@ class NetworkList extends \common\libs\dataList\DataList implements DataListInte
             $this->listData['list'][$key]['REAL_NAME'] = $userBaseInfo['REAL_NAME'];
             $this->listData['list'][$key]['PERIOD_AT'] = $userBaseInfo['PERIOD_AT'];
             $this->listData['list'][$key]['DEC_LV_NAME'] = $decLevelConfig[$userBaseInfo['DEC_LV']]['LEVEL_NAME'];
-            $this->listData['list'][$key]['EMP_LV_NAME'] = isset($empLevelConfig[$userBaseInfo['EMP_LV']])?$empLevelConfig[$userBaseInfo['EMP_LV']]['LEVEL_NAME']:'';
+            $this->listData['list'][$key]['EMP_LV_NAME'] = isset($empLevelConfig[$userBaseInfo['EMP_LV']])?$empLevelConfig[$userBaseInfo['EMP_LV']]['LEVEL_NAME']:$empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
+            $this->listData['list'][$key]['CROWN_LV_NAME'] = isset($crownLevelConfig[$userBaseInfo['CROWN_LV']]) ? $crownLevelConfig[$userBaseInfo['CROWN_LV']]['LEVEL_NAME'] : $crownLevelConfig[StarCrownLevel::getDefaultLevelId()]['LEVEL_NAME'];
         }
         $this->listData['periodNum'] = $periodNum;
         $this->listData['listTopDeep'] = $mainUserInfo['NETWORK_DEEP'];
@@ -89,7 +93,13 @@ class NetworkList extends \common\libs\dataList\DataList implements DataListInte
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'Recommended Member Rank', // 推荐会员聘级
+                    'header' => 'Highest Director', // 最高管理星级
+                    'headerOther' => [
+                        'width' => '210',
+                    ],
+                ],
+                'CROWN_LV_NAME' => [
+                    'header' => 'Highest Crown', // 最高皇冠星级
                     'headerOther' => [
                         'width' => '210',
                     ],

+ 12 - 2
backendApi/modules/v1/models/lists/atlas/RelationList.php

@@ -9,7 +9,9 @@ use common\helpers\user\Info;
 use common\libs\dataList\column\Price;
 use common\libs\dataList\DataListInterface;
 use common\models\CalcBonus;
+use common\models\EmployLevel;
 use common\models\Period;
+use common\models\StarCrownLevel;
 use common\models\UserBind;
 use common\models\UserInfo;
 use common\libs\dataList\column\DateTime;
@@ -40,6 +42,7 @@ class RelationList extends \common\libs\dataList\DataList implements DataListInt
         $mainUserInfo = Info::baseInfo($userId, $periodNum);
         $decLevelConfig = Cache::getDecLevelConfig();
         $empLevelConfig = Cache::getEmpLevelConfig();
+        $crownLevelConfig = Cache::getStarCrownLevelConfig();
         $param = [];
         if ( $this->pageSize ) $param['pageSize'] = $this->pageSize;
         if ( $this->page !== null ) $param['page'] = $this->page;
@@ -53,7 +56,8 @@ class RelationList extends \common\libs\dataList\DataList implements DataListInt
             $this->listData['list'][$key]['REAL_NAME'] = $userBaseInfo['REAL_NAME'];
             $this->listData['list'][$key]['PERIOD_AT'] = $userBaseInfo['PERIOD_AT'];
             $this->listData['list'][$key]['DEC_LV_NAME'] = $decLevelConfig[$userBaseInfo['DEC_LV']]['LEVEL_NAME'];
-            $this->listData['list'][$key]['EMP_LV_NAME'] = isset($empLevelConfig[$userBaseInfo['EMP_LV']])?$empLevelConfig[$userBaseInfo['EMP_LV']]['LEVEL_NAME']:'';
+            $this->listData['list'][$key]['EMP_LV_NAME'] = isset($empLevelConfig[$userBaseInfo['EMP_LV']]) ? $empLevelConfig[$userBaseInfo['EMP_LV']]['LEVEL_NAME'] : $empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
+            $this->listData['list'][$key]['CROWN_LV_NAME'] = isset($crownLevelConfig[$userBaseInfo['CROWN_LV']]) ? $crownLevelConfig[$userBaseInfo['CROWN_LV']]['LEVEL_NAME'] : $crownLevelConfig[StarCrownLevel::getDefaultLevelId()]['LEVEL_NAME'];
         }
         $this->listData['periodNum'] = $periodNum;
         $this->listData['listTopDeep'] = $mainUserInfo['RELATION_DEEP'];
@@ -89,7 +93,13 @@ class RelationList extends \common\libs\dataList\DataList implements DataListInt
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'Recommended Member Rank', // 推荐会员聘级
+                    'header' => 'Highest Director', // 推荐会员聘级
+                    'headerOther' => [
+                        'width' => '210',
+                    ],
+                ],
+                'CROWN_LV_NAME' => [
+                    'header' => 'Highest Crown ', // 推荐会员聘级
                     'headerOther' => [
                         'width' => '210',
                     ],

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

@@ -74,7 +74,7 @@ class BalanceList extends \common\libs\dataList\DataList implements DataListInte
                     ],
                 ],
                 'IS_DEC' => [
-                    'header' => 'Whether Declaration Center', // 是否报单中心
+                    'header' => 'Whether Stockist', // 是否报单中心
                     'value' => function($row) {
                         return (new YesNo([
                             'value' => $row['IS_DEC'],
@@ -199,7 +199,7 @@ class BalanceList extends \common\libs\dataList\DataList implements DataListInte
             $this->filterTypes = [
                 'USER_NAME'=> ['isUserTable'=> false, 'name'=> 'Member Code'], // 会员编号
                 'REAL_NAME'=> ['isUserTable'=> false, 'name'=> 'Member Name'], // 会员姓名
-                'IS_DEC'=> ['isUserTable'=> false, 'name'=> 'Whether Declaration Center', 'other'=> 'yesOrNo'], // 是否报单中心
+                'IS_DEC'=> ['isUserTable'=> false, 'name'=> 'Whether Stockist', 'other'=> 'yesOrNo'], // 是否报单中心
                 'BONUS'=> ['isUserTable'=> false, 'name'=> 'Member Bonus'], // 会员奖金余额
                 'CASH'=> ['isUserTable'=> false, 'name'=> 'Member Ecoin'], // 会员余额
                 'PERIOD_AT'=> ['isUserTable'=> false, 'name'=> 'Joining Period'], // 加入期数

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

@@ -110,7 +110,7 @@ class FlowBonusList extends \common\libs\dataList\DataList implements DataListIn
                     ],
                 ],
                 'IS_DEC' => [
-                    'header' => 'Whether Declaration Center', // 是否报单中心
+                    'header' => 'Whether Stockist', // 是否报单中心
                     'value' => function ($row) {
                         return (new YesNo([
                             'value' => $row['IS_DEC'],
@@ -206,7 +206,7 @@ class FlowBonusList extends \common\libs\dataList\DataList implements DataListIn
                 'REAL_NAME' => ['isUserTable' => false, 'name' => 'Member Name'], // 会员姓名
                 'LAST_DEC_LV_NAME' => ['isUserTable' => false, 'name' => 'Member Level', 'other' => 'decLevel'], // 会员等级
                 'LAST_EMP_LV_NAME' => ['isUserTable' => false, 'name' => 'Rank', 'other' => 'empLevel'], // 聘级
-                'IS_DEC' => ['isUserTable' => false, 'name' => 'Whether Declaration Center', 'other' => 'yesOrNo'], // 是否报单中心
+                'IS_DEC' => ['isUserTable' => false, 'name' => 'Whether Stockist', 'other' => 'yesOrNo'], // 是否报单中心
                 'AMOUNT' => ['isUserTable' => false, 'name' => 'Debit/Credit'], // 交易额
                 'TOTAL' => ['isUserTable' => false, 'name' => 'New Balance'], // 交易后余额
                 'ADMIN_NAME' => ['isUserTable' => false, 'name' => 'Operator'], // 操作人

+ 4 - 3
backendApi/modules/v1/models/lists/bonus/PeriodBonusList.php

@@ -118,13 +118,13 @@ class PeriodBonusList extends \common\libs\dataList\DataList implements DataList
                     ],
                 ],
                 'LAST_EMP_LV_NAME' => [
-                    'header' => 'Director Rank', // 结算时会员聘
+                    'header' => 'Latest Director', // 结算时会员最新管理星
                     'headerOther' => [
                         'width' => '140',
                     ],
                 ],
                 'LAST_CROWN_LV_NAME' => [
-                    'header' => 'Crown Rank',//结算时会员聘
+                    'header' => 'Latest Crown',//结算时会员最新皇冠星
                     'headerOther' => [
                         'width' => '140',
                     ],
@@ -304,7 +304,8 @@ class PeriodBonusList extends \common\libs\dataList\DataList implements DataList
                 'LAST_USER_NAME'=> ['isUserTable'=> false, 'name'=> 'Member Code'], // 会员编号
                 'LAST_REAL_NAME'=> ['isUserTable'=> false, 'name'=> 'Member Name'], // 会员姓名
                 'LAST_DEC_LV_NAME'=> ['isUserTable'=> false, 'name'=> 'PC Member Level', 'other'=> 'decLevel'], // 结算时会员级别
-                'LAST_EMP_LV_NAME'=> ['isUserTable'=> false, 'name'=> 'Director Rank', 'other'=> 'empLevel'], // 结算时会员聘级
+                'LAST_EMP_LV_NAME'=> ['isUserTable'=> false, 'name'=> 'Latest Director', 'other'=> 'empLevel'], // 结算时会员管理星级
+                'LAST_CROWN_LV_NAME'=> ['isUserTable'=> false, 'name'=> 'Latest Crown', 'other'=> 'crownLevel'], // 结算时会员皇冠星级
                 'LAST_MOBILE'=> ['isUserTable'=> false, 'name'=> 'Phone Number'], // 手机号
                 'LAST_PERIOD_AT'=> ['isUserTable'=> false, 'name'=> 'Joining Period'], // 加入期数
                 'LAST_CREATED_AT'=> ['isUserTable'=> false, 'name'=> 'Joining Date', 'other'=> 'date'], // 加入时间

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

@@ -87,7 +87,7 @@ class BalanceAuditList extends \common\libs\dataList\DataList implements DataLis
                     ],
                 ],
                 'LAST_DEC_ROLE_NAME' => [
-                    'header' => 'Declaration center level', // 报单中心级别
+                    'header' => 'Stockist level', // 报单中心级别
                     'headerOther' => [
                         'width' => '170',
                     ],
@@ -207,7 +207,7 @@ class BalanceAuditList extends \common\libs\dataList\DataList implements DataLis
                 'USER_NAME' => ['isUserTable' => false, 'name' => 'Member code'], //会员编号
                 'REAL_NAME' => ['isUserTable' => false, 'name' => 'Member name'], //会员姓名
                 'LAST_DEC_LV_NAME' => ['isUserTable' => false, 'name' => 'Member level', 'other' => 'decLevel'], // 会员级别
-                'LAST_DEC_ROLE_NAME' => ['isUserTable' => false, 'name' => 'Declaration center level', 'other' => 'decRole'], // 报单中心级别
+                'LAST_DEC_ROLE_NAME' => ['isUserTable' => false, 'name' => 'Stockist level', 'other' => 'decRole'], // 报单中心级别
                 'LAST_EMP_LV_NAME' => ['isUserTable' => false, 'name' => 'rank', 'other' => 'empLevel'], // 聘级
                 'TYPE_NAME' => ['isUserTable' => false, 'name' => 'Account type', 'other' => 'select', 'selectData' => Tool::formatFilter(BalanceAudit::TYPE, 'name', 'label')], // 账户类型
                 'DEAL_TYPE_NAME' => ['isUserTable' => false, 'name' => 'Transaction type', 'other' => 'select', 'selectData' => Tool::formatFilter(DealType::getAllTypesForShow(), 'ID', 'TYPE_NAME')], // 交易类型

+ 40 - 12
backendApi/modules/v1/models/lists/user/IndexList.php

@@ -6,8 +6,10 @@ use common\helpers\http\BackendToFrontendApi;
 use common\helpers\user\Info;
 use common\libs\dataList\DataListInterface;
 use common\models\DecRole;
+use common\models\EmployLevel;
 use common\models\OpenBank;
 use common\models\Region;
+use common\models\StarCrownLevel;
 use common\models\User;
 use common\models\UserInfo;
 use common\libs\dataList\column\DateTime;
@@ -167,24 +169,48 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'Current Director Rank', // 实时聘
+                    'header' => 'Highest Director', // 最高管理星
                     'headerOther' => [
-                        'width' => '160',
+                        'width' => '190',
                     ],
                     'value' => function($row) use($empLevelConfig) {
-                        return isset($empLevelConfig[$row['EMP_LV']])?$empLevelConfig[$row['EMP_LV']]['LEVEL_NAME']:'';
+                        return isset($empLevelConfig[$row['EMP_LV']]) ? $empLevelConfig[$row['EMP_LV']]['LEVEL_NAME'] : $empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
+                    },
+                    'valueOther' => [
+                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+                'LAST_EMP_LV_NAME' => [
+                    'header' => 'Latest Director', // 最新管理星级
+                    'headerOther' => [
+                        'width' => '190',
+                    ],
+                    'value' => function($row) use($empLevelConfig) {
+                        return isset($empLevelConfig[$row['LAST_EMP_LV']]) ? $empLevelConfig[$row['LAST_EMP_LV']]['LEVEL_NAME'] : $empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
                     },
                     'valueOther' => [
                         'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
                     ],
                 ],
                 'CROWN_LV_NAME' => [
-                    'header' => 'Current Crown Rank', // 实时星级
+                    'header' => 'Highest Crown ', // 最高皇冠星级
+                    'headerOther' => [
+                        'width' => '180',
+                    ],
+                    'value' => function($row) use($crownLevelConfig) {
+                        return isset($crownLevelConfig[$row['CROWN_LV']]) ? $crownLevelConfig[$row['CROWN_LV']]['LEVEL_NAME'] : $crownLevelConfig[StarCrownLevel::getDefaultLevelId()]['LEVEL_NAME'];
+                    },
+                    'valueOther' => [
+                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+                'LAST_CROWN_LV_NAME' => [
+                    'header' => 'Latest Crown', // 最新皇冠星级
                     'headerOther' => [
-                        'width' => '150',
+                        'width' => '180',
                     ],
                     'value' => function($row) use($crownLevelConfig) {
-                        return isset($crownLevelConfig[$row['CROWN_LV']])?$crownLevelConfig[$row['CROWN_LV']]['LEVEL_NAME']:'';
+                        return isset($crownLevelConfig[$row['LAST_CROWN_LV']]) ? $crownLevelConfig[$row['LAST_CROWN_LV']]['LEVEL_NAME'] : $crownLevelConfig[StarCrownLevel::getDefaultLevelId()]['LEVEL_NAME'];
                     },
                     'valueOther' => [
                         'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
@@ -229,7 +255,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     'headerOther' => ['width' => '150'],
                 ],
                 'IS_DEC' => [
-                    'header' => 'Whether Declaration Center', // 是否报单中心
+                    'header' => 'Whether Stockist', // 是否报单中心
                     'value' => function($row) {
                         return (new YesNo([
                             'value' => $row['IS_DEC'],
@@ -245,7 +271,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     },
                 ],
                 'IS_ATLAS' => [
-                    'header' => 'Wheter Atlas Display', // 是否显示图谱
+                    'header' => 'Whether Chart Display', // 是否显示图谱
                     'value' => function($row) {
                         return (new YesNo([
                             'value' => $row['IS_ATLAS'],
@@ -263,7 +289,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     },
                 ],
                 'IS_RECHARGE' => [
-                    'header' => 'Wheter Recharge Display', // 是否显示充值
+                    'header' => 'Whether Recharge Display', // 是否显示充值
                     'value' => function($row) {
                         return (new YesNo([
                             'value' => $row['IS_RECHARGE'],
@@ -356,8 +382,10 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                 'DEC_LV_NAME'=> ['name'=> 'Real time membership level', 'other'=> 'decLevel'], // 实时会员级别
 //                'DEC_LV_UPDATED_AT'=> ['name'=> '实时调整日期', 'other'=> 'date'],
 //                'LAST_DEC_LV_NAME'=> ['name'=> '结算时会员级别', 'other'=> 'decLevel'],
-                'EMP_LV_NAME'=> ['name'=> 'Real time employment', 'other'=> 'empLevel'], // 实时聘级
-                'CROWN_LV_NAME'=> ['name'=> 'Real time Crown', 'other'=> 'crownLevel'], // 实时聘级
+                'EMP_LV_NAME'=> ['name'=> 'Highest Director', 'other'=> 'empLevel'], // 最高管理星级
+                'LAST_EMP_LV_NAME'=> ['name'=> 'Latest Director', 'other'=> 'empLevel'], // 最新管理星级
+                'CROWN_LV_NAME'=> ['name'=> 'Highest Crown', 'other'=> 'crownLevel'], // 最高皇冠星级
+                'LAST_CROWN_LV_NAME'=> ['name'=> 'Latest Crown', 'other'=> 'crownLevel'], // 最新皇冠星级
 //                'HIGHEST_EMP_LV_NAME'=> ['name'=> '历史最高聘级', 'other'=> 'empLevel'],
 //                'HIGHEST_EMP_LV_PERIOD'=> ['name'=> '首次达到历史最高聘级的期数'],
                 'REC_USER_NAME'=> ['name'=> 'Recommendation No'],//推荐编号
@@ -371,7 +399,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                 'MOBILE'=> ['name'=> 'Phone Number'],//手机号码
 //                'TEL'=> ['name'=> '备用手机号码'],
                 'DEC_USER_NAME'=> ['name'=> 'Stockist Code'], // 所属报单中心编号
-                'IS_DEC'=> ['name'=> 'Declaration center or not', 'other'=> 'yesOrNo'],//是否报单中心
+                'IS_DEC'=> ['name'=> 'Stockist or not', 'other'=> 'yesOrNo'],//是否报单中心
                 'IS_STUDIO'=> ['name'=> 'Studio or not', 'other'=> 'yesOrNo'],//是否工作室
                 'DEC_ROLE_NAME'=> ['name'=> 'Stockist Level', 'other'=> 'decRole'],//报单中心级别
 //                'OPEN_BANK_NAME'=> ['name'=> '开户银行', 'other'=> 'banks'],

+ 6 - 0
backendEle/src/components/FilterUser.vue

@@ -172,6 +172,12 @@ export default {
           valueField: 'ID',
           values: baseInfo.empLevels()
         },
+        crownLevel: {
+          placeholder: 'Select Crown Level', // 请选择聘级
+          labelField: 'LEVEL_NAME',
+          valueField: 'ID',
+          values: baseInfo.crownLevels()
+        },
         decRole: {
           placeholder: 'Select Stockist Level',
           labelField: 'ROLE_NAME',

+ 3 - 0
backendEle/src/utils/baseInfo.js

@@ -25,6 +25,9 @@ const baseInfo = {
   empLevels () {
     return this.get('empLevels')
   },
+  crownLevels () {
+    return this.get('crownLevels')
+  },
   regTypes () {
     return this.get('regTypes')
   },

+ 2 - 1
backendEle/src/utils/vuexStore.js

@@ -13,6 +13,7 @@ const moduleBaseInfo = {
   state: {
     decLevels: null,
     empLevels: null,
+    crownLevels: null,
     adminRoles: null,
     menu: null,
     daysDiff: null,
@@ -38,4 +39,4 @@ export default new Vuex.Store({
     baseInfo: moduleBaseInfo,
     regionInfo: moduleRegionInfo,
   }
-})
+})

+ 1 - 1
backendEle/src/views/atlas/network-opt.vue

@@ -27,7 +27,7 @@
                 <el-tag>Name<!-- 姓名 -->:{{data.REAL_NAME}}</el-tag>
                 <el-tag type="danger"><!-- 区位 -->Location:{{data.RELATIVE_LOCATION}}</el-tag>
                 <el-tag type="success"><!-- 级别 -->Level:{{data.DEC_LV_NAME}}</el-tag>
-                <el-tag type="warning"><!-- 聘级 -->Rank:{{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
+                <el-tag type="warning"><!-- 聘级 -->Highest:{{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
                 <el-tag><!-- 加入期数 -->Joining Period:{{data.PERIOD_AT}}</el-tag>
               </span>
             </span>

+ 1 - 1
backendEle/src/views/atlas/relation-opt.vue

@@ -26,7 +26,7 @@
                       <el-tag><!-- 会员编号 -->Member Code:{{ node.label }}</el-tag>
                       <el-tag type="success">Name<!-- 姓名 -->:{{data.REAL_NAME}}</el-tag>
                       <el-tag type="warning">Level<!-- 级别 -->:{{data.DEC_LV_NAME}}</el-tag>
-                      <el-tag type="warning">Rank:<!-- 聘级 -->{{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
+                      <el-tag type="warning">Highest:<!-- 聘级 -->{{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
 <!--                      <el-tag type="warning">Star:&lt;!&ndash; 星级 &ndash;&gt;{{data.CROWN_LV_NAME}}</el-tag>-->
                     </span>
                 </span>

+ 1 - 1
backendEle/src/views/user/empty-list.vue

@@ -364,7 +364,7 @@
                 })
                 return
             }
-            let isAtlasTip = isAtlas === true ? 'show atlas': 'hide atlas'//'显示图谱' : '隐藏图谱'
+            let isAtlasTip = isAtlas === true ? 'show chart': 'hide chart'//'显示图谱' : '隐藏图谱'
             this.$confirm(`Are you sure you want to【${isAtlasTip}】?`, 'Hint', {//`确定要对所选会员【${isAtlasTip}】吗?`, '提示'
                 confirmButtonText: 'confirm', // 确定
                 cancelButtonText: 'cancel', // 取消

+ 4 - 4
backendEle/src/views/user/index.vue

@@ -111,10 +111,10 @@
         <!--</el-dropdown>-->
         <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-dec`)">
           <el-button type="primary" size="small" @click.stop="">
-            Declaration Center Management<!-- 报单中心管理 --><i class="el-icon-arrow-down el-icon--right"></i>
+            Stockist Management<!-- 报单中心管理 --><i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="isDec" @click.native="handleIsDecManage(true)">Set as declaration Center<!-- 设为报单中心 --></el-dropdown-item>
+            <el-dropdown-item command="isDec" @click.native="handleIsDecManage(true)">Set as Stockist<!-- 设为报单中心 --></el-dropdown-item>
             <el-dropdown-item command="notDec" @click.native="handleIsDecManage(false)">Cancel Stockist<!-- 取消报单中心 -->
             </el-dropdown-item>
           </el-dropdown-menu>
@@ -430,7 +430,7 @@
               })
               return
           }
-          let isDecTip = isDec === true ? 'Set as declaration Center' : 'Cancel Stockist'//'设为报单中心' : '取消报单中心'
+          let isDecTip = isDec === true ? 'Set as Stockist' : 'Cancel Stockist'//'设为报单中心' : '取消报单中心'
           this.$confirm(`Are you sure you want to【${isDecTip}】?`, 'Hint', {//确定要对所选会员【${isDecTip}】吗?`, '提示'
               confirmButtonText: 'confirm', // 确定
               cancelButtonText: 'cancel', // 取消
@@ -488,7 +488,7 @@
                 })
                 return
             }
-            let isAtlasTip = isAtlas === true ? 'Display Atlas' : 'Hidden Atlas'//'显示图谱' : '隐藏图谱'
+            let isChartTip = isAtlas === true ? 'Display Chart' : 'Hidden Chart'//'显示图谱' : '隐藏图谱'
             this.$confirm(`Are you sure you want to【${isAtlasTip}】?`, 'Hint', {//`确定要对所选会员【${isAtlasTip}】吗?`, '提示'
                 confirmButtonText: 'confirm', // 确定
                 cancelButtonText: 'cancel', // 取消

+ 1 - 1
backendEle/src/views/user/user-add-opt.vue

@@ -24,7 +24,7 @@
                            :value="item.ID"></el-option>
               </el-select>
             </el-form-item>
-            <el-form-item label="Declaration center or not"><!-- 是否报单中心 -->
+            <el-form-item label="Stockist or not"><!-- 是否报单中心 -->
               <el-switch v-model="form.isDec"></el-switch>
             </el-form-item>
             <el-form-item label="Stockist Level" v-show="form.isDec"><!-- 报单中心级别 -->

+ 24 - 12
common/helpers/bonus/BonusCalc.php

@@ -360,7 +360,8 @@ class BonusCalc extends BaseObject {
             echo('结算全部完成,共耗时:' . round($t35 - $t34, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
         } catch (\Exception $e) {
             $this->errorCalcTask();
-            $this->addError('calc', sprintf('File【%s】, Line【%s】, Msg【%s】', $e->getFile(), $e->getLine(), $e->getMessage()));
+            LoggerTool::error('calcBonus' . sprintf('File【%s】, Line【%s】, Msg【%s】', $e->getFile(), $e->getLine(), $e->getMessage()));
+            $this->addError('calcBonus', sprintf('%s',$e->getMessage()));
             return false;
         }
         return true;
@@ -1266,6 +1267,7 @@ class BonusCalc extends BaseObject {
                     'LAST_DEC_LV' => $userBaseInfo['DEC_LV'],
                     'LAST_EMP_LV' => $userBaseInfo['EMP_LV'],
                     'LAST_CROWN_LV' => $lastCrownLv,
+                    'CROWN_LV' => $userBaseInfo['CROWN_LV'],
                     'LAST_STATUS' => $userBaseInfo['STATUS'],
                     'AMOUNT' => $deductData['surplus'],
                     'ORI_BONUS' => $oriBonus,
@@ -3670,13 +3672,13 @@ class BonusCalc extends BaseObject {
                         ':PERIOD_NUM' => $this->_periodNum
                     ]
                 );
-                // 奖金流水
-                FlowBonus::updateAll(['LAST_EMP_LV' => $nowBsEmpLv], 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
-                    [
-                        ':USER_ID' => $data['USER_ID'],
-                        ':PERIOD_NUM' => $this->_periodNum
-                    ]
-                );
+//                // 奖金流水
+//                FlowBonus::updateAll(['LAST_EMP_LV' => $nowBsEmpLv], 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
+//                    [
+//                        ':USER_ID' => $data['USER_ID'],
+//                        ':PERIOD_NUM' => $this->_periodNum
+//                    ]
+//                );
 //                // 共享奖流水
 //                CalcBonusGX::updateAll(['LAST_EMP_LV' => $nowBsEmpLv], 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
 //                    [
@@ -3747,7 +3749,7 @@ class BonusCalc extends BaseObject {
         $tourismBonus = CalcCache::tourismBonus($userId, $this->_periodNum);
         $garageBonus = CalcCache::garageBonus($userId, $this->_periodNum);
         $villaBonus = CalcCache::villaBonus($userId, $this->_periodNum);
-        $empLv = $baseInfo['EMP_LV'];
+        $nowDirectorLv = $baseInfo['EMP_LV'];
 //        if($this->_isCalcMonth){
 //            $empLv = $this->nowMonthPerfData($userId)['LAST_EMP_LV'];
 //        }
@@ -3793,6 +3795,7 @@ class BonusCalc extends BaseObject {
         if( $this->_isCalcMonth ) {
             // 个人月消费PV大于配置值,才会计算发放蓝星奖
             $fxPvStatus = $this->_isMonthPerfLimit($userId);
+            $nowDirectorLv = EmployLevel::getDefaultLevelId();
             // BONUS_REAL 字段是发到用户的真实奖金
             if ( $fxPvStatus ) {
                 // 管理奖改成了蓝星奖,但是对于用户来说依旧叫管理奖.字段改成bs.
@@ -3840,7 +3843,8 @@ class BonusCalc extends BaseObject {
                 ->one();
                 $realBonusBs = $blueStartAmount; // 蓝星奖直接取数据库中算好的值PRODUCT_POINT
                 $exchangePoints = isset($userBS['PRODUCT_POINT']) && !empty($userBS['PRODUCT_POINT']) ? $userBS['PRODUCT_POINT'] : 0; // 兑换积分
-
+                // 会员最新$nowDirectorLv
+                $nowDirectorLv = $userBS['LEVEL_ID'] ?? $nowDirectorLv;
                 // 蓝星奖总奖金:管理奖+业绩奖
 //                $blueStartOriBonus = $blueStartOriBonusMnt + $blueStartOriBonusAbbr;
 //                $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] + $blueStartOriBonus; // 管理奖在存储过程计算,这里单独加上管理奖(即蓝星奖)
@@ -3853,13 +3857,21 @@ class BonusCalc extends BaseObject {
             }
         }
 
+        // 查询会员本期是否有团队奖
+        $userBonusQY = CalcBonusQY::findOneAsArray('PERIOD_NUM=:PERIOD_NUM AND USER_ID=:USER_ID',
+            [
+                ':PERIOD_NUM' => $this->_periodNum,
+                ':USER_ID' => $userId
+            ]);
+        // 会员本期最新CrownLV
+        $nowCrownLv = $userBonusQY['LAST_CROWN_LV'] ?? StarCrownLevel::getDefaultLevelId();
         $result = [
             'USER_ID' => $userId,
             'LAST_USER_NAME' => $baseInfo['USER_NAME'],
             'LAST_REAL_NAME' => $baseInfo['REAL_NAME'],
             'LAST_DEC_LV' => $baseInfo['DEC_LV'],
-            'LAST_EMP_LV' => $empLv,
-            'LAST_CROWN_LV' => $starCrownLv ?? StarCrownLevel::getDefaultLevelId(),
+            'LAST_EMP_LV' => $nowDirectorLv,
+            'LAST_CROWN_LV' => $nowCrownLv,
             'LAST_STATUS' => $baseInfo['STATUS'],
             'LAST_MOBILE' => $baseInfo['MOBILE'],
             'LAST_PERIOD_AT' => $baseInfo['PERIOD_NUM'],

+ 31 - 8
common/helpers/bonus/BonusSend.php

@@ -11,6 +11,7 @@ namespace common\helpers\bonus;
 use common\components\ActiveRecord;
 use common\helpers\DataBak;
 use common\helpers\Form;
+use common\helpers\LoggerTool;
 use common\helpers\Tool;
 use common\helpers\user\Balance;
 use common\helpers\user\Info;
@@ -262,7 +263,8 @@ class BonusSend extends BaseObject {
             echo('全部奖金发放完成,耗时:'.round($t7 - $t1, 3).',内存使用:'.(round(memory_get_usage()/1024/1024, 3)).'MB'.PHP_EOL);
             $this->_updatePercent(100);
         } catch (\Exception $e) {
-            $this->addError('sendBonus', sprintf('File【%s】, Line【%s】, Msg【%s】', $e->getFile(), $e->getLine(), $e->getMessage()));
+            LoggerTool::error('sendBonus' . sprintf('File【%s】, Line【%s】, Msg【%s】', $e->getFile(), $e->getLine(), $e->getMessage()));
+            $this->addError('sendBonus', sprintf('%s',$e->getMessage()));
             return false;
         }
         if (count($this->_errors) > 0) {
@@ -564,7 +566,7 @@ class BonusSend extends BaseObject {
     public function updateEmpLevel(int $offset = 0) {
         if ($this->_isCalcMonth) {
             $empLv = EmployLevel::getIdConvertLevelSortCache();
-            $allData = CalcBonus::findUseDbCalc()
+            $allData = CalcBonusBS::findUseDbCalc()
             ->yearMonth($this->_calcYearMonth)
             ->where(
                 'CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM', 
@@ -594,10 +596,16 @@ class BonusSend extends BaseObject {
                             // 如果当前期的级别值大于历史最高级别,则更新用户表里的最高聘级
                             User::updateAll(['EMP_LV' => $nowBsEmpLv], 'ID=:USER_ID', [':USER_ID' => $data['USER_ID']]);
                             User::deleteBaseInfoFromRedis($data['USER_ID']);
-                            unset($data);
-                        } else {
-                            continue;
                         }
+
+                        // 更新最新级别
+                        User::updateAll([
+                            'LAST_EMP_LV' => $nowBsEmpLv,
+                            'LAST_EMP_LV_UPDATED_AT' => time(),
+                            'LAST_EMP_LV_UPDATED_PERIOD' => $this->_periodNum
+                        ], 'ID=:USER_ID', [':USER_ID' => $data['USER_ID']]);
+                        User::deleteBaseInfoFromRedis($data['USER_ID']);
+                        unset($data);
                     }
                     $transaction->commit();
                 } catch (Exception $e) {
@@ -609,6 +617,14 @@ class BonusSend extends BaseObject {
                 return $this->updateEmpLevel($offset + $this->_limit);
             }
             unset($allData);
+
+            // 刷新会员EmpLv为0
+            User::updateAll([
+                'LAST_EMP_LV' => '',
+                'LAST_EMP_LV_UPDATED_AT' => time(),
+                'LAST_EMP_LV_UPDATED_PERIOD' => $this->_periodNum,
+            ], 'LAST_EMP_LV_UPDATED_PERIOD < :PERIOD_NUM AND LAST_EMP_LV <> ""', [':PERIOD_NUM' => $this->_periodNum]);
+            User::deleteAllBaseInfoFromRedis();
         }
         return true;
     }
@@ -636,13 +652,13 @@ class BonusSend extends BaseObject {
             ->limit($this->_limit)
             ->all();
 
-        $defaultEmpLv = StarCrownLevel::getDefaultLevelId();
+        $defaultCrownLv = StarCrownLevel::getDefaultLevelId();
         if ($allData) {
             $transaction = Yii::$app->db->beginTransaction();
             try {
                 foreach ($allData as $data) {
                     // 默认级别不更新
-                    if( $data['LAST_CROWN_LV'] === $defaultEmpLv ) continue;
+                    if( $data['LAST_CROWN_LV'] === $defaultCrownLv ) continue;
 
                     $modernCrownLv = $data['LAST_CROWN_LV'];   // 本期计算出的最新级别
 
@@ -678,7 +694,14 @@ class BonusSend extends BaseObject {
             unset($transaction, $allData);
             return $this->updateCrownLevel($offset + $this->_limit);
         }
-        unset($allData);
+
+        // 刷新会员CrownLv为0
+        User::updateAll([
+            'LAST_CROWN_LV' => '',
+            'LAST_CROWN_LV_UPDATED_AT' => time(),
+            'LAST_CROWN_LV_UPDATED_PERIOD' => $this->_periodNum,
+        ], 'LAST_CROWN_LV_UPDATED_PERIOD < :PERIOD_NUM AND LAST_CROWN_LV <> ""' , [':PERIOD_NUM' => $this->_periodNum]);
+        User::deleteAllBaseInfoFromRedis();
 
         return true;
     }

+ 1 - 1
common/helpers/user/Balance.php

@@ -571,7 +571,7 @@ class Balance {
             $flowInsertData = [
                 'USER_ID' => $userId,
                 'LAST_DEC_LV' => $userInfo['DEC_LV'],
-                'LAST_EMP_LV' => $userInfo['EMP_LV'],
+                'LAST_EMP_LV' => $userInfo['LAST_EMP_LV'],
                 'LAST_STATUS' => $userInfo['STATUS'],
                 'CALC_ID' => $params['CALC_ID'] ?? null,
                 'AMOUNT' => ($issueBonus ? $amount * $exchangeRate : $amount),

+ 8 - 0
common/models/User.php

@@ -267,6 +267,14 @@ class User extends \common\components\ActiveRecord
         Yii::$app->redis->hdel(Cache::USER_INFO_KEY, $userId);
     }
 
+    /**
+     * 批量删除用户
+     * @return void
+     */
+    public static function deleteAllBaseInfoFromRedis() {
+        \Yii::$app->redis->del(Cache::USER_INFO_KEY);
+    }
+
     /**
      *  判断用户是否是观察期
      *  观望期:自加入算起2个月

+ 1 - 1
common/models/forms/AdminAddUserForm.php

@@ -114,7 +114,7 @@ class AdminAddUserForm extends Model {
             'decLv' => 'Real time declaration level',//实时报单级别
             'areaSelected' => 'Location',//所在地区
             'tel' => 'Telephone',//电话
-            'isDec' => 'Declaration center or not',//是否报单中心
+            'isDec' => 'Stockist or not',//是否报单中心
             'decUserName' => 'Stockist No', // 报单中心编号
             'birthday' => 'birthday',//生日
             'decRoleId' => 'Stockist Level',//报单中心级别

+ 1 - 1
common/models/forms/DeclarationUpgradeForm.php

@@ -401,7 +401,7 @@ class DeclarationUpgradeForm extends Model
             $flipParent = array_flip(array_filter($this->_tempNetworkParentUser[$this->insertUserName]));
             if (!isset($flipParent[$this->decUserName])) {
 //                $this->addError($attribute, '为' . $this->insertUserName . '升级报单,报单中心' . $this->decUserName . '不在' . $this->insertUserName . '的安置网上级中');
-                $this->addError($attribute, 'by' . $this->insertUserName . 'Upgrade declaration, declaration Center' . $this->decUserName . 'be not in' . $this->insertUserName . 'Online level of resettlement');
+                $this->addError($attribute, 'by' . $this->insertUserName . 'Upgrade declaration, Stockist' . $this->decUserName . 'be not in' . $this->insertUserName . 'Online level of resettlement');
                 return ;
             }
             $this->_decId = $decUser['ID'];

+ 3 - 1
frontendApi/modules/v1/controllers/BonusController.php

@@ -266,9 +266,11 @@ class BonusController extends BaseController {
         $sysConfig = Cache::getSystemConfig();
 
         if($detailSwitch) {
+            $data['USER_NAME'] = ['name' => '编号', 'value' => Info::getUserNameByUserId(\Yii::$app->user->id)];
             $data['PERIOD_NUM'] = ['name' => '期数', 'value' => $periodNum];
             $data['LAST_DEC_LV'] = ['name' => '级别', 'value' => Cache::getDecLevelConfig()[$calcBonus['LAST_DEC_LV']]['LEVEL_NAME']];
-            $data['LAST_EMP_LV'] = ['name' => '荣誉', 'value' => Cache::getEmpLevelConfig()[$calcBonus['LAST_EMP_LV']]['LEVEL_NAME']];
+            $data['LAST_EMP_LV'] = ['name' => '管理星级', 'value' => Cache::getEmpLevelConfig()[$calcBonus['LAST_EMP_LV']]['LEVEL_NAME']];
+            $data['LAST_CROWN_LV'] = ['name' => '皇冠星级', 'value' => Cache::getStarCrownLevelConfig()[$calcBonus['LAST_CROWN_LV']]['LEVEL_NAME']];
             if ($sysConfig['openTG']['VALUE']) {
                 // 销售奖金 就是 原来的推广奖
                 $data['ORI_BONUS_TG'] = ['name' => '销售奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_TG'])];

+ 1 - 1
frontendEle/src/views/atlas/network.vue

@@ -24,7 +24,7 @@
             <el-tag>Name: {{data.REAL_NAME}}</el-tag>
             <el-tag type="danger">Location: {{data.RELATIVE_LOCATION}}</el-tag>
             <el-tag type="success">Level: {{data.DEC_LV_NAME}}</el-tag>
-            <el-tag type="warning">Rank: {{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
+            <el-tag type="warning">Highest: {{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
 <!--            <el-tag type="warning">Star: {{data.CROWN_LV_NAME}}</el-tag>-->
             <el-tag>Joining Period: {{data.PERIOD_AT}}</el-tag>
           </span>

+ 1 - 1
frontendEle/src/views/atlas/relation.vue

@@ -24,7 +24,7 @@
             <el-tag>Name: {{data.REAL_NAME}}</el-tag>
 <!--            <el-tag type="danger">Location: {{data.RELATIVE_LOCATION}}</el-tag>-->
             <el-tag type="success">Level: {{data.DEC_LV_NAME}}</el-tag>
-            <el-tag type="warning">Rank: {{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
+            <el-tag type="warning">Highest: {{data.EMP_LV_NAME}}, {{data.CROWN_LV_NAME}}</el-tag>
 <!--            <el-tag type="warning">Star: {{data.CROWN_LV_NAME}}</el-tag>-->
             <el-tag>Joining Period: {{data.PERIOD_AT}}</el-tag>
           </span>

+ 6 - 3
frontendEle/src/views/bonus/other.vue

@@ -25,10 +25,13 @@
 
       </el-table>
     </div>
-    <el-dialog :title="`Period ${periodNum} bonus`" :visible.sync="dialogFlowVisible" width="70%"><!-- 100期奖金 -->
-        <el-descriptions title="" class="bonus-list" v-if="newData" :column="2" border>
-          <el-descriptions-item class="bonus-item" label="Pay cycle">{{newData.PERIOD_NUM.value}}</el-descriptions-item><!-- 期数 -->
+    <el-dialog :title="`Period ${periodNum} bonus`" :visible.sync="dialogFlowVisible" width="60%"><!-- 100期奖金 -->
+        <el-descriptions title="" class="bonus-list" v-if="newData" :column="2" border size="medium" style="width: 100%">
+          <el-descriptions-item class="bonus-item" label="Member Code">{{newData.USER_NAME.value}}</el-descriptions-item><!-- 用户编号 -->
+          <el-descriptions-item class="bonus-item" label="Pay Cycle">{{newData.PERIOD_NUM.value}}</el-descriptions-item><!-- 期数 -->
           <el-descriptions-item class="bonus-item" label="Member Level">{{newData.LAST_DEC_LV.value}}</el-descriptions-item><!-- 会员等级 -->
+          <el-descriptions-item class="bonus-item" label="Latest Director">{{newData.LAST_EMP_LV.value}}</el-descriptions-item><!-- 会员管理星级 -->
+          <el-descriptions-item class="bonus-item" label="Latest Crown">{{newData.LAST_CROWN_LV.value}}</el-descriptions-item><!-- 会员皇冠星级 -->
           <el-descriptions-item class="bonus-item" label="Welcome Bonus" v-if="newData.ORI_BONUS_TG_SWITCH === 1">{{newData.ORI_BONUS_TG.value}}</el-descriptions-item><!-- 销售奖金 -->
           <el-descriptions-item class="bonus-item" label="Team Bonus" v-if="newData.ORI_BONUS_QY_SWITCH === 1">{{newData.ORI_BONUS_QY.value}}</el-descriptions-item><!-- 绩效奖 -->
           <el-descriptions-item class="bonus-item" label="Director Bonus">{{newData.ORI_BONUS_BS.value}}</el-descriptions-item><!-- 蓝星奖金/管理奖 -->

+ 1 - 1
frontendEle/src/views/dashboard/index.vue

@@ -10,7 +10,7 @@
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12">
             <el-row :gutter="10">
               <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="12">Current System Time:{{nowDateTime}}</el-col> <!--当前系统时间-->
-              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">Rank:{{myEmpLv['LEVEL_NAME']!='No Rank'?myEmpLv['LEVEL_NAME']:''}}
+              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">Highest Director:{{myEmpLv['LEVEL_NAME']!='No Rank'?myEmpLv['LEVEL_NAME']:''}}
                 <!--<span v-if="myEmpLv['ICON_TYPE']==0">No Rank</span><img
                   :src="getEmpIco(myEmpLv['ICON_TYPE'])" alt=""
                   v-for="(o,key) in parseInt(myEmpLv['ICON_NUM'])"

+ 7 - 0
sql/upgrade/2047.sql

@@ -0,0 +1,7 @@
+-- 会员表增加EMP_LV属性字段
+ALTER TABLE `AR_USER` ADD COLUMN `LAST_EMP_LV` varchar(32) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '最新EMP级别';
+ALTER TABLE `AR_USER` ADD COLUMN `LAST_EMP_LV_UPDATED_AT` int(11) NOT NULL DEFAULT 0 COMMENT '最新EMP级别更新时间';
+ALTER TABLE `AR_USER` ADD COLUMN `LAST_EMP_LV_UPDATED_PERIOD` int(11) NOT NULL DEFAULT 0 COMMENT '最新EMP级别更新期数';
+
+-- 团队奖增加最高级别
+ALTER TABLE `AR_CALC_BONUS_QY` ADD COLUMN `CROWN_LV` varchar(32) NOT NULL DEFAULT '' COMMENT '最高EMP级别' AFTER `LAST_CROWN_LV`;