Просмотр исходного кода

Merge branch 'dev' of http://16.162.42.175:8014/guanli/aklast into dev

theojeng 3 лет назад
Родитель
Сommit
bcdf676823

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

@@ -6,6 +6,7 @@ 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\User;
@@ -170,7 +171,19 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
                         'width' => '130',
                     ],
                     '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' => '最新聘级',
+                    'headerOther' => [
+                        'width' => '130',
+                    ],
+                    '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']
@@ -587,6 +600,7 @@ class IndexList extends \common\libs\dataList\DataList implements DataListInterf
 //                'DEC_LV_UPDATED_AT'=> ['name'=> '实时调整日期', 'other'=> 'date'],
 //                'LAST_DEC_LV_NAME'=> ['name'=> '结算时会员级别', 'other'=> 'decLevel'],
                 'EMP_LV_NAME'=> ['name'=> '最高聘级', 'other'=> 'empLevel'],
+                'LAST_EMP_LV_NAME'=> ['name'=> '最新聘级', 'other'=> 'empLevel'],
 //                'HIGHEST_EMP_LV_NAME'=> ['name'=> '历史最高聘级', 'other'=> 'empLevel'],
 //                'HIGHEST_EMP_LV_PERIOD'=> ['name'=> '首次达到历史最高聘级的期数'],
                 'REC_USER_NAME'=> ['name'=> '推荐编号'],

+ 2 - 0
common/helpers/bonus/BonusCalc.php

@@ -3507,6 +3507,7 @@ class BonusCalc extends BaseObject {
                 $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] - $blueBonusGL - $blueBonusYJ;
                 // 共享奖最后一起算,所以总原奖金中,需要加上整个月的数据
                 $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] + $oriGxMonthBonus;
+                $empLv = $userBS['LEVEL_ID'] ?? $empLv;
             } else {
                 // 蓝星奖原奖金在扣管理费的时候被加入到了BONUS_TOTAL,需要再减去原奖金
                 $oriBonusBs = isset($bonus['ORI_BONUS_BS']) && $bonus['ORI_BONUS_BS'] > 0 ? $bonus['ORI_BONUS_BS'] : 0;
@@ -3514,6 +3515,7 @@ class BonusCalc extends BaseObject {
                 $oriBonusBsYJCF = isset($bonus['ORI_BONUS_ABBR']) && $bonus['ORI_BONUS_ABBR'] > 0 ? $bonus['ORI_BONUS_ABBR'] : 0;
                 $oriBonusBsGLCF = isset($bonus['ORI_BONUS_MNT']) && $bonus['ORI_BONUS_MNT'] > 0 ? $bonus['ORI_BONUS_MNT'] : 0;
                 $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] - $oriBonusBs - $oriBonusBsYJCF - $oriBonusBsGLCF;
+                $empLv = EmployLevel::getDefaultLevelId();
             }
         }
         

+ 18 - 3
common/helpers/bonus/BonusSend.php

@@ -561,10 +561,16 @@ class BonusSend extends BaseObject {
                             // 如果当前期的级别值大于历史最高级别,则更新用户表里的最高聘级
                             User::updateAll(['EMP_LV' => $data['LEVEL_ID']], '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) {
@@ -577,6 +583,15 @@ class BonusSend extends BaseObject {
             }
             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;
     }
 

+ 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);
+    }
+
     /**
      * 获取会员的部分信息并对敏感信息加密
      * @param $userId

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

@@ -133,10 +133,10 @@
     },
     methods: {
       getEmpIco(type) {
-        if (type) return require('@/assets/emp-ico-' + type + '.png')
+        if (type > 0) return require('@/assets/emp-ico-' + type + '.png')
       },
       getEmpBg(type) {
-        if (type != 0) return 'backgroundImage:url(' + require('@/assets/emp-bg-' + type + '.png') + ')'
+        if (type > 0) return 'backgroundImage:url(' + require('@/assets/emp-bg-' + type + '.png') + ')'
       },
       sub_str(str, len = 15) {
         if (str) return str.slice(0, len)

+ 4 - 0
sql/2047.sql

@@ -0,0 +1,4 @@
+-- 会员表增加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级别更新期数';