Beispiel #1
0
 public function actionIndex()
 {
     $this->layout = false;
     if (\Yii::$app->request->isAjax) {
         $user = new User();
         $data = \Yii::$app->request->post();
         $userInfo = $user->getFindUser(['name' => $data['name']]);
         $pass = md5(md5($data['password']));
         \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
         //将响应数据转json格式
         if (!$userInfo || $userInfo['password'] != $pass) {
             //验证用户登录信息
             return ['msg' => '用户名或密码错误', 'status' => 0];
         } else {
             if ($member = \common\models\User::getInstance()->getUserByPhone($userInfo['phone'])) {
                 $userInfo['member'] = $member;
             }
             $auth = \Yii::$app->authManager;
             $userRole = $auth->getAssignments($userInfo['id']);
             $role = "";
             foreach ($userRole as $k => $v) {
                 if ($k == 'admin') {
                     $role = "admin";
                     break;
                 }
                 $role .= "," . $k;
             }
             $userInfo['role'] = $role;
             $user->setUserSession($userInfo);
             //设置Session
             return ['msg' => '登录成功', 'status' => 1];
         }
     }
     return $this->render('index.html');
 }
Beispiel #2
0
 public function actionAjaxSiteSearch()
 {
     $andWhere = [];
     User::getInstance()->processAgeAndHeight($this->get);
     User::getInstance()->searchWhere($andWhere, $this->get);
     $andWhere[] = ['in', 'status', [1, 2]];
     $andWhere[] = ['like', "json_extract(info,'\$.head_pic')", '/images/'];
     $list = User::getInstance()->lists(($this->get['page'] - 1) * 18, 18, $andWhere, 'last_login_time');
     foreach ($list as $k => $v) {
         $list[$k]['info'] = json_decode($list[$k]['info']);
     }
     if ($list) {
         return $this->renderAjax('ajax_search_data.html', ['list' => $list]);
     } else {
         echo 'null_data';
         return;
     }
 }
Beispiel #3
0
 public function actionAuth()
 {
     $data = $this->post;
     if ($data['status'] != 3) {
         $date = date('Y-m-d', $data['vo']['create_time']);
         if ($data['type'] == 1) {
             $msg['message'] = '你已被举报,被举报内容:' . $data['vo']['content'] . ';被举报时间:' . $date . ';审核情况:情况属实;处理结果:给予警告一次;如有疑问请拨打客服电话023-68800997。';
         } elseif ($data['type'] == 2) {
             UserInformation::getInstance()->updateUserInfo($data['vo']['feedback_id'], ['report_flag' => 1]);
             $msg['message'] = '你已被举报,被举报内容:' . $data['vo']['content'] . ';被举报时间:' . $date . ';审核情况:情况属实;处理结果:资料卡标记;如有疑问请拨打客服电话023-68800997。';
         } elseif ($data['type'] == 3) {
             UserInformation::getInstance()->updateUserInfo($data['vo']['feedback_id'], ['report_flag' => 1]);
             User::getInstance()->editUserTableInfo($data['vo']['feedback_id'], ['status' => 3]);
             $msg['message'] = '你已被举报,被举报内容:' . $data['vo']['content'] . ';被举报时间:' . $date . ';审核情况:情况属实;处理结果:永久封禁;如有疑问请拨打客服电话023-68800997。';
         }
         // 此处处理发送给被举报人
         $msg['send_user_id'] = isset($_SESSION[USER_SESSION]['member']) ? $_SESSION[USER_SESSION]['member']['id'] : 1;
         $msg['receive_user_id'] = $data['vo']['feedback_id'];
         UserMessage::getInstance()->addMessage($msg);
         // 是否发送给举报人
         if (isset($data['ret']) && $data['ret'] == 'on') {
             $retMsg['send_user_id'] = isset($_SESSION[USER_SESSION]['member']) ? $_SESSION[USER_SESSION]['member']['id'] : 1;
             $retMsg['receive_user_id'] = $data['vo']['user_id'];
             $retMsg['message'] = '感谢您对本网站文明建设的支持,经查证情况属实,我们已对该账号做出相应处理';
             UserMessage::getInstance()->addMessage($retMsg);
         }
     } else {
         // 是否发送给举报人
         if (isset($data['ret']) && $data['ret'] == 'on') {
             $retMsg['send_user_id'] = isset($_SESSION[USER_SESSION]['member']) ? $_SESSION[USER_SESSION]['member']['id'] : 1;
             $retMsg['receive_user_id'] = $data['vo']['user_id'];
             $retMsg['message'] = '感谢您对本网站文明建设的支持,但因证据不足,暂时不予处理';
             UserMessage::getInstance()->addMessage($retMsg);
         }
     }
     if (Feedback::getInstance()->auth($data['id'], $data['status'])) {
         $this->renderAjax(['status' => 1, 'message' => '成功']);
     } else {
         $this->renderAjax(['status' => 0, 'message' => '失败']);
     }
 }
