Browse Source

Merge branch 'feature/2151-translate' into feature/2047-saveUserLevel

kevin_zhangl 3 years ago
parent
commit
ffc7ea4b30

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

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

@@ -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/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'];

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