123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- <?php
- namespace app\newhome\controller;
- use think\Controller;
- use think\Db;
- class Show extends Controller {
-
- private $userModel, $showModel;
-
- public function _initialize(){
- $this->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);
- }
- }
|