Beispiel #4
0
 public function actionQuickLogin()
 {
     // QQ登陆
     if ($this->get['t'] == 'qq' && isset($this->get['code']) && $this->get['code'] != '') {
         $qqUser = Qq::getInstance()->getUser($this->get['code']);
         if ($qqUser) {
             if (!($user = User::getInstance()->getUser(['username' => $qqUser['openId']]))) {
                 $user = ['username' => $qqUser['openId'], 'password' => $qqUser['openId'], 'login_type' => 2, 'sex' => $qqUser['sex']];
                 $user['id'] = User::getInstance()->addUser($user);
             }
         }
     } else {
         if ($this->get['t'] == 'weibo' && isset($this->get['code']) && $this->get['code'] != '') {
             $weiboUser = Weibo::getInstance()->getUser($this->get['code']);
             print_r($weiboUser);
             exit;
         }
     }
     \common\models\User::getInstance()->loginLog($user['id']);
     Cookie::getInstance()->setLoginCookie($user, '/qt');
     return $this->render();
 }
Beispiel #5
0
 /**
  * 更新用户数据(目前用于资料子页面)
  * @param $user_id
  * @param $data array
  * @return bool
  */
 public function updateUserInfo($user_id, $data)
 {
     $row = false;
     $userInfo = User::getInstance()->getUserById($user_id);
     if ($data && $userInfo) {
         $_user_information_table = $this->tablePrefix . 'user_information';
         // 表名
         switch (key($data)) {
             case 'personalized':
                 // 个性签名
             // 个性签名
             case 'honesty_value':
                 // 诚信认证值
             // 诚信认证值
             case 'went_travel':
                 // 去过的地方
             // 去过的地方
             case 'want_travel':
                 // 想去的地方
             // 想去的地方
             case 'love_sport':
                 // 喜欢的运动
             // 喜欢的运动
             case 'want_film':
                 // 想看的电影
             // 想看的电影
             case 'like_food':
                 // 喜欢的美食
             // 喜欢的美食
             case 'privacy_pic':
                 // 照片权限
             // 照片权限
             case 'privacy_per':
                 // 动态权限
             // 动态权限
             case 'privacy_wechat':
                 // 微信显示
             // 微信显示
             case 'privacy_qq':
                 // QQ显示(1全部2关注3vip4不公开)
             // QQ显示(1全部2关注3vip4不公开)
             case 'mature_time':
                 // 到期时间
             // 到期时间
             case 'service_status':
                 // 服务状态 1:已申请,0:未申请
             // 服务状态 1:已申请,0:未申请
             case 'has_identify':
                 // 是否认证 1:已申请,0:未申请
             // 是否认证 1:已申请,0:未申请
             case 'report_flag':
                 // 标记被举报 1:已标记,0:未标记
             // 标记被举报 1:已标记,0:未标记
             case 'intention':
                 // 意向类别ID
             // 意向类别ID
             case 'reason':
                 // 回访内容
             // 回访内容
             case 'contact_time':
                 // 电话联系时间
             // 电话联系时间
             case 'return_time':
                 // 回访时间(放弃时间)
             // 回访时间(放弃时间)
             case 'matchmaker':
                 // 专属红娘
             // 专属红娘
             case 'mature_time':
                 // 服务到期时间
                 $sql = "UPDATE {$_user_information_table} SET " . key($data) . " = '" . $data[key($data)] . "' WHERE user_id={$user_id}";
                 break;
             case 'matchmaking':
                 // 服务红娘
                 $sql = "UPDATE {$_user_information_table} SET " . key($data) . " = '" . $data[key($data)] . "' WHERE user_id={$user_id}";
                 break;
             case 'auth':
                 // 诚信认证
                 $arr = explode('_', $data['auth'], 3);
                 $sql = "UPDATE {$_user_information_table} SET auth = JSON_REPLACE(auth,'\$." . $arr[0] . '_' . $arr[1] . "','" . $arr[2] . "'), auth = JSON_REPLACE(auth,'\$." . $arr[0] . '_time' . "','" . YII_BEGIN_TIME . "'), auth = JSON_REPLACE(auth,'\$." . $arr[0] . '_check' . "','" . false . "') WHERE user_id={$user_id}";
                 break;
             case 'identity':
                 // 身份证认证
                 $arr = $data['identity'];
                 $sql = "UPDATE {$_user_information_table} SET info = JSON_REPLACE(info,'\$." . 'real_name' . "','" . $arr . "') WHERE user_id={$user_id}";
                 break;
             case 'occupation':
                 // 职业
                 $arr = explode('-', $data['occupation']);
                 $sql = "UPDATE {$_user_information_table} SET info = JSON_REPLACE(info,'\$.occupation','" . $arr[0] . "'), info = JSON_REPLACE(info,'\$.children_occupation','" . $arr[1] . "') WHERE user_id={$user_id}";
                 break;
             case 'address':
                 // 地区
                 $arr = explode('-', $data['address']);
                 $arr[2] = $arr[2] ? $arr[2] : 0;
                 $arr[1] = $arr[1] ? $arr[1] : 0;
                 $sql = "UPDATE {$_user_information_table} SET province = {$arr[0]}, city = {$arr[1]}, area = {$arr[2]},info = JSON_REPLACE(info,'\$.local','" . $arr[3] . "')  WHERE user_id={$user_id}";
                 break;
             case 'age':
                 // 年龄
                 $arr = explode('-', $data['age']);
                 $arr[0] = (int) $arr[0];
                 $arr[1] = (int) $arr[1];
                 $arr[2] = (int) $arr[2];
                 $arr[3] = (int) $arr[3];
                 $sql = "UPDATE {$_user_information_table} SET info = JSON_REPLACE(info,'\$.age','" . $arr[0] . "'), info = JSON_REPLACE(info,'\$.zodiac','" . $arr[1] . "'), info = JSON_REPLACE(info,'\$.constellation','" . $arr[2] . "'), age = {$arr[3]} WHERE user_id={$user_id}";
                 break;
             default:
                 $sql = "UPDATE {$_user_information_table} SET info = JSON_REPLACE(info,'\$." . key($data) . "','" . $data[key($data)] . "') WHERE user_id={$user_id}";
                 break;
         }
         $row = $this->getDb()->createCommand($sql)->execute();
         //var_dump($row);echo $sql.'<br/>';
     }
     return $row;
 }
