Пример #1
0
 /**
  * 使用用户手机号、邮箱  查询该用户信息
  * @param $username 用户名(手机号、邮箱)
  *
  * @return array
  */
 public function getByUserName($username = '')
 {
     $result = '';
     if (empty($username)) {
         return $result;
     }
     if (PublicLibrary::checkMobileType($username) > 0) {
         $key = 'mobile';
     }
     if (PublicLibrary::is_valid_email($username)) {
         $key = 'email';
     }
     if (isset($key)) {
         $result = Member::find()->where([$key => $username, 'is_del' => Member::STATUS_MEMBERIS_DEL])->asArray()->one();
         return $result;
     }
 }
Пример #2
0
 /**
  */
 public function tplSuccessCallback($client)
 {
     $mTplogin = new UserThirdPartyLogin();
     $id = $client->getId();
     $key = $client->openid();
     $result = '';
     $userAttrs = $client->getUserAttributes();
     $userProfile = $client->getUserInfo();
     $openid = $userAttrs[$key];
     $data = ['type' => $id, 'open_id' => $openid, 'profile_info' => json_encode($userProfile)];
     if (isset($userAttr['expire_in'])) {
         $data['expire_time'] = $userAttr['expire_in'];
     }
     try {
         if (!($result = $mTplogin->checkBindByOpenid($openid))) {
             if ($userAr = $mTplogin->bind($data)) {
                 $userAr['profile'] = $userProfile;
                 $this->setTplSessionToUser($userAr);
             } else {
                 // TODO: 绑定失败
             }
         } else {
             if ($result === TRUE) {
                 $this->setTplSessionToUser(['type' => $id, 'open_id' => $openid, 'profile' => $userProfile]);
             } else {
                 //登陆状态
                 $mMember = new Member();
                 $userData = $mMember->find()->where(['uid' => $result])->one();
                 if ($userData) {
                     $session = Yii::$app->session;
                     $session->isActive ? '' : $session->open();
                     $user = array('uid' => $userData['uid'], 'mobile' => $userData['mobile'], 'email' => $userData['email'], 'username' => $userData['mobile'] ? $userData['mobile'] : $userData['email'], 'nickname' => $userData['nickname'] ? $userData['nickname'] : $userData['username'], 'is_admin' => 0);
                     $session->set('user', $user);
                 }
             }
             // TODO: 已经绑定
         }
     } catch (Exception $e) {
         // TODO: 登录异常
     }
 }
Пример #3
0
 /**
  * [产品详情]
  * @param  int $id 产品id
  * @return array     产品信息渲染到页面view
  */
 public function actionView($id)
 {
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     //判断产品是否发布
     $base = IProductBase::find()->select('status,uid')->where('id = :id', [':id' => $id])->asArray()->one();
     if (!empty($_SESSION['user'])) {
         if ($base['status'] != IProductBase::STATUS_VERIFEND) {
             if ($base['uid'] != $_SESSION['user']['uid']) {
                 return $this->redirect(['index']);
                 //跳转到完善信息
             }
         }
     } else {
         if ($base['status'] != IProductBase::STATUS_VERIFEND) {
             return $this->redirect(['index']);
             //跳转到完善信息
         }
     }
     //增加总访问量
     $mProductStat = new IProductStat();
     $mProductStat->modify('page_views', $id, 1, true);
     //访问日志
     $mViewsLog = new ViewsLog();
     $mViewsLog->modify($id, ViewsLog::PRODUCT_TYPE);
     //增加周访问量,月访问量
     $week_num = $mViewsLog->ViewsNum($id, ViewsLog::PRODUCT_TYPE, 7);
     $month_num = $mViewsLog->ViewsNum($id, ViewsLog::PRODUCT_TYPE, 30);
     $mProductStat->modifyviewnum('week_views', $id, $week_num);
     $mProductStat->modifyviewnum('month_views', $id, $month_num);
     //基础数据和扩展数据查询
     $re = IProductBase::find()->With('extra', 'stat')->where(IProductBase::tableName() . '.id = :id', [':id' => $id])->asArray()->one();
     //该产品用户共发布产品数
     $presentNum = IProductBase::find()->where(['uid' => $re['uid'], 'status' => IProductBase::STATUS_VERIFEND])->count();
     //喜欢此产品用户
     $model = new ProductFollow();
     $loves = $model->getFollowUsers($id);
     //产品发布人头像及姓名
     $model = new Member();
     $user = $model->find()->select(['avatar', 'nickname'])->where(['uid' => $re['uid']])->asArray()->one();
     //参加活动
     $model = new ActivityProduct();
     //        print_r($id);exit;
     $actives = $model->getActivityDetail($id);
     // $actives = $model->getActivitiseById($id);
     // print_r($actives);exit;
     foreach ($actives as $key => $value) {
         if ($value['acti_id'] == 8) {
             $mBaiyingShare = new BaiyingShare();
             $number = $mBaiyingShare->getShareNum($value['id']);
         }
         if ($value['acti_id'] == 9) {
             $rel_id = $value['id'];
         }
     }
     //活动map
     $activityBase = new ActivityBase();
     $activesMap = $activityBase->getActivityMap();
     if (isset($rel_id)) {
         //投票信息
         $city = "上海";
         $poll_type_id = PollType::GOODPRODUCT_TYPE;
         $mpoll = new poll();
         $pollone = $mpoll->getPollByCity($city, $poll_type_id);
         //投票项信息
         $moption = new polloption();
         $optione = $moption->getOptionByowner($pollone['poll_id'], $rel_id);
     }
     return $this->render('view', ['re' => $re, 'present_num' => $presentNum, 'actives' => $actives, 'now' => time(), 'number' => isset($number) ? intval($number) : '', 'loves' => $loves, 'user' => $user, 'activesMap' => $activesMap, 'optione' => isset($optione) ? $optione : '']);
 }