Browse Source

Merge branch 'feature/2047-saveUserLevel' into dev

kevin_zhangl 3 years ago
parent
commit
acb41e07e4

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

@@ -93,13 +93,13 @@ class NetworkList extends \common\libs\dataList\DataList implements DataListInte
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'The Highest Director Rank', // 推荐会员聘
+                    'header' => 'Highest Director', // 最高管理星
                     'headerOther' => [
                         'width' => '210',
                     ],
                 ],
                 'CROWN_LV_NAME' => [
-                    'header' => 'The Highest Crown Rank', // 推荐会员聘
+                    'header' => 'Highest Crown', // 最高皇冠星
                     'headerOther' => [
                         'width' => '210',
                     ],

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

@@ -93,13 +93,13 @@ class RelationList extends \common\libs\dataList\DataList implements DataListInt
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'The Highest Director Rank', // 推荐会员聘级
+                    'header' => 'Highest Director', // 推荐会员聘级
                     'headerOther' => [
                         'width' => '210',
                     ],
                 ],
                 'CROWN_LV_NAME' => [
-                    'header' => 'The Highest Crown Rank', // 推荐会员聘级
+                    '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'], // 操作人

+ 2 - 2
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',
                     ],

+ 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')], // 交易类型

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

@@ -169,7 +169,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     ],
                 ],
                 'EMP_LV_NAME' => [
-                    'header' => 'The Highest Director Rank', // 最高管理星级
+                    'header' => 'Highest Director', // 最高管理星级
                     'headerOther' => [
                         'width' => '190',
                     ],
@@ -181,7 +181,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     ],
                 ],
                 'LAST_EMP_LV_NAME' => [
-                    'header' => 'The Newest Director Rank', // 最新管理星级
+                    'header' => 'Latest Director', // 最新管理星级
                     'headerOther' => [
                         'width' => '190',
                     ],
@@ -193,7 +193,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     ],
                 ],
                 'CROWN_LV_NAME' => [
-                    'header' => 'The Highest Crown Rank', // 最高皇冠星级
+                    'header' => 'Highest Crown ', // 最高皇冠星级
                     'headerOther' => [
                         'width' => '180',
                     ],
@@ -205,7 +205,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                     ],
                 ],
                 'LAST_CROWN_LV_NAME' => [
-                    'header' => 'The Newest Crown Rank', // 最新皇冠星级
+                    'header' => 'Latest Crown', // 最新皇冠星级
                     'headerOther' => [
                         'width' => '180',
                     ],
@@ -255,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'],
@@ -271,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'],
@@ -289,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'],
@@ -399,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'],

+ 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

@@ -271,6 +271,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'];

+ 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>

+ 2 - 2
frontendEle/src/views/bonus/other.vue

@@ -30,8 +30,8 @@
           <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="The newest director bonus">{{newData.LAST_EMP_LV.value}}</el-descriptions-item><!-- 会员管理星级 -->
-          <el-descriptions-item class="bonus-item" label="The newest crown bonus">{{newData.LAST_CROWN_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`;