Beispiel #6
0
 /**
  * 修改用户状态(后台使用)
  */
 public function actionEditUserStatus()
 {
     $user_id = $this->get['user_id'];
     unset($this->get['user_id']);
     if ($data = \common\models\User::getInstance()->editUserTableInfo($user_id, $this->get)) {
         return $this->renderAjax(['status' => 1, 'data' => $data, 'message' => '修改成功']);
     } else {
         return $this->renderAjax(['status' => 0, 'data' => [], 'message' => '修改失败']);
     }
 }
Beispiel #7
0
 /**
  * 添加管理员用户
  * @param $id
  * @param $data
  */
 public function addAdminUser($id, $data)
 {
     $member['id'] = $id;
     $member['phone'] = $data['phone'];
     $member['personalized'] = $data['introduction'];
     $member['info']['real_name'] = $data['name'];
     $member['info']['qq'] = isset($data['qq']) && !empty($data['qq']) ? $data['qq'] : '';
     $member['info']['wechat'] = isset($data['wechat']) && !empty($data['wechat']) ? $data['wechat'] : '';
     $member['password'] = $data['password'];
     $member['sex'] = !empty($data['sex']) ? $data['sex'] : 1;
     if (\common\models\User::getInstance()->addUser($member) && !empty($data['photo'])) {
         $photo['type'] = 1;
         $photo['thumb_path'] = $data['photo'];
         $photo['pic_path'] = str_replace('thumb', 'picture', $data['photo']);
         $photo['time'] = time();
         $photo['is_check'] = 1;
         UserPhoto::getInstance()->addPhoto($id, $photo, 1);
     } else {
         return false;
     }
     return true;
 }
