public function extendFuncGroups($fgList, $durationInSecs)
 {
     Log::record('WebsiteUserFuncManager extend:' . print_r($fgList, true) . ' secs:' . $durationInSecs . ' uid:' . $this->websiteUserId);
     Log::save();
     $currTime = time();
     $tb_userFG = M('user_func_group');
     $existingRelations = $tb_userFG->where('user_id=' . $this->websiteUserId)->select();
     $existingGroupId2RealtionMap = array();
     foreach ($existingRelations as $relation) {
         $existingGroupId2RealtionMap[$relation['group_id']] = $relation;
     }
     foreach ($fgList as $codeFgId) {
         if (in_array($codeFgId, array_keys($existingGroupId2RealtionMap))) {
             // 该功能已经存在关系表里,只需要进行update
             $tmpUserFuncGroup = $existingGroupId2RealtionMap[$codeFgId];
             $tmp = array();
             if (!empty($tmpUserFuncGroup['expire_time']) && $tmpUserFuncGroup['expire_time'] > $currTime) {
                 // 该功能未过期
                 $tmp['start_time'] = $tmpUserFuncGroup['start_time'];
                 $tmp['expire_time'] = $tmpUserFuncGroup['expire_time'] + $durationInSecs;
                 $tmp['status'] = 1;
             } else {
                 $tmp['start_time'] = $currTime;
                 $tmp['expire_time'] = $currTime + $durationInSecs;
                 $tmp['status'] = 1;
             }
             $tb_userFG->where('id=' . $tmpUserFuncGroup['id'])->setField($tmp);
         } else {
             $tmp = array();
             $tmp['user_id'] = $this->websiteUserId;
             $tmp['group_id'] = $codeFgId;
             $tmp['start_time'] = $currTime;
             $tmp['expire_time'] = $currTime + $durationInSecs;
             $tmp['status'] = 1;
             $tb_userFG->add($tmp);
         }
     }
     // 检查该用户是否已经配置公共账号,如果配置了,自动开通功能组对应的功能项,并复制模版数据。
     $publicAccount = M('wxuser')->where(array('uid' => $this->websiteUserId, 'status' => 1))->field('token')->find();
     if ($publicAccount) {
         //$websiteUserId, $uname, $token
         $userInfo = M('users')->where(array('id' => $this->websiteUserId))->field('username')->find();
         $publicAccountFuncManager = new PublicAccountFuncManager($this->websiteUserId, $userInfo['username'], $publicAccount['token']);
         foreach ($fgList as $fgId) {
             $publicAccountFuncManager->openSingleFuncGroup($fgId);
         }
     }
 }