123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- <?php
- namespace api\controllers;
- use common\library\UrlHelper;
- use common\models\Information;
- use common\models\System;
- use common\models\User;
- use common\models\Wallet;
- use Yii;
- use yii\base\InvalidParamException;
- use yii\web\BadRequestHttpException;
- use yii\web\Controller;
- use yii\filters\VerbFilter;
- use yii\filters\AccessControl;
- use common\models\LoginForm;
- use frontend\models\PasswordResetRequestForm;
- use frontend\models\ResetPasswordForm;
- use frontend\models\SignupForm;
- use frontend\models\ContactForm;
- /**
- * Site controller
- */
- class SiteController extends Controller
- {
- /**
- * @inheritdoc
- */
- public function behaviors()
- {
- return [
- 'access' => [
- 'class' => AccessControl::className(),
- 'only' => ['logout', 'signup'],
- 'rules' => [
- [
- 'actions' => ['signup','sendcode','register'],
- 'allow' => true,
- 'roles' => ['?'],
- ],
- [
- 'actions' => ['logout'],
- 'allow' => true,
- 'roles' => ['@'],
- ],
- ],
- ],
- 'verbs' => [
- 'class' => VerbFilter::className(),
- 'actions' => [
- 'logout' => ['post'],
- 'sendcode'=>['post'],
- 'register'=>['post']
- ],
- ],
- ];
- }
- /**
- * @inheritdoc
- */
- public function actions()
- {
- return [
- 'error' => [
- 'class' => 'yii\web\ErrorAction',
- ],
- 'captcha' => [
- 'class' => 'yii\captcha\CaptchaAction',
- 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
- ],
- ];
- }
- /**
- * Displays homepage.
- *
- * @return mixed
- */
- public function actionIndex()
- {
- return $this->render('index');
- }
- /**
- * Logs in a user.
- *
- * @return mixed
- */
- public function actionLogin()
- {
- if (!Yii::$app->user->isGuest) {
- return $this->goHome();
- }
- $model = new LoginForm();
- if ($model->load(Yii::$app->request->post()) && $model->login()) {
- return $this->goBack();
- } else {
- return $this->render('login', [
- 'model' => $model,
- ]);
- }
- }
- /**
- * banner跳转页面
- */
- public function actionHtmlpage(){
- $this->layout="main";
- $artid = intval(Yii::$app->request->get('id'));
- $info =Information::findOne($artid);
- return $this->render('myhtml',['content'=>$info]);
- }
- /**
- * 推荐有奖页面
- */
- public function actionAward(){
- $this->layout=false;
- return $this->render('register');
- }
- /**
- * 发送验证码
- */
- public function actionSendcode(){
- $tel = Yii::$app->request->post('tel');
- $str = 'salon'.$tel;
- $sige= md5($str);
- $post_data = array(
- 'username' => $tel,
- 'type'=>1,
- 'sign'=>$sige
- );
- $result =json_decode($this->send_post('http://api.jiehengtech.com/v1/telcode/get?response_code=json', $post_data),true);
- $code = $result['data']['code'];
- $msg=$result['data']['message'];
- if($code==1){
- return json_encode(['sign' => '0','msg'=>$msg]);
- }
- return json_encode(['sign' => '1','msg'=>'验证码发送成功!']);
- }
- /**
- * 注册验证
- */
- public function actionRegister(){
- $tel = Yii::$app->request->post('username');
- $code = Yii::$app->request->post('code');
- $pass = Yii::$app->request->post('password');
- $id = Yii::$app->request->post('id');//注册人的id
- $post_data = array(
- 'username' => $tel,
- 'code'=>$code,
- );
- //检验验证码是否正确
- $result =json_decode($this->send_post('http://api.jiehengtech.com/v1/user/register?response_code=json', $post_data),true);
- $code = $result['data']['code'];
- if($code==1){
- return json_encode(['sign' => '0','msg'=>'验证码错误!']);
- }
- else{
- //验证码验证通过
- //调用输入密码注册接口
- $post_data2 = array(
- 'username' => $tel,
- 'password'=>$pass,
- 'password2'=>$pass,
- 'recommend'=>$id
- );
- $result2 =json_decode($this->send_post('http://api.jiehengtech.com/v1/user/register2?response_code=json', $post_data2),true);
- $code = $result2['data']['code'];
- $message = $result2['data']['message'];
- if($code==1){
- return json_encode(['sign' => '0','msg'=>$message]);
- }
- //获取推荐人id
- if(!empty($id)){
- //录入推荐人奖励信息
- $set = System::find()->where(array('name'=>'earning'))->one();
- $award = $set->content ;//推荐每个人的奖励
- //查看推荐人是否存在
- $referals = User::find()->where(array('id'=>$id,'role'=>User::ROLE_CUSTOMER))->one();
- if(!empty($referals)){
- $wallet = Wallet::find()->where(array('uid'=>$referals->id))->one();
- if(empty($wallet)){
- //钱包不存在
- $wallet = new Wallet();
- $wallet->uid=Yii::$app->user->id;
- $wallet->amount=$award;
- $wallet->updated_at=time();
- $wallet->referrals=1;
- $wallet->allaward=$award;
- if(!$wallet->save()){
- //保存推荐人信息失败
- }
- }
- else{
- $wallet->updateCounters(['amount'=>$award,'referrals'=>1,'allaward'=>$award]);
- }
- }
- }
- return json_encode(['sign' => '1','msg'=>'注册成功!']);
- }
- }
- public function actionDownload(){
- return $this->render('download');
- }
- /**
- * 发送post请求
- * @param string $url 请求地址
- * @param array $post_data post键值对数据
- * @return string
- */
- function send_post($url, $post_data) {
- $postdata = http_build_query($post_data);
- $options = array(
- 'http' => array(
- 'method' => 'POST',
- 'header' => 'Content-type:application/x-www-form-urlencoded',
- 'content' => $postdata,
- 'timeout' => 15 * 60 // 超时时间(单位:s)
- )
- );
- $context = stream_context_create($options);
- $result = file_get_contents($url, false, $context);
- return $result;
- }
- /**
- * Logs out the current user.
- *
- * @return mixed
- */
- public function actionLogout()
- {
- Yii::$app->user->logout();
- return $this->goHome();
- }
- /**
- * Displays contact page.
- *
- * @return mixed
- */
- public function actionContact()
- {
- $model = new ContactForm();
- if ($model->load(Yii::$app->request->post()) && $model->validate()) {
- if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
- Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
- } else {
- Yii::$app->session->setFlash('error', 'There was an error sending your message.');
- }
- return $this->refresh();
- } else {
- return $this->render('contact', [
- 'model' => $model,
- ]);
- }
- }
- /**
- * Displays about page.
- *
- * @return mixed
- */
- public function actionAbout()
- {
- return $this->render('about');
- }
- /**
- * Signs user up.
- *
- * @return mixed
- */
- public function actionSignup()
- {
- $model = new SignupForm();
- if ($model->load(Yii::$app->request->post())) {
- if ($user = $model->signup()) {
- if (Yii::$app->getUser()->login($user)) {
- return $this->goHome();
- }
- }
- }
- return $this->render('signup', [
- 'model' => $model,
- ]);
- }
- /**
- * Requests password reset.
- *
- * @return mixed
- */
- public function actionRequestPasswordReset()
- {
- $model = new PasswordResetRequestForm();
- if ($model->load(Yii::$app->request->post()) && $model->validate()) {
- if ($model->sendEmail()) {
- Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
- return $this->goHome();
- } else {
- Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for the provided email address.');
- }
- }
- return $this->render('requestPasswordResetToken', [
- 'model' => $model,
- ]);
- }
- /**
- * Resets password.
- *
- * @param string $token
- * @return mixed
- * @throws BadRequestHttpException
- */
- public function actionResetPassword($token)
- {
- try {
- $model = new ResetPasswordForm($token);
- } catch (InvalidParamException $e) {
- throw new BadRequestHttpException($e->getMessage());
- }
- if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
- Yii::$app->session->setFlash('success', 'New password saved.');
- return $this->goHome();
- }
- return $this->render('resetPassword', [
- 'model' => $model,
- ]);
- }
- }
|