Beispiel #8
0
 public function editUser($data)
 {
     $user = $data['user'];
     $user['id'] = $data['user_id'];
     unset($data['user']);
     $userInfo = $data;
     if (isset($userInfo['info']['age']) && !empty($data['info']['age'])) {
         $userInfo['age'] = floor((time() - $userInfo['info']['age']) / 365 / 24 / 3600);
     }
     if (isset($userInfo['info']['real_name']) && !empty($data['info']['real_name'])) {
         $userInfo['info']['real_name'] = trim($userInfo['info']['real_name']);
     }
     $oldUser = $this->getUserById($data['user_id']);
     $defaultInfo = json_decode($oldUser['info']);
     if (is_object($defaultInfo)) {
         $defaultInfo = (array) $defaultInfo;
     }
     //var_dump($defaultInfo);exit;
     $userInfo['info'] = json_encode(array_merge($defaultInfo, $userInfo['info']));
     $this->getDb()->createCommand()->update($this->tablePrefix . "user_information", $userInfo, ['user_id' => $data['user_id']])->execute();
     $this->getDb()->createCommand()->update($this->tablePrefix . "user", $user, ['id' => $data['user_id']])->execute();
     // 添加图片
     if (isset($data['cardFace_List'])) {
         User::getInstance()->insertUserPhoto($user['id'], $data);
     }
     return $user;
 }
Beispiel #9
0
 public function actionGetUser()
 {
     if ($data = User::getInstance()->getUserById($this->post['user_id'])) {
         $this->renderAjax(['status' => 1, 'data' => $data, 'message' => '成功']);
     } else {
         $this->renderAjax(['status' => 0, 'data' => [], 'message' => '失败']);
     }
 }
Beispiel #10
0
 /**
  * 找回密码
  */
 public function actionForgotPassword()
 {
     $user = \common\models\User::getInstance()->getUserByPhone($this->get['phone']);
     $data['password'] = md5(md5($this->get['password']));
     $data['reset_pass_time'] = time();
     if ($list = \common\models\User::getInstance()->editUserTableInfo($user['id'], $data)) {
         $this->renderAjax(['status' => 1, 'data' => $list, 'msg' => '修改成功']);
     } else {
         $this->renderAjax(['status' => 0, 'data' => [], 'msg' => '修改失败']);
     }
 }
Beispiel #11
0
 /**
  * 退出登录
  */
 public function actionLoginOut()
 {
     $data = User::getInstance()->loginOut();
     $this->renderAjax(['status' => 1, 'data' => $data]);
 }
Beispiel #12
0
 /**
  * 设置订单状态
  * @param $orderId
  * @param int $status
  * @param bool $isAdmin
  * @return bool
  */
 public function setOrderStatus($orderId, $status = 1, $isAdmin = false)
 {
     $orderInfo = $this->getInstance()->getOne($orderId);
     // 订单信息
     if ($orderInfo['status'] == 1) {
         return true;
     }
     // 异常情况,不予处理,订单已经成功
     $tran = \Yii::$app->db->beginTransaction();
     $row = $this->updateAll(['status' => $status, 'finsh_time' => time()], ['order_id' => $orderId]);
     // 修改订单状态
     $bal = true;
     if (!$isAdmin) {
         $bal = User::getInstance()->changeBalance($orderInfo['user_id'], -$orderInfo['money']);
         // 充值余额
     }
     if ($orderInfo['charge_goods_id'] != 8) {
         $mat = User::getInstance()->changeMatureTime($orderInfo['user_id'], $orderInfo, 0, $isAdmin);
         // 开通服务
     } else {
         $mat = true;
     }
     if ($row && $bal && $mat) {
         $tran->commit();
         // 提交
         return true;
     }
     $tran->rollBack();
     // 回滚
     return false;
 }
Beispiel #13
0
 /**
  * 微信登录获取微信用户信息
  * @return array|bool
  */
 protected function weChatMember()
 {
     $code = \Yii::$app->request->get('code');
     if ($code == null) {
         return false;
     } else {
         setcookie('wx_login', 'login', time() + 3600 * 24 * 30, '/wap');
     }
     $memberInfo = \Yii::$app->wechat->getMemberByCode($code);
     // 从微信获取用户
     //        $memberInfo['openid'] = 'oEQpts_MMapxllPTfwRw0VfGeLSg'; // 测试
     $data = ['wx_id' => $memberInfo['openid'], 'username' => $memberInfo['openid'], 'password' => 'wx_xx', 'login_type' => 3, 'sex' => isset($memberInfo['sex']) && $memberInfo['sex'] == 2 ? 0 : 1];
     $user = User::getInstance()->getUser(['wx_id' => $data['wx_id']]);
     if (!$user) {
         // 用户不存在,虚拟账号登陆
         setcookie('wx_id', $data['wx_id'], time() + 3600 * 24 * 30, '/');
         $data['sex'] == 1 ? $user = User::getInstance()->getUserById(10011) : ($user = User::getInstance()->getUserById(10016));
     }
     // 登录日志
     \common\models\User::getInstance()->loginLog($user['id']);
     // 设置登录cookie
     Cookie::getInstance()->setLoginCookie($user);
     return $user;
 }