예제 #1
0
 /**
  * 好产品投票接口
  */
 public function actionGoodPoll()
 {
     $params = Yii::$app->request->post();
     $tmp = $params['method'];
     $params = array_map('intval', $params);
     $params['method'] = $tmp;
     if (!Yii::$app->util->isAjax()) {
         echo Yii::$app->util->formatResEncode('1000', '不是ajax请求');
         return;
     }
     //验证参数
     if (!isset($params['mobile']) || !Yii::$app->util->checkMobileType($params['mobile']) || !isset($params['authcode']) || !$params['authcode'] || !isset($params['poll_id']) || !$params['poll_id'] || !isset($params['method']) || !$params['method']) {
         echo Yii::$app->util->formatResEncode('1001', '参数错误');
         return;
     }
     $mMember = new Member();
     if ($params['method'] == 'pwd') {
         $userone = $mMember->getByUserName($params['mobile']);
         if (!$userone) {
             echo Yii::$app->util->formatResEncode('1002', '不存在该用户');
             return;
         } else {
             $passmd = PublicLibrary::password_encode($params['authcode'], $userone['random']);
             if ($passmd != $userone['password']) {
                 echo Yii::$app->util->formatResEncode('1003', '密码错误');
                 return;
             }
         }
     } else {
         if ($params['method'] == 'authcode') {
             //获取验证码
             $session = Yii::$app->session;
             $session->isActive ? '' : $session->open();
             $authcode = $session->get('authcode');
             $mobile = $session->get('mobile');
             $session->close();
             //验证手机验证码
             if (!isset($params['authcode'])) {
                 echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                 return;
             } else {
                 if ($authcode != $params['authcode']) {
                     echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                     return;
                 } else {
                     if ($mobile != $params['mobile']) {
                         echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                         return;
                     }
                 }
             }
         } else {
             echo Yii::$app->util->formatResEncode('1001', '参数错误');
             return;
         }
     }
     $exist = $mMember->isRegistByConditons(['mobile' => $params['mobile']]);
     //新用户注册
     if (!$exist) {
         if ($mMember->regist(['mobile' => $params['mobile']])) {
             //发送注册用户密码提示信息
             Yii::$app->sms->send($params['mobile'], '欢迎注册idaiyan用户,你的首次用户密码为手机号后六位');
         }
     } else {
         $uId = $exist['uid'];
         //获取rel_id
         $mActivityProduct = new ActivityProduct();
         $conditions = ['user_id' => $uId, 'acti_id' => ActivityBase::GOOD_PRODUCT];
         $one = $mActivityProduct->getOenByConditions($conditions);
         $relId = isset($one) && $one ? $one['id'] : 0;
         if ($relId) {
             //取分享人数据
             $conditions = ['poll_id' => $params['poll_id'], 'owner_id' => $relId];
             $mPollOption = new PollOption();
             $row = $mPollOption->TopNum($conditions);
             if ($row) {
                 $data = ['img' => $row[0]['act']['product']['album'], 'name' => $row[0]['act']['product']['name'], 'poll_votes' => $row[0]['option_votes'], 'option_id' => $row[0]['option_id']];
             }
         }
     }
     //登陆session
     if (!$exist) {
         $exist = $mMember->isRegistByConditons(['mobile' => $params['mobile']]);
     }
     $user = ['uid' => $exist['uid'], 'mobile' => $exist['mobile']];
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     $authcode = $session->set('user', $user);
     $session->close();
     echo Yii::$app->util->formatResEncode('0', '成功', ['data' => isset($data) ? $data : '']);
     return;
 }