public function actionView() { $id = wanhunet::$app->request->post('id'); /** @var Member $member */ $memberCow = Member::$SELECT_ROW; $member = Member::find()->where(['id' => $id])->select($memberCow)->asArray()->one(); $parentMember = Member::find()->select($memberCow)->where(['invitation' => $member['parent_id']])->asArray()->one(); $asset = Asset::find()->where(['user_id' => $id])->select(['experience_money_max', 'experience_money_max_inc', 'money', 'bank_card'])->asArray()->one(); if (!empty($asset['bank_card'])) { $bankCards = empty($asset['bank_card']) ? [] : json_decode($asset['bank_card']); foreach ($bankCards as $bankCard) { $bankCard = unserialize($bankCard); if ($bankCard instanceof BankCard) { /* @var \modules\asset\models\BankCard $bankcard */ $asset['bank_card'] = ['cardId' => $bankCard->cardId, 'backName' => $bankCard->bankName, 'cardUserName' => $bankCard->cardUserName, 'cardPhone' => $bankCard->cardPhone]; } } } $asset['experience_money'] = AssetMoney::getExperienceMoney($id); /** @var MemberOther[] $memberOther */ $memberOther = MemberOther::find()->where(['user_id' => $id])->all(); foreach ($memberOther as $info) { if ($info->table == MemberOther::TABLE_JIUXIN) { $info->table = '玖信贷'; } elseif ($info->table == MemberOther::TABLE_WECHAT) { $info->table = '微信账号'; } } $friends = Member::findOne($id)->findFriends(); return ['member' => $member, 'parent' => $parentMember, 'asset' => $asset, 'MemberOther' => $memberOther, 'friends' => $friends]; }
public function actionOff() { Utils::ensureOpenId(); $request = wanhunet::$app->request; if ($request->isPost) { if (($model = MemberOther::findOne(['row' => $request->post('open_id'), 'table' => MemberOther::TABLE_WECHAT])) !== null) { /** @var MemberOther $model */ $model->row = ''; $model->save(); } wanhunet::$app->user->logout(); return $this->goBack(['info' => "解绑成功"], Url::to(['site/signin'])); } return $this->view('off'); }
public function actionEnter() { Utils::ensureOpenId(); if (wanhunet::$app->user->isGuest) { if (($openId = wanhunet::$app->request->get('open_id')) !== null && ($model = MemberOther::findOne(['row' => $openId, 'table' => MemberOther::TABLE_WECHAT])) !== null) { /** @var MemberOther $model */ if (Yii::$app->user->login($model->member, 3600 * 24 * 30)) { return $this->redirect(Url::to(['main'])); } } return $this->redirect(Url::to(['signin'])); } else { return $this->redirect(Url::to(['signin'])); } }
/** * Logs in a user using the provided username and password. * * @return boolean whether the user is logged in successfully */ public function login() { if ($this->validate()) { $rs = Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); if (!is_null($this->open_id)) { $otherInfo = MemberOther::findOne(['user_id' => wanhunet::$app->user->getId(), 'table' => MemberOther::TABLE_WECHAT]); $otherInfo = $otherInfo == null ? new MemberOther() : $otherInfo; $otherInfo->table = MemberOther::TABLE_WECHAT; $otherInfo->row = $this->open_id; wanhunet::app()->member->setOtherInfo([$otherInfo]); } return $rs; } else { return false; } }
public function acShare() { $errorAuth = ''; if (wanhunet::$app->user->isGuest) { Utils::ensureOpenId(); $url = wanhunet::$app->urlManager->createAbsoluteUrl(['share/index']); $errorAuth = '您未绑定微信账号'; if (($openId = wanhunet::$app->request->get('open_id')) !== null && ($model = MemberOther::findOne(['row' => $openId, 'table' => MemberOther::TABLE_WECHAT])) !== null) { /** @var MemberOther $model */ if (\Yii::$app->user->login($model->member, 3600 * 24 * 30)) { $url = wanhunet::$app->urlManager->createAbsoluteUrl(['share/index/' . wanhunet::app()->member->invitation]); $errorAuth = ''; } } } else { $url = wanhunet::$app->urlManager->createAbsoluteUrl(['share/index/' . wanhunet::app()->member->invitation]); } $url = wanhunet::app()->wechat->getOauth2AuthorizeUrl($url, 'authorize', 'snsapi_userinfo'); if (wanhunet::$app->request->get('qrcode', null) !== null) { Utils::qrcode(urldecode(wanhunet::$app->request->get('qrcode', urlencode($url)))); } return $this->view('share', ['url' => $url, 'errorAuth' => $errorAuth]); }
/** * @param $table * @return array|null|MemberOther */ public function getOtherInfo($table) { return MemberOther::find()->where(['user_id' => $this->id, 'table' => $table])->one(); }
<?php use modules\asset\behaviors\ExperienceMoney; return ['adminEmail' => '*****@*****.**', 'behaviors' => [\modules\member\models\VerificationCode::className() => ['assetExperienceMoney' => ['class' => ExperienceMoney::className()]], \modules\member\models\Member::className() => ['asset' => ['class' => \modules\asset\behaviors\Asset::className(), 'assetConfig' => \modules\asset\models\Asset::className()], 'assetExperienceMoney' => ['class' => ExperienceMoney::className()]], \modules\asset\models\Asset::className() => ['asset_log' => ['class' => \modules\asset\behaviors\Log::className()], 'assetExperienceMoney' => ['class' => ExperienceMoney::className()]], \modules\invest\models\InvestList::className() => ['payedFinish' => \modules\invest\behaviors\InvestListPayed::className()], \modules\asset\models\AssetMoney::className() => [\modules\asset\behaviors\Log::className()], \modules\member\models\MemberOther::className() => [ExperienceMoney::className()]], 'events' => [\modules\asset\behaviors\Asset::className() => [\modules\member\models\Member::EVENT_AFTER_INSERT => \modules\asset\behaviors\Asset::FUNCTION_MEMBER_AFTER_INSERT], \modules\asset\behaviors\ExperienceMoney::className() => [\modules\member\models\VerificationCode::EVENT_VERIFY_SUCCESS_EMAIL => ExperienceMoney::FUNCTION_INC_EMAIL, \modules\member\models\VerificationCode::EVENT_VERIFY_SUCCESS_PHONE => ExperienceMoney::FUNCTION_INC_PHONE, \modules\asset\models\AssetMoney::EVENT_FINISH_PAY => ExperienceMoney::FUNCTION_INC_FIRST_MONEY, \modules\member\models\Member::EVENT_BEFORE_SAVE_IDCARD => ExperienceMoney::FUNCTION_INC_FIRST_IDCARD, \modules\member\models\MemberOther::EVENT_AFTER_INSERT => ExperienceMoney::FUNCTION_INT_BANGDING], \modules\invest\behaviors\InvestListPayed::className() => [\modules\invest\models\InvestList::EVENT_BEFORE_FINISH_PAY => \modules\invest\behaviors\InvestListPayed::FUNCTION_SET_INTEREST, \modules\invest\models\InvestList::EVENT_AFTER_FINISH_PAY => \modules\invest\behaviors\InvestListPayed::FUNCTION_SET_INTEREST_M], \modules\asset\behaviors\Log::className() => [\modules\asset\models\AssetMoney::EVENT_BEFORE_INSERT => \modules\asset\behaviors\Log::FUNCTION_BEFORE_INSERT]]];