Przeglądaj źródła

feat: NG-27: Adjusting Service Award Settlement

kevin 1 rok temu
rodzic
commit
1541002440

+ 49 - 49
common/helpers/bonus/CalcCache.php

@@ -557,56 +557,56 @@ class CalcCache {
     public static function getUserInfo($userId, $periodNum) {
         $key = self::REDIS_KEY_PREFIX_USER_INFO . $periodNum;
         $data = Yii::$app->redis->hget($key, $userId);
-//        if (empty($data)) {
-//            $userInfo = UserInfo::findUseDbCalc()
-//            ->select('USER_ID,USER_NAME,CON_UID,REC_UID')
-//            ->where('USER_ID=:USER_ID', [':USER_ID' => $userId])
-//            ->asArray()
-//            ->one();
-//            if( !$userInfo ) {
-//                throw new \Exception('用户信息表数据不存在,userId:'.$userId);
-//            }
-//
-//            $userShopInfo = User::findUseDbCalc()
-//            ->select('LAST_DEC_LV,REAL_NAME,DEC_LV,EMP_LV,CROWN_LV,IS_DEC,STATUS,IS_STUDIO,DEC_ID,DEC_ROLE_ID,LAST_EMP_LV')
-//            ->where('ID=:ID', [':ID' => $userId])
-//            ->asArray()
-//            ->one();
-//            if ( !$userShopInfo ) {
-//                throw new \Exception('用户表数据不存在,userId:'.$userId);
-//            }
-//
-//            // 用户的最新蓝星级别,需要修改调整因为计算服务这里并没有以前的级别数据表数据,所以无法查询出以前的最近月节点数据
-//            // 获取用户的最新级别数据,根据蓝星最近一期月结数据进行查询
-//            $userInfo['REAL_NAME'] = $userShopInfo['REAL_NAME'];
-//            $userInfo['DEC_LV'] = $userShopInfo['LAST_DEC_LV'];
-//            $userInfo['EMP_LV'] = $userShopInfo['EMP_LV'];
-//            $userInfo['LAST_EMP_LV'] = empty($userShopInfo['LAST_EMP_LV']) ? EmployLevel::NO_LEVEL_ID : $userShopInfo['LAST_EMP_LV'];// 最新的聘级
-//            $userInfo['CROWN_LV'] = $userShopInfo['CROWN_LV'];
-//            $userInfo['IS_DEC'] = $userShopInfo['IS_DEC'];
-//            $userInfo['STATUS'] = $userShopInfo['STATUS'];
-//            $userInfo['DEC_ID'] = $userShopInfo['DEC_ID'];
-//            $userInfo['DEC_ROLE_ID'] = $userShopInfo['DEC_ROLE_ID'];
-//
-//            unset($userShopInfo);
-//
-//            if (!$userInfo['DEC_LV']) {
-//                $userInfo['DEC_LV'] = DeclarationLevel::getDefaultLevelId();
-//            }
-//            if (!$userInfo['EMP_LV']) {
-//                $userInfo['EMP_LV'] = EmployLevel::getDefaultLevelId();
-//            }
-//            if (!$userInfo['CROWN_LV']) {
-//                $userInfo['CROWN_LV'] = StarCrownLevel::getDefaultLevelId();
-//            }
-//
-//            $data = Json::encode($userInfo);
-//            Yii::$app->redis->hset($key, $userId, $data);
-//            unset($key, $userId, $periodNum);
-//            return $userInfo;
-//        } else {
+        if (empty($data)) {
+            $userInfo = UserInfo::findUseDbCalc()
+            ->select('USER_ID,USER_NAME,CON_UID,REC_UID')
+            ->where('USER_ID=:USER_ID', [':USER_ID' => $userId])
+            ->asArray()
+            ->one();
+            if( !$userInfo ) {
+                throw new \Exception('用户信息表数据不存在,userId:'.$userId);
+            }
+
+            $userShopInfo = User::findUseDbCalc()
+            ->select('LAST_DEC_LV,REAL_NAME,DEC_LV,EMP_LV,CROWN_LV,IS_DEC,STATUS,IS_STUDIO,DEC_ID,DEC_ROLE_ID,LAST_EMP_LV')
+            ->where('ID=:ID', [':ID' => $userId])
+            ->asArray()
+            ->one();
+            if ( !$userShopInfo ) {
+                throw new \Exception('用户表数据不存在,userId:'.$userId);
+            }
+
+            // 用户的最新蓝星级别,需要修改调整因为计算服务这里并没有以前的级别数据表数据,所以无法查询出以前的最近月节点数据
+            // 获取用户的最新级别数据,根据蓝星最近一期月结数据进行查询
+            $userInfo['REAL_NAME'] = $userShopInfo['REAL_NAME'];
+            $userInfo['DEC_LV'] = $userShopInfo['LAST_DEC_LV'];
+            $userInfo['EMP_LV'] = $userShopInfo['EMP_LV'];
+            $userInfo['LAST_EMP_LV'] = empty($userShopInfo['LAST_EMP_LV']) ? EmployLevel::NO_LEVEL_ID : $userShopInfo['LAST_EMP_LV'];// 最新的聘级
+            $userInfo['CROWN_LV'] = $userShopInfo['CROWN_LV'];
+            $userInfo['IS_DEC'] = $userShopInfo['IS_DEC'];
+            $userInfo['STATUS'] = $userShopInfo['STATUS'];
+            $userInfo['DEC_ID'] = $userShopInfo['DEC_ID'];
+            $userInfo['DEC_ROLE_ID'] = $userShopInfo['DEC_ROLE_ID'];
+
+            unset($userShopInfo);
+
+            if (!$userInfo['DEC_LV']) {
+                $userInfo['DEC_LV'] = DeclarationLevel::getDefaultLevelId();
+            }
+            if (!$userInfo['EMP_LV']) {
+                $userInfo['EMP_LV'] = EmployLevel::getDefaultLevelId();
+            }
+            if (!$userInfo['CROWN_LV']) {
+                $userInfo['CROWN_LV'] = StarCrownLevel::getDefaultLevelId();
+            }
+
+            $data = Json::encode($userInfo);
+            Yii::$app->redis->hset($key, $userId, $data);
+            unset($key, $userId, $periodNum);
+            return $userInfo;
+        } else {
             return Json::decode($data);
-//        }
+        }
     }
 
     public static function setUserInfo($userId, $periodNum, $userInfo) {

+ 1 - 1
common/helpers/bonus/CalcServeBonusCalc.php

@@ -621,7 +621,7 @@ class CalcServeBonusCalc extends BaseObject {
                 //记录奖金和奖金来源到缓存 并实现在缓存中奖金累加
                 CalcCache::saveFwBonusList($bonusUserId, $this->_periodNum, $fwBonus, ['fromUid'=>$userId, 'fromPvPcs'=>$validPvPcs]);
                 CalcCache::addHasFwBonusUsers($bonusUserId, $this->_periodNum);
-                
+
                 unset($userId, $validPvPcs);
             }