userModel = new \app\user\model\User(); $this->showModel = new \app\user\model\UserShow(); } public function add() { $data = decode($this->request->post()); $user_id = $data['u']; if(!$user_id) return json(array("error"=>1)); $res = array(); try { $info = array(); $info['user_id'] = $data['u']; $info['title'] = urlencode($data['tl']); $info['content'] = urlencode($data['ct']); $info['head'] = $data['hd']; $info['headwear'] = $data['hw']; $info['eyes'] = $data['ey']; $info['mouth'] = $data['mo']; $info['clothes'] = $data['cl']; $info['skirt'] = $data['sk']; $info['shoes'] = $data['sh']; $info['wing'] = $data['wi']; $info['create_time'] = getCurrentTime(); $info['del_time'] = getCurrentTime(); $result = $this->showModel->insert($info, false, true); $info['id'] = $result; $info['title'] = $data['tl']; $info['content'] = $data['ct']; $res['error'] = $result ? 0 : 2; $res['info'] = $info; } catch (\Exception $e) { $res['error'] = 3; $res['reason'] = $e; } return json($res); } public function modify() { $data = decode($this->request->post()); $user_id = $data['u']; $show_id = $data['s']; $title = urlencode($data['tl']); $content = urlencode($data['ct']); $this->showModel->updateInfo($show_id, $title, $content); $show = Db::name("user_show")->where('id', $show_id)->find(); $show['title'] = urldecode($show['title']); $show['content'] = urldecode($show['content']); $res = array(); $res['info'] = $show; return json($res); } public function delete() { $data = decode($this->request->post()); $user_id = $data['u']; $show_id = $data['s']; $info = array(); $info['del'] = 1; $info['del_time'] = getCurrentTime(); $this->showModel->where("id=$show_id AND user_id=$user_id")->update($info); $res = array(); $res['error'] = 0; return json($res); } public function score() { $data = decode($this->request->post()); $user_id = $data['u']; $show_id = intval($data['s']); $score = Db::name("user_show_score")->where("user_id=$user_id AND show_id=$show_id")->find(); if($score) { $res['error'] = 1; $res['info'] = "already scored"; return json($res); } $show = Db::name("user_show")->where('id', $show_id)->find(); if($user_id != $show['user_id']) { $score1 = $data['s1']; $score2 = $data['s2']; $score3 = $data['s3']; $score4 = $data['s4']; $score5 = $data['s5']; $info = array(); $info['user_id'] = $user_id; $info['show_id'] = $show_id; $info['score1'] = $score1; $info['score2'] = $score2; $info['score3'] = $score3; $info['score4'] = $score4; $info['score5'] = $score5; $info['create_time'] = getCurrentTime(); Db::name("user_show_score")->insert($info, false, true); $this->showModel->addScore($show_id, $score1, $score2, $score3, $score4, $score5); } $show = Db::name("user_show")->where('id', $show_id)->find(); $show['title'] = urldecode($show['title']); $show['content'] = urldecode($show['content']); $res = array(); $res['error'] = 0; $res['info'] = $show; return json($res); } public function like() { $data = decode($this->request->post()); $user_id = $data['u']; $show_id = intval($data['s']); $like_db = Db::name("user_show_like"); $show_like = $like_db->where("user_id=$user_id AND show_id=$show_id")->find(); $res = array(); if(!$show_like) { $info = array(); $info['user_id'] = $user_id; $info['show_id'] = $show_id; $info['like'] = 1; $info['update_time'] = getCurrentTime(); $result = $like_db->insert($info, false, true); $info['id'] = $result; $liked = 1; } else { $liked = $show_like['like'] > 0 ? 0 : 1; $info = array(); $info['like'] = $liked; $like_db->where("user_id=$user_id AND show_id=$show_id")->update($info); $show_like['like'] = $liked; } $count = $like_db->where("`like`=1 AND show_id=$show_id")->count(); $this->showModel->where("id", $show_id)->update(['likes'=>$count]); $show = Db::name("user_show")->where("id", $show_id)->find(); $show['title'] = urldecode($show['title']); $show['content'] = urldecode($show['content']); $res['error'] = 0; $res['info'] = $show; $res['liked'] = $liked; return json($res); } public function comment() { $data = decode($this->request->post()); $user_id = $data['u']; $show_id = $data['s']; $target_id = $data['t']; $content = $data['c']; $info = array(); $info['user_id'] = $user_id; $info['target_id'] = $target_id; $info['show_id'] = $show_id; $info['content'] = urlencode($content); $info['create_time'] = getCurrentTime(); $comment_db = Db::name("user_show_comment"); $result = $comment_db->insert($info, false, true); $info['id'] = $result; $info['content'] = $content; $this->showModel->where('id', $show_id)->setInc('comments'); $res = array(); $res['error'] = $result ? 0 : 2; $res['info'] = $info; return json($res); } public function show_list() { $data = decode($this->request->post()); $uid = $data['u']; $sort = $data['s']; $page = $data['p']; $list = $this->showModel->infoList($sort, $page); $users = array(); foreach ($list as &$value) { $value['title'] = urldecode($value['title']); $value['content'] = urldecode($value['content']); $user_id = $value['user_id']; if(!array_key_exists($user_id, $users)) { $user = $this->userModel->where('id', $user_id)->field('nickname')->find(); $users[$user_id] = $user; } else { $user = $users[$user_id]; } if($user && isset($user['nickname'])) { $value['nickname'] = $user['nickname']; } else { $value['nickname'] = ""; } $show_id = $value['id']; $like_db = Db::name("user_show_like"); $like = $like_db->where("user_id=$uid AND show_id=$show_id AND `like`=1")->find(); if($like) { $value['liked'] = 1; } else { $value['liked'] = 0; } $score_db = Db::name("user_show_score"); $score = $score_db->where("user_id=$uid AND show_id=$show_id")->find(); if($score) { $value['scored'] = 1; } else { $value['scored'] = 0; } } $res = array(); $res['list'] = $list; return json($res); } public function show_list_user() { $data = decode($this->request->post()); $uid = $data['mu']; $user_id = $data['u']; $page = $data['p']; $list = $this->showModel->infoListByUser($user_id, $page); $users = array(); foreach ($list as &$value) { $value['title'] = urldecode($value['title']); $value['content'] = urldecode($value['content']); $user_id = $value['user_id']; if(!array_key_exists($user_id, $users)) { $user = $this->userModel->where('id', $user_id)->field('nickname')->find(); $users[$user_id] = $user; } else { $user = $users[$user_id]; } if($user && isset($user['nickname'])) { $value['nickname'] = $user['nickname']; } else { $value['nickname'] = ""; } $like_db = Db::name("user_show_like"); $show_id = $value['id']; $like = $like_db->where("user_id=$uid AND show_id=$show_id AND `like`=1")->find(); if($like) { $value['liked'] = 1; } else { $value['liked'] = 0; } $score_db = Db::name("user_show_score"); $score = $score_db->where("user_id=$uid AND show_id=$show_id")->find(); if($score) { $value['scored'] = 1; } else { $value['scored'] = 0; } } $res['list'] = $list; return json($res); } public function show() { $data = decode($this->request->post()); $show_id = $data['s']; $user_id = $data['u']; $show_db = Db::name("user_show"); $show = $show_db->where("id=$show_id AND user_id=$user_id")->find(); if(!$show) return json(array('error', 1)); $show['title'] = urldecode($show['title']); $show['content'] = urldecode($show['content']); $user = $this->userModel->where('id', $user_id)->field('nickname')->find(); $show['nickname'] = $user['nickname'] ? $user['nickname'] : ""; return json($show); } public function comment_list() { $data = decode($this->request->post()); $show_id = $data['s']; $page = $data['p']; $page = max($page, 1); $num_pre_page = 10; $start = ($page-1) * $num_pre_page; $comment_db = Db::name("user_show_comment"); $list = $comment_db->where("show_id", $show_id)->order('create_time desc')->limit("$start, $num_pre_page")->select(); $users = array(); foreach ($list as &$value) { $value['content'] = urldecode($value['content']); $user_id = $value['user_id']; if(!array_key_exists($user_id, $users)) { $user = $this->userModel->where('id', $user_id)->field('nickname')->find(); $users[$user_id] = $user; } else { $user = $users[$user_id]; } if($user && isset($user['nickname'])) { $value['nickname'] = $user['nickname']; } else { $value['nickname'] = ""; } $target_id = $value['target_id']; if(!array_key_exists($target_id, $users)) { $user = $this->userModel->where('id', $target_id)->field('nickname')->find(); $users[$target_id] = $user; } else { $user = $users[$target_id]; } if($user && isset($user['nickname'])) { $value['nickname_target'] = $user['nickname']; } else { $value['nickname_target'] = ""; } } $res['list'] = $list; return json($res); } }