public function run() { /** * 验证用户权限 */ if (false == $this->verifyUserAuth()) { return false; } $area = ['user_cover', 'user_nickname', 'user_gender', 'user_birthday', 'user_realname', 'user_district', 'user_money', 'user_money_virtual', 'user_mobile', 'persional_sign']; $fields = $this->getDataItem('fields'); //字段 $fields = explode(',', $fields); foreach ($fields as $f) { if (!in_array($f, $area)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '字段名不存在.'); } } $user = UserBase::find('user_id=' . $this->getUserAuth()->userId)->toArray(); $user = $user[0]; $fieldsArr = ['user_cover' => 'user_cover', 'user_nickname' => 'user_nickname', 'user_gender' => 'user_gender', 'user_birthday' => 'user_birthday', 'user_realname' => 'user_realname', 'user_district' => 'user_district', 'user_money' => 'user_money', 'user_money_virtual' => 'user_money_virtual', 'user_mobile' => 'user_account', 'persional_sign' => 'persional_sign']; $result = []; foreach ($fields as $field) { $key = $fieldsArr[$field]; $value = $user[$key]; if ($field == 'user_cover') { $value = PicUrl::UserCover($value, $this->getDi()); } if ($field == 'persional_sign' && unserialize(base64_decode($value))) { $value = unserialize(base64_decode($value)); } $result[$key] = $value; } $this->setResult($result); }
public function run() { $id = intval($this->getDataItem('id', 0)); if (0 < $id) { $this->question = Question::query()->columns(['u.user_id', 'u.user_nickname', 'u.user_cover', 'Apps\\Common\\Models\\Question.question_id as question_id', 'Apps\\Common\\Models\\Question.question_content as question_content', 'Apps\\Common\\Models\\Question.question_pics as question_pics', 'Apps\\Common\\Models\\Question.answer_num as answer_num', 'Apps\\Common\\Models\\Question.question_follows as follow_num', '0 user_is_follow', 'Apps\\Common\\Models\\Question.question_addtime as addtime'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id=u.user_id', 'u')->where('Apps\\Common\\Models\\Question.question_id= :id: and Apps\\Common\\Models\\Question.question_state > 0')->bind(['id' => $id])->execute()->getFirst(); } else { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '参数异常'); } if ($this->question) { if (unserialize(base64_decode($this->question->question_content))) { $this->question->question_content = unserialize(base64_decode($this->question->question_content)); } $this->question->question_pics = PicUrl::Question(json_decode($this->question->question_pics), $this->getDi()); $this->question->addtime = \Apps\Common\Libs\DateTime::Format($this->question->addtime); $this->question->user_cover = PicUrl::UserCover($this->question->user_cover, $this->getDi()); $this->verifyUserAuth(false); $userId = $this->getUserAuth() ? $this->getUserAuth()->userId : 0; if ($userId > 0) { $count = QuestionFollow::count(['conditions' => 'question_id = :qid: AND user_id = :uid:', 'bind' => ['qid' => $id, 'uid' => $userId]]); $this->question->user_is_follow = $count > 0 ? 1 : 0; } } else { $this->question = null; } $this->setResult($this->question); }
public function run() { $questionId = intval($this->getDataItem('question_id', 0)); $user_id = intval($this->getDataItem('user_id', 0)); $page = intval($this->getDataItem('page', 1)); // $questionId = 194; if ($questionId < 1) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '参数不完整或者参数错误!'); } $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $QuestionAnswer = new QuestionAnswer(); $expertReplyList = $QuestionAnswer->query()->columns(['u.user_id', 'u.user_cover', 'u.user_nickname', 'u.user_gender', 'answer_id', 'answer_content', 'original_content', 'support_count', 'answer_addtime', 'answer_pics'])->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\QuestionAnswer.user_id', 'u')->where("answer_state = 1 and type = 1 and question_id = {$questionId}")->orderBy('answer_addtime DESC')->limit($limit, $offset)->execute()->toArray(); $QuestionAnswerFollow = new QuestionAnswerFollow(); foreach ($expertReplyList as $k => $val) { $expertReplyList[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $expertReplyList[$k]['answer_content'] = unserialize(base64_decode($val['answer_content'])) ?: $val['answer_content']; if ($user_id > 0) { $expertReplyList[$k]['is_support'] = $QuestionAnswerFollow->is_support($user_id, $val['answer_id']) ? '1' : '0'; } else { $expertReplyList[$k]['is_support'] = '0'; } $answer_pics = []; if ($answer_pics_list = json_decode($val['answer_pics'], true)) { foreach ($answer_pics_list as $value) { $answer_pics[] = PicUrl::Question($value, $this->getDi()); } } $expertReplyList[$k]['answer_pics'] = $answer_pics; } $this->setResult($expertReplyList); }
public function run() { $to_user_id = $this->getDataItem('user_id'); if (!(is_numeric($to_user_id) && $to_user_id > 0)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '用户id不能为空.'); } /** * 验证用户权限 */ /*if(!empty($this->parameters->userToken) && $this->verifyUserAuth() && $this->getUserAuth()->userId == $userid){ return $this->errorLog(111, '请跳转我的问答.'); }*/ $field = ['user_cover', 'user_nickname', 'user_gender', 'user_birthday', 'user_realname', 'user_district', 'user_money', 'user_money_virtual', 'bind_phone user_mobile', 'persional_sign', 'user_expert']; $info = UserBase::query()->columns($field)->where('user_id=' . $to_user_id)->execute()->getFirst()->toArray(); // 获取城市信息 $SysAreaZipDistrictPhonecode = new SysAreaZipDistrictPhonecode(); $city = $SysAreaZipDistrictPhonecode->getOne($info['user_district']); $info['user_district'] = $city['FULL_NAME'] ?: ''; // 加入关注数和粉丝数 $UserFollow = new UserFollow(); $info['follow_count'] = $UserFollow->getFollowCount($to_user_id, 1); $info['fans_count'] = $UserFollow->getToFollowCount($to_user_id, 1); $info['user_cover'] = $info['user_cover'] ? PicUrl::UserCover($info['user_cover'], $this->getDi()) : ''; $info['persional_sign'] = $info['persional_sign'] ? unserialize(base64_decode($info['persional_sign'])) : ''; $this->verifyUserAuth(false); if ($user_id = $this->getUserAuth()->userId) { $info['is_follow'] = $UserFollow->is_follow($user_id, $to_user_id, 1) ? '1' : '0'; } else { $info['is_follow'] = '0'; } $this->setResult($info); }
/** * 获取浏览记录的用户列表 * @param int $question_id 问题id * @param int $offset 分页偏移量 * @param int $limit 页大小 * @return array */ public function getViewsUserList($question_id, $offset = 0, $limit = 10) { $list = $this->query()->columns(['u.user_id', 'u.user_cover'])->where('question_id = ' . $question_id)->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\QuestionViewsUser.user_id', 'u')->groupBy('\\Apps\\Common\\Models\\QuestionViewsUser.user_id')->orderBy('add_time DESC')->limit($limit, $offset)->execute()->toArray(); foreach ($list as $k => $val) { $list[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); } return $list; }
/** * 问答 */ public function questionAction() { $id = $this->request->getQuery('id'); if (empty($id)) { echo '问题不存在!'; $this->view->disable(); return; } $limit = 20; $page = 1; $this->tag->setTitle($this->appName . ' - 问答详情'); $question = Question::query()->columns(['u.user_id', 'u.user_nickname', 'u.user_cover', 'Apps\\Common\\Models\\Question.question_id as question_id', 'Apps\\Common\\Models\\Question.question_content as question_content', 'Apps\\Common\\Models\\Question.question_pics as question_pics', 'Apps\\Common\\Models\\Question.question_browsers as answer_num', 'Apps\\Common\\Models\\Question.question_follows as follow_num', '0 user_is_follow', 'Apps\\Common\\Models\\Question.question_addtime as addtime'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id=u.user_id', 'u')->where('question_state>0 and question_id=:id:')->bind(['id' => $id])->execute()->getFirst(); if ($question) { $question->question_pics = PicUrl::Question(json_decode($question->question_pics), $this->di); $question->addtime = \Apps\Common\Libs\DateTime::FriendlyDate($question->addtime, 'mohu'); $question->user_cover = PicUrl::UserCover($question->user_cover, $this->di); if (unserialize(base64_decode($question->question_content))) { $question->question_content = unserialize(base64_decode($question->question_content)); } } else { echo '问题不存在!'; $this->view->disable(); return; } $this->view->setVar('question', $question); $answers = QuestionAnswer::listByQuestionId($id, $limit, 0, 0)->toArray(); $answers = $answers ? $answers : []; $answersData = []; $dataBest = null; foreach ($answers as $arr) { if (unserialize(base64_decode($arr['answer_content']))) { $arr['answer_content'] = unserialize(base64_decode($arr['answer_content'])); } $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->di); $arr['answer_pics'] = PicUrl::Question(json_decode($arr['answer_pics']), $this->di); $arr['addtime'] = \Apps\Common\Libs\DateTime::FriendlyDate($arr['addtime'], 'mohu'); // 处理最佳答案 $best = $arr['answer_best']; if ($best > 5 && $page == 1) { if ($dataBest == null) { $dataBest = $arr; continue; } elseif ($dataBest['answer_best'] < $best) { $dataBest = $arr; continue; } } $arr['answer_best'] = 0; $answersData[] = $arr; } if ($dataBest != null) { $dataBest['answer_best'] = 1; array_splice($answersData, 0, 0, [$dataBest]); } $this->view->setVar('answers', $answersData); }
public function run() { $his_id = $this->getDataItem('his_id'); //要查询用户的id $type = $this->getDataItem('type', ''); $page = intval($this->getDataItem('page', 1)); /** * 验证用户权限 */ if (!empty($this->parameters->userToken) && true == $this->verifyUserAuth()) { if ($this->getUserAuth()->userId == $his_id) { return $this->errorLog(111, '请跳转我的问答.'); } } $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $typeArray = ['his', 'his_answer', 'his_follow']; if (!in_array($type, $typeArray)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '查询的类型不存在.'); } $columns = ['u.user_id', 'u.user_nickname', 'u.user_cover', 'Apps\\Common\\Models\\Question.question_id question_id', 'Apps\\Common\\Models\\Question.question_content question_content', 'Apps\\Common\\Models\\Question.question_pics question_pics', 'Apps\\Common\\Models\\Question.answer_num answer_num', 'Apps\\Common\\Models\\Question.question_browsers browser_num', 'Apps\\Common\\Models\\Question.question_follows follow_num', 'Apps\\Common\\Models\\Question.question_addtime addtime']; $userId = $his_id; $data = []; switch ($type) { case 'his': $data = $this->getHis($userId, $columns, $limit, $offset); break; case 'his_answer': $data = $this->getAnswer($userId, $limit, $offset); break; case 'his_follow': $data = $this->getFollow($userId, $columns, $limit, $offset); break; } $result = []; if ($data && count($data) > 0) { foreach ($data as $arr) { $tmp = PicUrl::Question(json_decode($arr['question_pics']), $this->getDi()); if (is_string($tmp)) { $arr['question_pics'] = $tmp; } if (is_array($tmp)) { $arr['question_pics'] = array_slice($tmp, 0, 2); } //$arr['addtime'] = \Apps\Common\Libs\DateTime::Format($arr['addtime']); $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); if (unserialize(base64_decode($arr['question_content']))) { $arr['question_content'] = unserialize(base64_decode($arr['question_content'])); } $result[] = $arr; } } $this->setResult($result); }
public function run() { /* $jpush=new Jpush(); $param['type'] =1; $param['ispushservice']=1; $param['phone'] ='18623640927'; $param['content'] ="HAHHA"; $jpush->setval($param); $a=$jpush->push(); var_dump($a); exit; */ $questionId = intval($this->getDataItem('question_id', 0)); $page = intval($this->getDataItem('page', 1)); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $this->verifyUserAuth(false); $userId = $this->getUserAuth() ? $this->getUserAuth()->userId : 0; if (0 < $questionId) { $this->answers = QuestionAnswer::listByQuestionId($questionId, $limit, $offset, $userId)->toArray(); } else { $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, 'question id'); } $this->answers = $this->answers ? $this->answers : []; $data = []; $dataBest = null; foreach ($this->answers as $arr) { $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); $arr['answer_pics'] = PicUrl::Question(json_decode($arr['answer_pics']), $this->getDi()); $arr['addtime'] = \Apps\Common\Libs\DateTime::Format($arr['addtime']); if (unserialize(base64_decode($arr['answer_content']))) { $arr['answer_content'] = unserialize(base64_decode($arr['answer_content'])); } // 处理最佳答案 $best = $arr['answer_best']; if ($best > 5 && $page == 1) { if ($dataBest == null) { $dataBest = $arr; continue; } elseif ($dataBest['answer_best'] < $best) { $dataBest = $arr; continue; } } $arr['answer_best'] = 0; $data[] = $arr; } if ($dataBest != null) { $dataBest['answer_best'] = 1; array_splice($data, 0, 0, [$dataBest]); } $this->setResult($data); }
public function run() { $orders = $this->getDataItem('orders', 1); // 排序方式(1=》最新提问,2=》最新回复,3=》人气问答) $page = intval($this->getDataItem('page', 1)); $is_expert_reply = $this->getDataItem('is_expert_reply', 0); // 专家是否回复 // $city_code = (string)$this->getDataItem('city_code', '0'); // 原型去掉了 $user_id = intval($this->getDataItem('user_id', 0)); $keyword = $this->getDataItem('keyword', ''); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $columns = ['question_id', 'question_content', 'question_pics', 'question_tag', 'answer_num', 'question_browsers', 'question_addtime', 'is_expert_reply', 'u.user_id', 'u.user_nickname', 'u.user_expert', 'u.user_cover', 'u.user_gender']; switch ($orders) { case 2: $orders = 'last_reply_time DESC'; break; case 3: $orders = 'question_browsers DESC'; break; default: $orders = 'question_addtime DESC'; } $where = 'question_state = 1'; if ($is_expert_reply == 1) { $where .= ' and is_expert_reply = 1'; } if ($keyword) { $where .= " and question_content like '%{$keyword}%'"; } $list = Question::query()->columns($columns)->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\Question.user_id', 'u')->where($where)->orderBy($orders)->limit($limit, $offset)->execute()->toArray(); $QuestionFollow = new QuestionFollow(); foreach ($list as $k => $val) { // 是否收藏过 if ($user_id) { $list[$k]['is_collection'] = $QuestionFollow->is_follow($val['question_id'], $user_id); } else { $list[$k]['is_collection'] = '0'; } $list[$k]['question_tag'] = $val['question_tag'] ? json_decode($val['question_tag'], true) : []; $list[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $list[$k]['question_content'] = unserialize(base64_decode($val['question_content'])) ?: $val['question_content']; if ($val['question_pics']) { $question_pics = []; foreach (json_decode($val['question_pics'], true) as $key => $value) { $question_pics[] = PicUrl::Question($value, $this->getDi()); } $list[$k]['question_pics'] = $question_pics; } } $this->setResult($list); }
public function run() { $tag_id = intval($this->getDataItem('tag_id', 0)); $page = intval($this->getDataItem('page', 1)); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $columns = ['u.user_id', 'u.user_nickname', 'u.user_cover', 'question_id', 'question_content', 'question_pics', 'answer_num', 'question_browsers browser_num', 'question_follows follow_num', 'question_addtime addtime']; if (-2 == $tag_id) { //精华 /* $this->questions = Question::query() ->columns($columns) ->leftJoin('Apps\Common\Models\UserBase', 'Apps\Common\Models\Question.user_id = u.user_id','u') ->where('question_state = 2') ->orderBy('question_id desc') ->limit($limit,$offset) ->execute()->toArray(); */ $this->questions = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id = u.user_id', 'u')->where('question_state > 0')->orderBy('answer_num desc')->limit($limit, $offset)->execute()->toArray(); } else { if (-1 == $tag_id) { //最热 $this->questions = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id = u.user_id', 'u')->where('question_state > 0')->orderBy('question_browsers desc,question_follows desc')->limit($limit, $offset)->execute()->toArray(); } else { if (0 == $tag_id) { //默认 $this->questions = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id = u.user_id', 'u')->where('question_state>0')->orderBy('question_id desc')->limit($limit, $offset)->execute()->toArray(); } else { //指定条件 $this->questions = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\Question.user_id = u.user_id', 'u')->where('question_state > 0 and question_tag = :question_tag:')->bind(['question_tag' => $tag_id])->orderBy('question_id desc')->limit($limit, $offset)->execute()->toArray(); } } } $this->questions = $this->questions ? $this->questions : []; $data = []; foreach ($this->questions as $arr) { $arr['question_pics'] = PicUrl::Question(json_decode($arr['question_pics']), $this->getDi()); if (is_string($arr['question_pics'])) { $arr['question_pics'] = $arr['question_pics']; } if (is_array($arr['question_pics']) && count($arr['question_pics']) > 2) { $arr['question_pics'] = array_slice($arr['question_pics'], 0, 2); } $arr['addtime'] = \Apps\Common\Libs\DateTime::Format($arr['addtime']); $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); $arr['question_content'] = unserialize(base64_decode($arr['question_content'])); $data[] = $arr; } $this->setResult($data); }
public function run() { $question_id = intval($this->getDataItem('question_id', 0)); if ($question_id < 1) { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, '参数错误!'); } $QuestionTag = new QuestionTag(); if ($tagList = $QuestionTag->query()->where('question_id = ' . $question_id)->execute()->toArray()) { $tag_id = ''; foreach ($tagList as $val) { $tag_id .= $val['tag_id'] . ','; } $tag_id = '(' . trim($tag_id, ',') . ')'; $question_id_list = $QuestionTag->query()->groupBy('question_id')->where("tag_id in{$tag_id} and question_id != {$question_id}")->orderBy('id DESC')->limit(50)->execute()->toArray(); if ($question_id_list) { /*$where_question_id = ''; foreach ($question_id_list as $val) { $where_question_id .= $val['question_id'] . ','; } $where_question_id = '(' . trim($where_question_id, ',') . ')';*/ // 随机取相关问答的id $count = count($question_id_list); if ($count >= 3) { $start = mt_rand(0, $count - 3); $where_question_id = '(' . $question_id_list[$start]['question_id'] . ',' . $question_id_list[$start + 1]['question_id'] . ',' . $question_id_list[$start + 2]['question_id'] . ')'; } else { $where_question_id = ''; foreach ($question_id_list as $val) { $where_question_id .= $val['question_id'] . ','; } $where_question_id = '(' . trim($where_question_id, ',') . ')'; } $list = Question::query()->columns(['question_id', 'question_content', 'question_pics', 'question_tag', 'answer_num', 'question_browsers', 'question_addtime', 'u.user_id', 'u.user_nickname', 'u.user_expert', 'u.user_cover', 'u.user_gender'])->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\Question.user_id', 'u')->where("question_id in{$where_question_id} and question_state = 1")->execute()->toArray(); foreach ($list as $k => $val) { $list[$k]['question_tag'] = $val['question_tag'] ? json_decode($val['question_tag'], true) : []; $list[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $list[$k]['question_content'] = unserialize(base64_decode($val['question_content'])) ?: $val['question_content']; if ($val['question_pics']) { $question_pics = []; foreach (json_decode($val['question_pics'], true) as $key => $value) { $question_pics[] = PicUrl::Question($value, $this->getDi()); } $list[$k]['question_pics'] = $question_pics; } } $this->setResult($list); } } }
public function run() { /*if(false == $this->verifyUserAuth()){ return false; }*/ $type = $this->getDataItem('type', ''); $page = intval($this->getDataItem('page', 1)); $userId = intval($this->getDataItem('user_id', 0)); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $typeArray = ['my', 'answer', 'follow']; if (!in_array($type, $typeArray) || $userId < 1) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '查询的类型不存在.'); } $columns = ['u.user_id', 'u.user_nickname', 'u.user_gender', 'u.user_cover', 'Apps\\Common\\Models\\Question.question_id question_id', 'Apps\\Common\\Models\\Question.question_content question_content', 'Apps\\Common\\Models\\Question.question_pics question_pics', 'Apps\\Common\\Models\\Question.answer_num answer_num', 'Apps\\Common\\Models\\Question.question_browsers', 'Apps\\Common\\Models\\Question.question_addtime', 'question_tag']; $data = []; switch ($type) { case 'my': $data = $this->getMy($userId, $columns, $limit, $offset); break; case 'answer': $data = $this->getAnswer($userId, $limit, $offset); break; case 'follow': $data = $this->getFollow($userId, $columns, $limit, $offset); break; } $result = []; if ($data) { foreach ($data as $arr) { $tmp = PicUrl::Question(json_decode($arr['question_pics']), $this->getDi()); if (is_string($tmp)) { $arr['question_pics'] = $tmp; } if (is_array($tmp)) { // $arr['question_pics'] = array_slice($tmp, 0,2); $arr['question_pics'] = $tmp; } //$arr['addtime'] = \Apps\Common\Libs\DateTime::Format($arr['addtime']); $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); if (unserialize(base64_decode($arr['question_content']))) { $arr['question_content'] = unserialize(base64_decode($arr['question_content'])); } $arr['question_tag'] = json_decode($arr['question_tag'], true) ?: []; $result[] = $arr; } } $this->setResult($result); }
/** * 问答详情 * @date: 2016-1-16 * @author: futao */ public function infoAction() { $this->setLeftNav("info"); $req = $this->request; $questionId = intval($req->getQuery('id', null, 0)); if ($questionId < 0) { echo "参数错误!"; return; } $questionColumns = ['ub.user_id', 'ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\Question.user_id', 'Apps\\Common\\Models\\Question.question_content', 'Apps\\Common\\Models\\Question.question_pics', 'Apps\\Common\\Models\\Question.question_addtime', 'Apps\\Common\\Models\\Question.question_browsers', 'Apps\\Common\\Models\\Question.question_id']; $info = Question::query()->columns($questionColumns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\Question.user_id', 'ub')->where("Apps\\Common\\Models\\Question.question_id = {$questionId} and Apps\\Common\\Models\\Question.question_state = 1")->execute()->getFirst(); if (!$info) { echo "问题不存在!"; exit; } $info->user_cover = PicUrl::UserCover($info->user_cover, $this->di); if (unserialize(base64_decode($info->question_content))) { $info->question_content = unserialize(base64_decode($info->question_content)); } if (json_decode($info->question_pics)) { $info->question_pics = json_decode($info->question_pics); } $answerColumns = ['ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\QuestionAnswer.answer_content', 'Apps\\Common\\Models\\QuestionAnswer.answer_addtime', 'Apps\\Common\\Models\\QuestionAnswer.answer_id', 'Apps\\Common\\Models\\QuestionAnswer.original_content', 'Apps\\Common\\Models\\QuestionAnswer.answer_pics', 'Apps\\Common\\Models\\QuestionAnswer.type', 'Apps\\Common\\Models\\QuestionAnswer.user_id']; $answerList = QuestionAnswer::query()->columns($answerColumns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionAnswer.user_id', 'ub')->where("Apps\\Common\\Models\\QuestionAnswer.question_id = {$questionId} and Apps\\Common\\Models\\QuestionAnswer.answer_state = 1")->orderBy("Apps\\Common\\Models\\QuestionAnswer.answer_floor asc")->execute()->toArray(); foreach ($answerList as $k => $val) { if (unserialize(base64_decode($answerList[$k]['answer_content']))) { $answerList[$k]['answer_content'] = unserialize(base64_decode($answerList[$k]['answer_content'])); } if (unserialize(base64_decode($answerList[$k]['original_content']))) { $answerList[$k]['original_content'] = unserialize(base64_decode($answerList[$k]['original_content'])); } if (json_decode($answerList[$k]['answer_pics'])) { $answerList[$k]['answer_pics'] = json_decode($answerList[$k]['answer_pics']); } if ($answerList[$k]['type'] == 1) { $answerList[$k]['reply'] = QuestionAnswerComments::query()->columns(['ub.user_nickname', 'ub.user_cover', 'ub.user_id', 'content', 'add_time', 'id'])->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionAnswerComments.user_id', 'ub')->where("question_id = {$questionId} and answer_id = " . $answerList[$k]['answer_id'] . " and to_user_id = " . $answerList[$k]['user_id'])->orderBy("id desc")->execute()->toArray(); } $answerList[$k]['user_cover'] = PicUrl::UserCover($answerList[$k]['user_cover'], $this->di); } $userList = UserBase::find("is_manage = 1"); $seeList = QuestionViewsUser::query()->columns(['distinct ub.user_id', 'ub.user_cover'])->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionViewsUser.user_id', 'ub')->where("question_id = {$questionId}")->orderBy("id desc")->limit(7)->execute(); $this->view->setVar('seelist', $seeList); $this->view->setVar('comment_count', QuestionAnswer::count('answer_state = 1 and question_id = ' . $questionId)); $this->view->setVar('question_id', $questionId); $this->view->setVar('userlist', $userList); $this->view->setVar('questioninfo', $info); $this->view->setVar('answerlist', $answerList); $this->view->pick('question/info'); }
public function run() { $account = $this->getDataItem('account'); // 验证电话号码格式 $password = $this->getDataItem('password'); $pushId = $this->getDataItem('push_id', ''); // push id $osType = $this->getDataItem('os_type'); // $account = '18723568682'; // $password = '******'; // 验证数据完整 if (empty($account) || empty($password)) { $this->message = '账户名和密码都不能为空!'; } else { if ($this->verifyAccount($account, $password)) { // 获取 user token if ($this->saveuserauth($this->apiAccessToken->id, $this->userInfo['user_id'])) { $this->success = 1; $this->message = '登录成功!'; $this->userToken = $this->getUserAuth()->userToken; $this->saveUserPushId($this->userInfo['user_id'], $pushId, $osType); $this->userInfo['user_mobile'] = $this->userInfo['bind_phone'] ?: $this->userInfo['user_account']; $this->userInfo['user_cover'] = $this->userInfo['user_cover'] ? PicUrl::UserCover($this->userInfo['user_cover'], $this->getDi()) : ''; $this->userInfo['persional_sign'] = $this->userInfo['persional_sign'] ? unserialize(base64_decode($this->userInfo['persional_sign'])) : ''; // 获取城市信息 $SysAreaZipDistrictPhonecode = new SysAreaZipDistrictPhonecode(); $city = $SysAreaZipDistrictPhonecode->getOne($this->userInfo['user_district']); $this->userInfo['user_district'] = $city['FULL_NAME'] ?: ''; // 加入关注数和粉丝数 $UserFollow = new UserFollow(); $this->userInfo['follow_count'] = $UserFollow->getFollowCount($this->userInfo['user_id'], 1); $this->userInfo['fans_count'] = $UserFollow->getToFollowCount($this->userInfo['user_id'], 1); // 删除不要的字段 unset($this->userInfo['user_account'], $this->userInfo['user_password'], $this->userInfo['user_state'], $this->userInfo['user_addtime'], $this->userInfo['is_manage'], $this->userInfo['bind_phone']); } else { $this->message = '获取User Token异常!'; } } } if (!$this->userInfo) { // 登录失败依然保留字段 $this->userInfo = ["user_id" => "", "user_nickname" => "", "user_mobile" => "", "user_cover" => "", "user_gender" => "0", "user_birthday" => "", "user_realname" => "", "user_expert" => "", "user_district" => "", "user_money" => "", "user_money_virtual" => "", "persional_sign" => "", "follow_count" => 0, "fans_count" => 0]; } $info = ['success' => $this->success, 'user_token' => $this->userToken, 'message' => $this->message]; $info = array_merge($info, $this->userInfo); $this->setResult($info); }
public function run() { // 验证用户权限 if (!$this->verifyUserAuth()) { return false; } $field = ['user_cover', 'user_nickname', 'user_gender', 'user_birthday', 'user_realname', 'user_district', 'user_money', 'user_money_virtual', 'bind_phone user_mobile', 'persional_sign', 'user_id', 'user_expert']; $info = UserBase::query()->columns($field)->where('user_id=' . $this->getUserAuth()->userId)->execute()->getFirst()->toArray(); // 获取城市信息 $SysAreaZipDistrictPhonecode = new SysAreaZipDistrictPhonecode(); $city = $SysAreaZipDistrictPhonecode->getOne($info['user_district']); $info['user_district'] = $city['FULL_NAME'] ?: ''; $info['user_cover'] = $info['user_cover'] ? PicUrl::UserCover($info['user_cover'], $this->getDi()) : ''; $info['persional_sign'] = $info['persional_sign'] ? unserialize(base64_decode($info['persional_sign'])) : ''; // 加入关注数和粉丝数 $UserFollow = new UserFollow(); $info['follow_count'] = $UserFollow->getFollowCount($info['user_id'], 1); $info['fans_count'] = $UserFollow->getToFollowCount($info['user_id'], 1); $this->setResult($info); }
public function run() { $bp_id = intval($this->getDataItem('id', 0)); $page = intval($this->getDataItem('page', 1)); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; if (0 < $bp_id) { $this->comments = BeautyParlorComment::query()->columns(['u.user_id', 'u.user_nickname', 'u.user_cover', 'u.user_expert', 'Apps\\Common\\Models\\BeautyParlorComment.comment_id as comment_id', 'Apps\\Common\\Models\\BeautyParlorComment.comment_info as comment_info', 'Apps\\Common\\Models\\BeautyParlorComment.comment_photos as comment_photos', 'Apps\\Common\\Models\\BeautyParlorComment.comment_floor as comment_floor', 'Apps\\Common\\Models\\BeautyParlorComment.comment_addtime as addtime'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\BeautyParlorComment.user_id=u.user_id', 'u')->where('Apps\\Common\\Models\\BeautyParlorComment.beauty_parlor_id=' . $bp_id . ' and Apps\\Common\\Models\\BeautyParlorComment.comment_state = 1')->orderBy('Apps\\Common\\Models\\BeautyParlorComment.comment_id desc')->limit($limit, $offset)->execute()->toArray(); } $this->comments = $this->comments ? $this->comments : []; $data = []; foreach ($this->comments as $arr) { $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); $arr['comment_photos'] = PicUrl::BeautyParlorComment(json_decode($arr['comment_photos']), $this->getDi()); if (unserialize(base64_decode($arr['comment_info']))) { $arr['comment_info'] = unserialize(base64_decode($arr['comment_info'])); } $data[] = $arr; } $this->setResult($data); }
public function run() { $user_id = intval($this->getDataItem('user_id', 0)); $expert_id = intval($this->getDataItem('expert_id', 0)); $page = intval($this->getDataItem('page', 1)); if ($expert_id < 1) { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, '缺少必传参数!'); } $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $list = QuestionAnswer::query()->columns(['question_id'])->where('answer_state = 1 and user_id = ' . $expert_id)->groupBy('question_id')->orderBy('answer_id DESC')->limit($limit, $offset)->execute()->toArray(); if ($list) { $where = ''; foreach ($list as $val) { $where .= $val['question_id'] . ','; } $where = trim($where, ','); $result = Question::query()->columns(['question_id', 'question_tag', 'question_pics', 'question_content', 'question_addtime', 'u.user_id', 'u.user_nickname', 'u.user_cover', 'u.user_gender'])->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\Question.user_id', 'u')->where("question_state = 1 and question_id in({$where})")->execute()->toArray(); $QuestionFollow = new QuestionFollow(); foreach ($result as $k => $val) { $result[$k]['question_content'] = unserialize(base64_decode($val['question_content'])) ?: $val['question_content']; $result[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); if ($val['question_pics']) { $result[$k]['question_pics'] = PicUrl::Question(json_decode($val['question_pics']), $this->getDi()); } if (!is_numeric($val['question_tag'])) { $result[$k]['question_tag'] = $val['question_tag'] ? json_decode($val['question_tag'], true) : []; } else { $result[$k]['question_tag'] = []; } if ($user_id > 0) { $result[$k]['is_collection'] = $QuestionFollow->is_follow($val['question_id'], $user_id); } else { $result[$k]['is_collection'] = '0'; } } $this->setResult($result); } }
public function run() { $id = intval($this->getDataItem('id', 0)); $user_id = intval($this->getDataItem('user_id', 0)); if ($id == 0) { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, 'URL参数不全'); } $Question = new Question(); $model = $Question->query()->columns(['question_id', 'question_content', 'question_pics', 'question_tag', 'answer_num', 'question_browsers', 'question_addtime', 'u.user_id', 'u.user_nickname', 'u.user_expert', 'u.user_cover', 'u.user_gender'])->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\Question.user_id', 'u')->where('question_state = 1 and question_id = ' . $id)->execute()->getFirst(); if ($model) { $info = $model->toArray(); $info['question_content'] = unserialize(base64_decode($info['question_content'])) ?: $info['question_content']; if ($info['question_pics']) { $question_pics = []; foreach (json_decode($info['question_pics'], true) as $val) { $question_pics[] = PicUrl::Question($val, $this->getDi()); } $info['question_pics'] = $question_pics; } $info['user_cover'] = PicUrl::UserCover($info['user_cover'], $this->getDi()); $info['question_tag'] = $info['question_tag'] ? json_decode($info['question_tag'], true) : []; $QuestionFollow = new QuestionFollow(); // 是否收藏过 if ($user_id) { $info['is_collection'] = $QuestionFollow->is_follow($info['question_id'], $user_id); } else { $info['is_collection'] = '0'; } $QuestionViewsUser = new QuestionViewsUser(); $info['user_views_list'] = $QuestionViewsUser->getViewsUserList($id, 0, 7); $this->setResult($info); $count = 1; $Question->getReadConnection()->query("UPDATE question SET question_browsers = question_browsers + {$count} WHERE question_id = {$id}"); if ($user_id) { $QuestionViewsUser->addData($id, $user_id); } } }
public function run() { /** * 验证用户权限 */ if (false == $this->verifyUserAuth()) { return false; } $area = ['user_cover', 'user_nickname', 'user_gender', 'user_birthday', 'user_realname', 'user_district', 'persional_sign']; $field = $this->getDataItem('field'); //字段 $value = trim($this->getDataItem('value', '')); //值 if (!in_array($field, $area)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '字段名不存在.'); } if ($user = UserBase::findFirst('user_id=' . $this->getUserAuth()->userId)) { if ($field == 'user_cover') { $up = new UploadPic(); $user->user_cover = $up->userCover(); if (!$user->user_cover) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '文件流不能为空.'); } $value = PicUrl::UserCover($user->user_cover, $this->getDi()); } elseif ($field == 'user_district') { if (!is_numeric($value)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '城市格式错误.'); } if (!\Apps\Common\Models\SysAreaZipDistrictPhonecode::count('K_ID = ' . $value)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '城市不存在.'); } $user->user_district = $value; // 获取城市信息 $city = (new SysAreaZipDistrictPhonecode())->getOne($value); $value = $city['FULL_NAME'] ?: ''; } elseif ($field == 'persional_sign') { if ($value && $this->utf8_strlen($value) > 30) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '个性签名字数超过了30个字符'); } else { $user->persional_sign = $value ? base64_encode(serialize($value)) : ''; } } elseif ($field == 'user_nickname') { $nicknameLength = $this->utf8_strlen($value); if ($nicknameLength < 1 || $nicknameLength > 10) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '昵称长度需在1~10字节之间'); } $user->user_nickname = $value; } elseif ($field == 'user_realname') { if (empty($value)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '姓名不能为空'); } if ($this->utf8_strlen($value) > 10) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '姓名不能超过10个字符'); } $user->user_realname = $value; } elseif ($field == 'user_gender') { if (!in_array($value, ['0', '1', '2'])) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '请输入正确的性别'); } $user->user_gender = $value; } elseif ($field == 'user_birthday') { if (!$this->validateDate($value)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '日期格式错误'); } $user->user_birthday = $value; } if ($user->save()) { $this->setResult(['success' => 1, 'message' => $field . ' 更新成功', 'value' => $value]); return true; } } $this->setResult(['success' => 0, 'message' => '更新失败', 'value' => '']); }
public function searchQuestion($keyword, $limit = 5, $offset = 0) { $searchObj = $this->getSearchObj(); $searchResult = $searchObj->search($keyword, 'type=' . SearchDataType::Question, $limit, $offset); $questions = $this->getSearchResult($searchResult); $questions = $questions ? $questions : []; $data = []; foreach ($questions as $arr) { $arr['question_pics'] = PicUrl::Question(json_decode($arr['question_pics']), $this->getDi()); $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); if (unserialize(base64_decode($arr['question_content']))) { $arr['question_content'] = unserialize(base64_decode($arr['question_content'])); } $data[] = $arr; } return $data; }
/** * 根据开通城市id获取问答列表 * @date: 2016年1月22日 * @author: 545 */ private function getQuestion($city_id, $limit, $userid = null, $order = null) { $questionlists = array(); $columns = ['q.question_id', 'q.question_content', 'q.question_pics', 'q.question_tag', 'q.answer_num', 'q.question_browsers', 'q.is_expert_reply', 'q.question_addtime', 'u.user_id', 'u.user_nickname', 'u.user_cover', 'u.user_gender']; //获取问答列表 $questionlist = CosPointquestion::query()->columns($columns)->join('\\Apps\\Common\\Models\\Question', 'q.question_id = \\Apps\\Common\\Models\\CosPointquestion.q_id', 'q')->join('\\Apps\\Common\\Models\\UserBase', 'u.user_id = q.user_id', 'u')->where('addr = :city_id:')->bind(['city_id' => $city_id])->limit($limit, 0)->orderBy($order)->execute()->toArray(); $QuestionFollow = new QuestionFollow(); foreach ($questionlist as $k => $val) { // 是否收藏过 if ($userid) { $questionlists[$k]['is_collection'] = $QuestionFollow->is_follow($val['question_id'], $userid); } else { $questionlists[$k]['is_collection'] = '0'; } $questionlists[$k]['question_id'] = $val['question_id']; $questionlists[$k]['question_content'] = unserialize(base64_decode($val['question_content'])) ?: $val['question_content']; $questionlists[$k]['question_pics'] = []; if ($val['question_pics']) { $question_pics = []; foreach (json_decode($val['question_pics'], true) as $key => $value) { $question_pics[] = PicUrl::Question($value, $this->getDi()); } $questionlists[$k]['question_pics'] = $question_pics; } $questionlists[$k]['question_tag'] = $val['question_tag'] ? json_decode($val['question_tag'], true) : []; $questionlists[$k]['answer_num'] = $val['answer_num']; $questionlists[$k]['question_browsers'] = $val['question_browsers']; $questionlists[$k]['is_expert_reply'] = $val['is_expert_reply']; $questionlists[$k]['question_addtime'] = $val['question_addtime']; $questionlists[$k]['user_id'] = $val['user_id']; $questionlists[$k]['user_nickname'] = $val['user_nickname']; $questionlists[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $questionlists[$k]['user_gender'] = $val['user_gender']; } return $questionlists; }
public function run() { $type = $this->getDataItem('type'); $openId = $this->getDataItem('openid'); $nickname = $this->getDataItem('nickname'); $cover = $this->getDataItem('cover'); $otherData = $this->getDataItem('other_data'); $pushId = $this->getDataItem('push_id'); // push id $osType = $this->getDataItem('os_type'); // 验证数据完整性 if (empty($type) || empty($openId) || empty($nickname)) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, "业务参数不全."); } if (!in_array($type, ['weixin', 'weibo'])) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, "类型不支持."); } $attrType = 101; if ($type == 'weibo') { $attrType = 102; } // 判断用户是否已经注册了 $userId = $this->isRegister($attrType, $openId); if ($userId === false) { // 注册新账号 $userId = $this->register($type, $attrType, $openId, $nickname, $cover, $otherData); if ($userId === false) { return; } } $info = []; // 获取 user token if ($this->saveUserAuth($this->apiAccessToken->id, $userId)) { $this->success = 1; $this->userid = $userId; $this->message = '登录成功!'; $this->userToken = $this->getUserAuth()->userToken; $this->saveUserPushId($userId, $pushId, $osType); if ($model = UserBase::query()->where("user_id = {$userId}")->execute()->getFirst()) { $info = $model->toArray(); $info['user_mobile'] = $info['bind_phone'] ?: $info['user_account']; if ($info['user_cover'] == 'default.png' && $attrType == 101) { $info['user_cover'] = json_decode($otherData)->headimgurl; } else { $info['user_cover'] = $info['user_cover'] ? PicUrl::UserCover($info['user_cover'], $this->getDi()) : ''; } $info['persional_sign'] = $info['persional_sign'] ? unserialize(base64_decode($info['persional_sign'])) : ''; // 获取城市信息 $SysAreaZipDistrictPhonecode = new SysAreaZipDistrictPhonecode(); $city = $SysAreaZipDistrictPhonecode->getOne($info['user_district']); $info['user_district'] = $city['FULL_NAME'] ?: ''; // 加入关注数和粉丝数 $UserFollow = new UserFollow(); $info['follow_count'] = $UserFollow->getFollowCount($info['user_id'], 1); $info['fans_count'] = $UserFollow->getToFollowCount($info['user_id'], 1); // 删除不要的字段 unset($info['user_account'], $info['user_password'], $info['user_state'], $info['user_addtime'], $info['is_manage']); } } else { $this->message = '获取User Token异常!'; } if (!$info) { $info = ["user_id" => "", "user_nickname" => "", "user_cover" => "", "user_gender" => "0", "user_birthday" => "", "user_realname" => "", "user_expert" => "", "user_district" => "", "user_money" => "", "user_money_virtual" => "", "persional_sign" => "", "follow_count" => 0, "fans_count" => 0]; } $info = array_merge($info, ['success' => $this->success, 'user_token' => $this->userToken, 'message' => $this->message, 'user_id' => $this->userid]); $this->setResult($info); }
/** * 获取浏览记录的用户列表 * @param int $activity_id 活动id * @param int $offset 分页偏移量 * @param int $limit 页大小 * @return array */ public function getViewsUserList($activity_id, $offset = 0, $limit = 10) { $list = $this->query()->columns(['u.user_id', 'u.user_cover'])->where('activity_id = ' . $activity_id)->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\ActivityViewsUser.user_id', 'u')->groupBy('\\Apps\\Common\\Models\\ActivityViewsUser.user_id')->orderBy('add_time DESC')->limit($limit, $offset)->execute()->toArray(); $result = []; foreach ($list as $k => $val) { if ($val['user_id']) { $val['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $result[] = $val; } } return $result; }
public function run() { $account = $this->getDataItem('account', 1); //帐号 $password = $this->getDataItem('password', 1); //密码 $nickname = Keyword::Filter($this->getDataItem('nickname', 1)); //昵称 $smsCode = $this->getDataItem('sms_code', ''); //短信验证 if ($this->userInfoByAccount($account)) { $this->setResult(['success' => 101, 'user_token' => $this->userToken, 'message' => '账户名已存在']); return; } if (empty($password) || empty($nickname)) { $this->setResult(['success' => 103, 'user_token' => $this->userToken, 'message' => '密码和昵称不能为空']); return; } if (empty($smsCode)) { $this->setResult(['success' => 102, 'user_token' => $this->userToken, 'message' => '短信验证码必填']); return; } if (!MobileSMS::Check('register', $smsCode, $account, $this->apiAccessToken->id)) { $this->setResult(['success' => 102, 'user_token' => $this->userToken, 'message' => '短信验证码错误']); return; } $this->userInfo = new UserBase(); $this->userInfo->user_account = $account; $this->userInfo->user_password = $this->hashPassword($password); $this->userInfo->user_nickname = $nickname; $this->userInfo->user_cover = $this->getConfig()->defaultCover; //'default.jpg'; $this->userInfo->bind_phone = $account; if ($this->userInfo->save()) { $this->success = 1; $this->message = '注册成功'; $this->saveUserAuth($this->apiAccessToken->id, $this->userInfo->user_id); $this->userToken = $this->getUserAuth()->userToken; } else { $this->message = '注册失败'; $this->databaseErrorLog($this->userInfo); } if ($this->success == 1) { if ($model = UserBase::findFirst('user_id = ' . $this->userInfo->user_id)) { $info = $model->toArray(); } else { $info = []; } $info['user_mobile'] = $info['bind_phone']; $info['user_cover'] = $info['user_cover'] ? PicUrl::UserCover($info['user_cover'], $this->getDi()) : ''; // 获取城市信息 $SysAreaZipDistrictPhonecode = new SysAreaZipDistrictPhonecode(); $city = $SysAreaZipDistrictPhonecode->getOne($info['user_district']); $info['user_district'] = $city['FULL_NAME'] ?: ''; // 删除不要的字段 unset($info['user_account'], $info['user_password'], $info['user_state'], $info['user_addtime'], $info['is_manage']); $this->setResult(array_merge($info, ['success' => $this->success, 'user_token' => $this->userToken, 'message' => $this->message])); } else { $this->setResult(['success' => $this->success, 'user_token' => $this->userToken, 'message' => $this->message, 'user_id' => $this->userInfo->user_id]); } }
/** * 编辑用户信息 * @date: 2016-1-5 * @author: futao */ public function editAction() { $this->setLeftNav("update"); $req = $this->request; $id = $req->getQuery("id", null, 0); $action = $req->getQuery("action", null, ''); $info = UserBase::query()->columns(['user_account', 'user_password', 'user_district', 'user_nickname', 'user_realname', 'bind_phone', 'persional_sign', 'user_birthday', 'user_cover', 'user_gender', 'user_expert'])->where("user_id = :id:")->bind(['id' => $id])->execute()->getFirst(); if (!$info) { $this->view->disable(); echo '用户不存在!'; return; } if ($info->user_expert == 1) { $userAttr = UserAttribute::findFirst('user_id =' . $id . ' and attr_type = 103 and attr_state = 1'); $this->view->setVar('user_attr', json_decode($userAttr->attr_value_json)); } //个性签名解码 if (unserialize(base64_decode($info->persional_sign))) { $info->persional_sign = unserialize(base64_decode($info->persional_sign)); } $info->user_cover = PicUrl::UserCover($info->user_cover, $this->di); $userArea = SysAreaZipDistrictPhonecode::findFirst("K_ID = " . $info->user_district); $this->view->setVar('userArea', $userArea); $this->view->setVar('userInfo', $info); $this->view->setVar('userId', $id); $this->view->setVar('action', $action); }
public function run() { $id = intval($this->getDataItem('id', 0)); $user_id = intval($this->getDataItem('user_id', 0)); if (0 < $id) { /** * 查询基础信息 */ $info = BeautyParlorModel::query()->columns(['bp_id as id', 'bp_name as name', 'bp_cover as cover', 'bp_address as address', 'bp_tel as tel', 'bp_medal as medal', 'bp_intro as intro', 'X(bp_coordinate) latitude', 'Y(bp_coordinate) longitude', 'bpa.open_time', 'bpa.close_time', 'bpa.low_price', 'bpa.open_year', 'bpa.shop_area', 'bpa.service_num', 'bpa.facilities'])->leftJoin('Apps\\Common\\Models\\BeautyParlorAttr', 'Apps\\Common\\Models\\BeautyParlor.bp_id = bpa.beauty_parlor_id', 'bpa')->where('Apps\\Common\\Models\\BeautyParlor.bp_state>0 and Apps\\Common\\Models\\BeautyParlor.bp_id=:id:')->bind(['id' => $id])->execute()->getFirst(); } else { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, '参数异常'); } if ($info) { $this->parlor['id'] = $info->id; $this->parlor['name'] = $info->name; $this->parlor['cover'] = PicUrl::BeautyParlorCover($info->cover, $this->getDi()); $this->parlor['address'] = $info->address; $this->parlor['tel'] = $info->tel; $this->parlor['intro'] = $info->intro; $this->parlor['latitude'] = $info->latitude; $this->parlor['longitude'] = $info->longitude; $this->parlor['medal_refund'] = \Apps\Common\Libs\BeautyParlor::getMedalRefund($info->medal); $this->parlor['medal_verify'] = \Apps\Common\Libs\BeautyParlor::getMedalVerify($info->medal); $this->parlor['open_time'] = $info->open_time == null ? '' : $info->open_time; $this->parlor['close_time'] = $info->close_time == null ? '' : $info->close_time; $this->parlor['low_price'] = $info->low_price == null ? '' : $info->low_price; $this->parlor['open_year'] = $info->open_year == null ? '' : $info->open_year; $this->parlor['shop_area'] = $info->shop_area == null ? '' : $info->shop_area; $this->parlor['facilities'] = $info->facilities == null ? [] : (json_decode($info->facilities) ?: []); $this->parlor['pics'] = []; $this->parlor['services'] = []; /** * 增加图片列表 如果深度验店 */ if ($this->parlor['medal_verify']) { $pics = BeautyParlorPhotos::query()->columns(['photo_url url'])->where('photo_state>0 and beauty_parlor_id=:bid:')->bind(['bid' => $id])->execute()->toArray(); foreach ($pics as $pic) { $this->parlor['pics'][] = PicUrl::BeautyParlorPic($pic['url'], $this->getDi()); } /** * 增加服务范围列表 */ $service = BeautyParlorService::query()->columns(['service_id id', 'service_cover cover', 'service_name name', 'service_price price', 'service_unit unit', 'service_description description'])->where('service_state>0 and service_is_sell = 1 and beauty_parlor_id=:bid:')->bind(['bid' => $id])->limit(3, 0)->execute()->toArray(); foreach ($service as $d) { $d['cover'] = PicUrl::BeautyParlorCover($d['cover'], $this->getDi()); $unit = $d['unit']; unset($d['unit']); $d['price_show'] = ''; if ($d['price'] > 0) { $d['price_show'] = $d['price'] . '元' . ($unit ? '/' . $unit : ''); } $this->parlor['services'][] = $d; } } /** * 增加tag列表 */ $tag = BeautyParlorTag::query()->columns(['i.tag_title'])->leftJoin('Apps\\Common\\Models\\BeautyParlorTagInfo', 'Apps\\Common\\Models\\BeautyParlorTag.tag_id = i.tag_id', 'i')->where('i.tag_state=1 and bp_id=:bid:')->bind(['bid' => $id])->orderBy('sort desc,bp_tag_addtime asc')->execute()->toArray(); $this->parlor['tags'] = $tag; // 评论总数 $this->parlor['comment_num'] = BeautyParlorComment::count(['conditions' => 'beauty_parlor_id = :bid: and comment_state = 1', 'bind' => ['bid' => $id]]); //获取3条评论 $comments = BeautyParlorComment::query()->columns(['u.user_id', 'u.user_nickname', 'u.user_cover', 'u.user_gender', 'u.user_expert', 'Apps\\Common\\Models\\BeautyParlorComment.comment_id as comment_id', 'Apps\\Common\\Models\\BeautyParlorComment.comment_info as comment_info', 'Apps\\Common\\Models\\BeautyParlorComment.comment_photos as comment_photos', 'Apps\\Common\\Models\\BeautyParlorComment.comment_floor as comment_floor', 'Apps\\Common\\Models\\BeautyParlorComment.comment_addtime as addtime'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\BeautyParlorComment.user_id=u.user_id', 'u')->where('Apps\\Common\\Models\\BeautyParlorComment.beauty_parlor_id=' . $id . ' and Apps\\Common\\Models\\BeautyParlorComment.comment_state = 1')->orderBy('Apps\\Common\\Models\\BeautyParlorComment.comment_addtime desc')->limit(3, 0)->execute()->toArray(); foreach ($comments as $arr) { $arr['user_cover'] = PicUrl::UserCover($arr['user_cover'], $this->getDi()); $arr['comment_photos'] = PicUrl::BeautyParlorComment(json_decode($arr['comment_photos']), $this->getDi()); if (unserialize(base64_decode($arr['comment_info']))) { $arr['comment_info'] = unserialize(base64_decode($arr['comment_info'])); } $data[] = $arr; } $this->parlor['comments'] = $data; } else { return $this->errorLog(ResultStatus::QUERY_DATA_NOT_EXIST, 'ID不存在'); } $this->parlor['favorite_num'] = BpFavorites::count(['conditions' => "bp_id = " . $this->parlor['id']]); if ($user_id != '') { $is_favorite = BpFavorites::findFirst("user_id = {$user_id} and bp_id =" . $this->parlor['id']); /* var_dump($is_favorite); exit; */ if ($is_favorite) { $this->parlor['is_favorite'] = 1; //已关注 } else { $this->parlor['is_favorite'] = 0; //未关注 } } else { $this->parlor['is_favorite'] = 0; } $this->setResult($this->parlor); }
public function run() { $questionId = intval($this->getDataItem('question_id', 0)); $user_id = intval($this->getDataItem('user_id', 0)); $page = intval($this->getDataItem('page', 1)); // $questionId = 194; if ($questionId < 1) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '参数不完整或者参数错误!'); } $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $QuestionAnswer = new QuestionAnswer(); $expertReplyList = $QuestionAnswer->query()->columns(['u.user_id', 'u.user_cover', 'u.user_nickname', 'answer_id', 'answer_content', 'support_count', 'answer_addtime', 'answer_pics', 'a.attr_value_json'])->leftJoin('\\Apps\\Common\\Models\\UserBase', 'u.user_id = \\Apps\\Common\\Models\\QuestionAnswer.user_id', 'u')->leftJoin('\\Apps\\Common\\Models\\UserAttribute', 'a.user_id = \\Apps\\Common\\Models\\QuestionAnswer.user_id', 'a')->where("a.attr_type = 103 and a.attr_state = 1 and answer_state = 1 and type = 2 and question_id = {$questionId}")->orderBy('answer_addtime DESC')->limit($limit, $offset)->execute()->toArray(); $QuestionAnswerComments = new QuestionAnswerComments(); $UserBase = new UserBase(); $QuestionAnswerFollow = new QuestionAnswerFollow(); foreach ($expertReplyList as $k => $val) { if ($val['attr_value_json']) { $objAttrValueJoin = json_decode($val['attr_value_json']); $expertReplyList[$k]['experttitle'] = $objAttrValueJoin->experttitle; $expertReplyList[$k]['field'] = $objAttrValueJoin->field ?: []; } else { $expertReplyList[$k]['experttitle'] = []; $expertReplyList[$k]['field'] = []; } $expertReplyList[$k]['user_cover'] = PicUrl::UserCover($val['user_cover'], $this->getDi()); $expertReplyList[$k]['answer_content'] = unserialize(base64_decode($val['answer_content'])) ?: $val['answer_content']; if ($user_id > 0) { $expertReplyList[$k]['is_support'] = $QuestionAnswerFollow->is_support($user_id, $val['answer_id']) ? '1' : '0'; } else { $expertReplyList[$k]['is_support'] = '0'; } $answer_pics = []; if ($answer_pics_list = json_decode($val['answer_pics'], true)) { foreach ($answer_pics_list as $value) { $answer_pics[] = PicUrl::Question($value, $this->getDi()); } } $expertReplyList[$k]['answer_pics'] = $answer_pics; unset($expertReplyList[$k]['attr_value_json']); if ($item = $QuestionAnswerComments->query()->where('answer_id = ' . $val['answer_id'])->limit(10, 0)->execute()->toArray()) { foreach ($item as $key => $v) { $user_info = $UserBase->getOne($v['user_id']); $to_user_info = $UserBase->getOne($v['to_user_id']); $item[$key]['user_info'] = ['user_id' => $v['user_id'], 'user_nickname' => $user_info['user_nickname']]; $item[$key]['to_user_info'] = ['user_id' => $v['to_user_id'], 'user_nickname' => $to_user_info['user_nickname']]; $pics = []; if ($pics_list = json_decode($v['pics'], true)) { foreach ($pics_list as $values) { $pics[] = PicUrl::Question($values, $this->getDi()); } } $item[$key]['pics'] = $pics; unset($item[$key]['user_id'], $item[$key]['to_user_id']); } $expertReplyList[$k]['item'] = $item; } else { $expertReplyList[$k]['item'] = []; } } $this->setResult($expertReplyList); }
/** * 预览美容院 * @date: 2016年1月28日 * @author: chenxiaolin */ public function beautyParlorPreviewAction() { $id = $this->request->getQuery('id'); if (empty($id)) { echo '美容院不存在!'; $this->view->disable(); return; } //美容院 $parlor = BeautyParlor::query()->columns(['Apps\\Common\\Models\\BeautyParlor.bp_id', 'Apps\\Common\\Models\\BeautyParlor.bp_name as name', 'Apps\\Common\\Models\\BeautyParlor.bp_address', 'Apps\\Common\\Models\\BeautyParlor.bp_medal', 'Apps\\Common\\Models\\BeautyParlor.bp_intro', 'bpAttr.low_price', 'bpAttr.open_time', 'bpAttr.close_time', 'bpAttr.open_year', 'bpAttr.shop_area', 'bpAttr.service_num', 'bpAttr.facilities'])->leftJoin('Apps\\Common\\Models\\BeautyParlorAttr', 'Apps\\Common\\Models\\BeautyParlor.bp_id = bpAttr.beauty_parlor_id', 'bpAttr')->where("Apps\\Common\\Models\\BeautyParlor.bp_id = {$id}")->execute()->getFirst(); if ($parlor) { $parlor->bp_medal = \Apps\Common\Libs\BeautyParlor::getMedalVerify($parlor->bp_medal); $parlor->facilities = json_decode($parlor->facilities, true); } else { echo '美容院不存在!'; $this->view->disable(); return; } //标签 $tag = BeautyParlorTagInfo::query()->columns(['tag_title'])->leftJoin('Apps\\Common\\Models\\BeautyParlorTag', 'bpTag.tag_id = Apps\\Common\\Models\\BeautyParlorTagInfo.tag_id', 'bpTag')->where("bpTag.bp_id = {$id} and Apps\\Common\\Models\\BeautyParlorTagInfo.tag_state = 1")->execute()->toArray(); //轮播图片 $photos = BeautyParlorPhotos::query()->columns(['photo_url'])->where("beauty_parlor_id = {$id} and photo_state = 1")->execute()->toArray(); foreach ($photos as $k => $v) { $photos[$k]['photo_url'] = PicUrl::BeautyParlorPic($photos[$k]['photo_url'], $this->getDI()); } //服务项目 $service = BeautyParlorService::query()->columns(['service_name', 'service_price', 'service_cover'])->where("beauty_parlor_id = {$id}")->execute()->toArray(); foreach ($service as $k => $v) { $service[$k]['service_cover'] = PicUrl::BeautyParlorCover($service[$k]['service_cover'], $this->getDI()); } //用户评论 $comment = BeautyParlorComment::query()->columns(['u.user_id', 'u.user_nickname', 'u.user_cover', 'comment_addtime', 'comment_info', 'comment_photos'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\BeautyParlorComment.user_id=u.user_id', 'u')->where("Apps\\Common\\Models\\BeautyParlorComment.beauty_parlor_id = {$id} and Apps\\Common\\Models\\BeautyParlorComment.comment_state = 1")->execute()->toArray(); foreach ($comment as $k => $v) { $comment[$k]['user_cover'] = PicUrl::UserCover($comment[$k]['user_cover'], $this->getDI()); $comment[$k]['comment_photos'] = PicUrl::BeautyParlorComment(json_decode($comment[$k]['comment_photos'], true), $this->getDI()); if (unserialize(base64_decode($comment[$k]['comment_info']))) { $comment[$k]['comment_info'] = unserialize(base64_decode($comment[$k]['comment_info'])); } } $this->view->setVar('parlor', $parlor); $this->view->setVar('photos', $photos); $this->view->setVar('service', $service); $this->view->setVar('tag', $tag); $this->view->setVar('comment', $comment); $this->tag->setTitle($parlor['name']); $this->assets->collection('footer')->addJs('/libs/zepto/zepto-1.1.6.min.js', false)->addJs('/libs/iscroll/iscroll.js', false)->addJs('/assets/frontend/js/share/bp-view.js', false); }