Show.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. <?php
  2. namespace app\newhome\controller;
  3. use think\Controller;
  4. use app\user\model\UserSkill;
  5. use think\Db;
  6. class Show extends Controller {
  7. private $userModel, $showModel;
  8. public function _initialize(){
  9. $this->userModel = new \app\user\model\User();
  10. $this->showModel = new \app\user\model\UserShow();
  11. }
  12. public function add()
  13. {
  14. $data = decode($this->request->post());
  15. $user_id = $data['u'];
  16. if(!$user_id)
  17. return json(array("error"=>1));
  18. $res = array();
  19. try
  20. {
  21. $info = array();
  22. $info['user_id'] = $data['u'];
  23. $info['title'] = urlencode($data['tl']);
  24. $info['content'] = urlencode($data['ct']);
  25. $info['head'] = $data['hd'];
  26. $info['headwear'] = $data['hw'];
  27. $info['eyes'] = $data['ey'];
  28. $info['mouth'] = $data['mo'];
  29. $info['clothes'] = $data['cl'];
  30. $info['skirt'] = $data['sk'];
  31. $info['shoes'] = $data['sh'];
  32. $info['wing'] = $data['wi'];
  33. $info['create_time'] = getCurrentTime();
  34. $info['del_time'] = getCurrentTime();
  35. $result = $this->showModel->insert($info, false, true);
  36. $info['id'] = $result;
  37. $info['title'] = $data['tl'];
  38. $info['content'] = $data['ct'];
  39. $res['error'] = $result ? 0 : 2;
  40. $res['info'] = $info;
  41. }
  42. catch (Exception $e)
  43. {
  44. $res['error'] = 3;
  45. $res['reason'] = $e;
  46. }
  47. return json($res);
  48. }
  49. public function modify()
  50. {
  51. $data = decode($this->request->post());
  52. $user_id = $data['u'];
  53. $show_id = $data['s'];
  54. $title = urlencode($data['tl']);
  55. $content = urlencode($data['ct']);
  56. $this->showModel->updateInfo($show_id, $title, $content);
  57. $show = Db::name("user_show")->where('id', $show_id)->find();
  58. $show['title'] = urldecode($show['title']);
  59. $show['content'] = urldecode($show['content']);
  60. $res = array();
  61. $res['info'] = $show;
  62. return json($res);
  63. }
  64. public function delete()
  65. {
  66. $data = decode($this->request->post());
  67. $user_id = $data['u'];
  68. $show_id = $data['s'];
  69. $info = array();
  70. $info['del'] = 1;
  71. $info['del_time'] = getCurrentTime();
  72. $this->showModel->where("id=$show_id AND user_id=$user_id")->update($info);
  73. $res = array();
  74. $res['error'] = 0;
  75. return json($res);
  76. }
  77. public function score()
  78. {
  79. $data = decode($this->request->post());
  80. $user_id = $data['u'];
  81. $show_id = intval($data['s']);
  82. $score = Db::name("user_show_score")->where("user_id=$user_id AND show_id=$show_id")->find();
  83. if($score)
  84. {
  85. $res['error'] = 1;
  86. $res['info'] = "already scored";
  87. return json($res);
  88. }
  89. $show = Db::name("user_show")->where('id', $show_id)->find();
  90. if($user_id != $show['user_id'])
  91. {
  92. $score1 = $data['s1'];
  93. $score2 = $data['s2'];
  94. $score3 = $data['s3'];
  95. $score4 = $data['s4'];
  96. $score5 = $data['s5'];
  97. $info = array();
  98. $info['user_id'] = $user_id;
  99. $info['show_id'] = $show_id;
  100. $info['score1'] = $score1;
  101. $info['score2'] = $score2;
  102. $info['score3'] = $score3;
  103. $info['score4'] = $score4;
  104. $info['score5'] = $score5;
  105. $info['create_time'] = getCurrentTime();
  106. Db::name("user_show_score")->insert($info, false, true);
  107. $this->showModel->addScore($show_id, $score1, $score2, $score3, $score4, $score5);
  108. }
  109. $show = Db::name("user_show")->where('id', $show_id)->find();
  110. $show['title'] = urldecode($show['title']);
  111. $show['content'] = urldecode($show['content']);
  112. $res = array();
  113. $res['error'] = 0;
  114. $res['info'] = $show;
  115. return json($res);
  116. }
  117. public function like()
  118. {
  119. $data = decode($this->request->post());
  120. $user_id = $data['u'];
  121. $show_id = intval($data['s']);
  122. $like_db = Db::name("user_show_like");
  123. $show_like = $like_db->where("user_id=$user_id AND show_id=$show_id")->find();
  124. $res = array();
  125. if(!$show_like)
  126. {
  127. $info = array();
  128. $info['user_id'] = $user_id;
  129. $info['show_id'] = $show_id;
  130. $info['like'] = 1;
  131. $info['update_time'] = getCurrentTime();
  132. $result = $like_db->insert($info, false, true);
  133. $info['id'] = $result;
  134. $liked = 1;
  135. }
  136. else
  137. {
  138. $liked = $show_like['like'] > 0 ? 0 : 1;
  139. $info = array();
  140. $info['like'] = $liked;
  141. $like_db->where("user_id=$user_id AND show_id=$show_id")->update($info);
  142. $show_like['like'] = $liked;
  143. }
  144. $count = $like_db->where("`like`=1 AND show_id=$show_id")->count();
  145. $this->showModel->where("id", $show_id)->update(['likes'=>$count]);
  146. $show = Db::name("user_show")->where("id", $show_id)->find();
  147. $show['title'] = urldecode($show['title']);
  148. $show['content'] = urldecode($show['content']);
  149. $res['error'] = 0;
  150. $res['info'] = $show;
  151. $res['liked'] = $liked;
  152. return json($res);
  153. }
  154. public function comment()
  155. {
  156. $data = decode($this->request->post());
  157. $user_id = $data['u'];
  158. $show_id = $data['s'];
  159. $target_id = $data['t'];
  160. $content = $data['c'];
  161. $info = array();
  162. $info['user_id'] = $user_id;
  163. $info['target_id'] = $target_id;
  164. $info['show_id'] = $show_id;
  165. $info['content'] = urlencode($content);
  166. $info['create_time'] = getCurrentTime();
  167. $comment_db = Db::name("user_show_comment");
  168. $result = $comment_db->insert($info, false, true);
  169. $info['id'] = $result;
  170. $info['content'] = $content;
  171. $this->showModel->where('id', $show_id)->setInc('comments');
  172. $res = array();
  173. $res['error'] = $result ? 0 : 2;
  174. $res['info'] = $info;
  175. return json($res);
  176. }
  177. public function show_list()
  178. {
  179. $data = decode($this->request->post());
  180. $uid = $data['u'];
  181. $sort = $data['s'];
  182. $page = $data['p'];
  183. $list = $this->showModel->infoList($sort, $page);
  184. $users = array();
  185. foreach ($list as &$value)
  186. {
  187. $value['title'] = urldecode($value['title']);
  188. $value['content'] = urldecode($value['content']);
  189. $user_id = $value['user_id'];
  190. if(!array_key_exists($user_id, $users))
  191. {
  192. $user = $this->userModel->where('id', $user_id)->field('nickname')->find();
  193. $users[$user_id] = $user;
  194. }
  195. else
  196. {
  197. $user = $users[$user_id];
  198. }
  199. if($user && isset($user['nickname']))
  200. {
  201. $value['nickname'] = $user['nickname'];
  202. }
  203. else
  204. {
  205. $value['nickname'] = "";
  206. }
  207. $show_id = $value['id'];
  208. $like_db = Db::name("user_show_like");
  209. $like = $like_db->where("user_id=$uid AND show_id=$show_id AND `like`=1")->find();
  210. if($like)
  211. {
  212. $value['liked'] = 1;
  213. }
  214. else
  215. {
  216. $value['liked'] = 0;
  217. }
  218. $score_db = Db::name("user_show_score");
  219. $score = $score_db->where("user_id=$uid AND show_id=$show_id")->find();
  220. if($score)
  221. {
  222. $value['scored'] = 1;
  223. }
  224. else
  225. {
  226. $value['scored'] = 0;
  227. }
  228. }
  229. $res = array();
  230. $res['list'] = $list;
  231. return json($res);
  232. }
  233. public function show_list_user()
  234. {
  235. $data = decode($this->request->post());
  236. $uid = $data['mu'];
  237. $user_id = $data['u'];
  238. $page = $data['p'];
  239. $list = $this->showModel->infoListByUser($user_id, $page);
  240. $users = array();
  241. foreach ($list as &$value)
  242. {
  243. $value['title'] = urldecode($value['title']);
  244. $value['content'] = urldecode($value['content']);
  245. $user_id = $value['user_id'];
  246. if(!array_key_exists($user_id, $users))
  247. {
  248. $user = $this->userModel->where('id', $user_id)->field('nickname')->find();
  249. $users[$user_id] = $user;
  250. }
  251. else
  252. {
  253. $user = $users[$user_id];
  254. }
  255. if($user && isset($user['nickname']))
  256. {
  257. $value['nickname'] = $user['nickname'];
  258. }
  259. else
  260. {
  261. $value['nickname'] = "";
  262. }
  263. $like_db = Db::name("user_show_like");
  264. $show_id = $value['id'];
  265. $like = $like_db->where("user_id=$uid AND show_id=$show_id AND `like`=1")->find();
  266. if($like)
  267. {
  268. $value['liked'] = 1;
  269. }
  270. else
  271. {
  272. $value['liked'] = 0;
  273. }
  274. $score_db = Db::name("user_show_score");
  275. $score = $score_db->where("user_id=$uid AND show_id=$show_id")->find();
  276. if($score)
  277. {
  278. $value['scored'] = 1;
  279. }
  280. else
  281. {
  282. $value['scored'] = 0;
  283. }
  284. }
  285. $res['list'] = $list;
  286. return json($res);
  287. }
  288. public function show()
  289. {
  290. $data = decode($this->request->post());
  291. $show_id = $data['s'];
  292. $user_id = $data['u'];
  293. $show_db = Db::name("user_show");
  294. $show = $show_db->where("id=$show_id AND user_id=$user_id")->find();
  295. if(!$show)
  296. return json(array('error', 1));
  297. $show['title'] = urldecode($show['title']);
  298. $show['content'] = urldecode($show['content']);
  299. $user = $this->userModel->where('id', $user_id)->field('nickname')->find();
  300. $show['nickname'] = $user['nickname'] ? $user['nickname'] : "";
  301. return json($show);
  302. }
  303. public function comment_list()
  304. {
  305. $data = decode($this->request->post());
  306. $show_id = $data['s'];
  307. $page = $data['p'];
  308. $page = max($page, 1);
  309. $num_pre_page = 10;
  310. $start = ($page-1) * $num_pre_page;
  311. $comment_db = Db::name("user_show_comment");
  312. $list = $comment_db->where("show_id", $show_id)->order('create_time desc')->limit("$start, $num_pre_page")->select();
  313. $users = array();
  314. foreach ($list as &$value)
  315. {
  316. $value['content'] = urldecode($value['content']);
  317. $user_id = $value['user_id'];
  318. if(!array_key_exists($user_id, $users))
  319. {
  320. $user = $this->userModel->where('id', $user_id)->field('nickname')->find();
  321. $users[$user_id] = $user;
  322. }
  323. else
  324. {
  325. $user = $users[$user_id];
  326. }
  327. if($user && isset($user['nickname']))
  328. {
  329. $value['nickname'] = $user['nickname'];
  330. }
  331. else
  332. {
  333. $value['nickname'] = "";
  334. }
  335. $target_id = $value['target_id'];
  336. if(!array_key_exists($target_id, $users))
  337. {
  338. $user = $this->userModel->where('id', $target_id)->field('nickname')->find();
  339. $users[$target_id] = $user;
  340. }
  341. else
  342. {
  343. $user = $users[$target_id];
  344. }
  345. if($user && isset($user['nickname']))
  346. {
  347. $value['nickname_target'] = $user['nickname'];
  348. }
  349. else
  350. {
  351. $value['nickname_target'] = "";
  352. }
  353. }
  354. $res['list'] = $list;
  355. return json($res);
  356. }
  357. }