member_ugc.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/7/5
  6. * Time: 下午4:02
  7. */
  8. require_once(BASE_ROOT_PATH . '/mobile/control/special.php');
  9. require_once(BASE_ROOT_PATH . '/helper/ugc_helper.php');
  10. require_once(BASE_ROOT_PATH . '/helper/search/tcp_client.php');
  11. require_once(BASE_ROOT_PATH . '/helper/text_filter.php');
  12. require_once(BASE_ROOT_PATH . '/helper/bonus_helper.php');
  13. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  14. class member_ugcControl extends specialControl
  15. {
  16. const greater = 0;
  17. const lesser = 1;
  18. private $mUgcBanner;
  19. public function __construct()
  20. {
  21. parent::__construct();
  22. global $config;
  23. $this->mUgcBanner = $config['ugc_banner'];
  24. }
  25. public function pub_listOp()
  26. {
  27. return $this->fetch('pub_list');
  28. }
  29. public function pri_listOp()
  30. {
  31. $this->need_login();
  32. return $this->fetch('pri_list');
  33. }
  34. public function mine_listOp()
  35. {
  36. $this->need_login();
  37. return $this->fetch('mine_list');
  38. }
  39. private function fetch($type)
  40. {
  41. $special_id = intval($_GET['special_id']);
  42. $count = $this->page_size();
  43. if($special_id == -1) {
  44. $special_id = -1;
  45. $direct = self::lesser;
  46. }
  47. elseif ($special_id == 0) {
  48. return self::outsuccess(['special_list' => null,'mobile_page' => mobile_page(0)]);
  49. }
  50. else {
  51. $direct = $this->direct();
  52. }
  53. if($type == "pub_list") {
  54. $specials = search\relation_client::instance()->fetch_pub_special(['special_id' => $special_id,'count'=> $count,'type' => $direct]);
  55. }
  56. elseif($type == 'pri_list') {
  57. $specials = search\relation_client::instance()->fetch_pri_special(['user_id' => session_helper::memberid(),
  58. 'special_id' => $special_id,'count'=> $count,'type' => $direct]);
  59. }
  60. elseif($type == "mine_list") {
  61. $specials = $this->mine_specials($special_id,$count);
  62. }
  63. else {
  64. return self::outerr(errcode::ErrParamter);
  65. }
  66. $blocks = [];
  67. if($special_id == -1)
  68. {
  69. $extid = $this->tip_block($type);
  70. if($extid != false) {
  71. $helper = new special_formater($extid);
  72. $blocks = $helper->format($goods_ids);
  73. }
  74. }
  75. if(empty($specials))
  76. {
  77. $page_no = $this->page_no();
  78. if($page_no == 1) $page_no = 0;
  79. return self::outsuccess(['special_list' => $blocks,'mobile_page' => mobile_page($page_no)]);
  80. }
  81. else
  82. {
  83. $special_list = $this->special_list($specials,$ugcs);
  84. $page_no = $this->page_no();
  85. if($this->page_size() <= count($specials)) {
  86. $page_no += 1;
  87. }
  88. foreach ($special_list as $val) {
  89. $blocks[] = $val;
  90. }
  91. return self::outsuccess(['special_list' => $blocks,
  92. 'ugcs' => $ugcs,
  93. 'summary' => null,
  94. 'groupbuy' => null,
  95. 'limitime' => null,
  96. 'bundling' => null,
  97. 'mobile_page' => mobile_page($page_no)]);
  98. }
  99. }
  100. private function mine_specials($special_id,$count)
  101. {
  102. $mod_special = Model();
  103. $userid = session_helper::memberid();
  104. if($special_id == -1) {
  105. $items = $mod_special->table('mb_special')->field('special_id')
  106. ->where(['member_id' => $userid,'from_user' => 1])
  107. ->order('special_id desc')->limit($count)->select();
  108. } else {
  109. $items = $mod_special->table('mb_special')->field('special_id')
  110. ->where(array('special_id' => ['lt',$special_id],'member_id' => $userid,'from_user' => 1))
  111. ->order('special_id desc')->limit($count)->select();
  112. }
  113. $result = [];
  114. foreach ($items as $item) {
  115. $spid = intval($item['special_id']);
  116. $result[] = $spid;
  117. }
  118. return $result;
  119. }
  120. private function tip_block($type)
  121. {
  122. if($type == "pub_list") {
  123. $spid = $this->mUgcBanner['pub'];
  124. }
  125. elseif($type == 'pri_list') {
  126. $spid = $this->mUgcBanner['friend'];
  127. }
  128. elseif($type == "mine_list") {
  129. $spid = $this->mUgcBanner['mine'];
  130. }
  131. else {
  132. return false;
  133. }
  134. if(empty($spid) || $spid == 0) {
  135. return false;
  136. }
  137. else {
  138. return $spid;
  139. }
  140. }
  141. private function direct()
  142. {
  143. $cur_page = $this->page_no();
  144. if($cur_page == 1) {
  145. return self::greater;
  146. } else {
  147. return self::lesser;
  148. }
  149. }
  150. private function special_list($spids, &$ugcs)
  151. {
  152. $result = [];
  153. $mod_special = Model('mb_special');
  154. $items = $mod_special->getMbSpecialList(['special_id' => ['in',$spids],'member_id' => ['gt',0],'from_user' => 1]);
  155. $users = [];
  156. $specials = [];
  157. foreach ($items as $item)
  158. {
  159. $special = new ugc\special($item);
  160. $specials[] = $special;
  161. $sender = $special->memberid();
  162. $users[] = $sender;
  163. }
  164. sort($users);
  165. $users = array_unique($users);
  166. $minfos = [];
  167. if(!empty($users))
  168. {
  169. $mod_member = Model('member');
  170. $members = $mod_member->getMemberList(['member_id' => ['in',$users]]);
  171. foreach ($members as $member) {
  172. $info = new member_info($member);
  173. $mid = $info->member_id();
  174. $minfos[$mid] = $info;
  175. }
  176. }
  177. $ugcs = [];
  178. foreach ($specials as $special)
  179. {
  180. $block = special_formater::format_ugc($special);
  181. $result[] = $block;
  182. $divider = special_formater::def_divider();
  183. $result[] = $divider;
  184. $mid = $special->memberid();
  185. $minfo = $minfos[$mid];
  186. if(is_null($minfo) == false) {
  187. $ugc = $this->format_ugc($minfo,$special);
  188. $ugcs[] = $ugc;
  189. }
  190. }
  191. return $result;
  192. }
  193. private function format_ugc(member_info $minfo, ugc\special $special)
  194. {
  195. $ret['special_id'] = $special->special_id();
  196. $ret['member_avatar'] = $minfo->avatar();
  197. $ret['member_nickname'] = $minfo->nickname();
  198. $ret['has_vote'] = $special->has_vote();
  199. $ret['appreciate_num'] = $special->appreciates();
  200. $ret['comment_num'] = $special->comments();
  201. $ret['clicks'] = $special->clicks();
  202. $ret['pubtime'] = $special->editime();
  203. $ret['desc'] = $special->description();
  204. $supporter = new ugc\special_support($special->special_id(),0);
  205. $ret['supported'] = $supporter->supported();
  206. $ret['support_num'] = $special->likes();
  207. $cid = $special->category_id();
  208. $ret['category'] = ugc_helper::category_title($cid);
  209. $ret['can_del'] = false;
  210. if(session_helper::logined())
  211. {
  212. if($special->memberid() == $_SESSION['member_id']) {
  213. $ret['can_del'] = true;
  214. }
  215. }
  216. return $ret;
  217. }
  218. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  219. public function addOp()
  220. {
  221. $this->need_login();
  222. $contet = $_POST['content'];
  223. if(empty($contet)) {
  224. return self::outerr(errcode::ErrParamter,"上传的内容不能为空");
  225. }
  226. return $this->add($contet);
  227. }
  228. public function addexOp()
  229. {
  230. $this->need_login();
  231. $contet = $_POST['content'];
  232. if(empty($contet)) {
  233. return self::outerr(errcode::ErrParamter,"上传的内容不能为空");
  234. }
  235. else {
  236. $contet = urldecode($contet);
  237. }
  238. return $this->add($contet);
  239. }
  240. private function add($contet)
  241. {
  242. $sp_data = json_decode($contet,true);
  243. if(empty($sp_data)) {
  244. return self::outerr(errcode::ErrParamter,"上传的内容不能为空");
  245. }
  246. $spobj = ugc_helper::crate_special($sp_data,$err);
  247. if($spobj == false) {
  248. return self::outerr($err['code'],$err['msg']);
  249. }
  250. if($spobj->count() > 0)
  251. {
  252. $special_id = $spobj->save($_SESSION['member_id'],$sp_data);
  253. } else {
  254. $special_id = false;
  255. }
  256. if($special_id == false) {
  257. return self::outerr(errcode::ErrUGC,"抱歉,内容云同步失败 :(");
  258. }
  259. else {
  260. return self::outsuccess(['special_id' => $special_id]);
  261. }
  262. }
  263. public function previewOp()
  264. {
  265. $this->need_login();
  266. return parent::indexOp();
  267. }
  268. public function publishOp()
  269. {
  270. $this->need_login();
  271. $special_id = intval($_GET['special_id']);
  272. $setting = $_GET['setting'];
  273. if($special_id < 0 || empty($setting)) {
  274. return self::outerr(errcode::ErrParamter);
  275. }
  276. return $this->publish($special_id,$setting);
  277. }
  278. public function publishexOp()
  279. {
  280. $this->need_login();
  281. $special_id = intval($_GET['special_id']);
  282. $setting = $_GET['setting'];
  283. if($special_id < 0 || empty($setting)) {
  284. return self::outerr(errcode::ErrParamter);
  285. }
  286. else {
  287. $setting = urldecode($setting);
  288. }
  289. return $this->publish($special_id,$setting);
  290. }
  291. private function publish($special_id,$setting)
  292. {
  293. $setting = json_decode($setting,true);
  294. if(ugc_helper::pub_special($special_id,$setting,$err) == false) {
  295. return self::outerr($err['code'],$err['msg']);
  296. }
  297. else {
  298. return self::outsuccess(['special_id' => $special_id]);
  299. }
  300. }
  301. public function delOp()
  302. {
  303. $this->need_login();
  304. $special_id = intval($_GET['special_id']);
  305. if(ugc_helper::del_special($special_id,$err) == false) {
  306. return self::outerr($err['code'],$err['msg']);
  307. }
  308. else {
  309. return self::outsuccess(['special_id' => $special_id]);
  310. }
  311. }
  312. public function supportOp()
  313. {
  314. $special_id = intval($_GET['special_id']);
  315. if($special_id < 0) {
  316. return self::outerr(errcode::ErrParamter,"该专题不存在");
  317. }
  318. $comment_id = intval($_GET['comment_id']);
  319. $supported = ugc_helper::support_special($special_id,$comment_id);
  320. return self::outsuccess(['special_id' => $special_id,'comment_id' => $comment_id,'supported' => $supported]);
  321. }
  322. public function commentsOp()
  323. {
  324. $special_id = intval($_GET['special_id']);
  325. if($special_id < 0) {
  326. return self::outerr(errcode::ErrParamter,"该专题不存在");
  327. }
  328. $comment_id = intval($_GET['comment_id']);
  329. if($comment_id <= 0)
  330. {
  331. $mod_comment = Model('ugc_comment');
  332. $count = $mod_comment->top_counts($special_id);
  333. $items = $mod_comment->getTopCommentList($special_id,'comment_id',$this->page_size(),$count);
  334. $pages = $mod_comment->gettotalpage();
  335. $mobile_page = mobile_page($pages);
  336. $commentids = $this->commentids($items);
  337. if(!empty($commentids))
  338. {
  339. $mod = Model('ugc_comment');
  340. $comment_subcounts = [];
  341. $items = $mod->comments_counts($special_id,$commentids);
  342. foreach ($items as $item) {
  343. $comment_id = intval($item['comment_id']);
  344. $count = intval($item['nc_count']);
  345. $comment_subcounts[$comment_id] = $count;
  346. }
  347. $comments = $mod->getCommentList(array('top_id' => ['in',$commentids]),'*',0);
  348. $comments_obj =new ugc\comments($comments,$special_id,$comment_subcounts);
  349. $comments = $comments_obj->comments();
  350. $uids = $comments_obj->users();
  351. $members = $this->users($uids);
  352. } else {
  353. $comments = [];
  354. $members = [];
  355. }
  356. }
  357. else
  358. {
  359. $mod_comment = Model('ugc_comment');
  360. $count = $mod_comment->comment_counts($special_id,$comment_id);
  361. $items = $mod_comment->getSubCommentList($special_id,$comment_id,'comment_id',$this->page_size(),$count);
  362. $pages = $mod_comment->gettotalpage();
  363. $mobile_page = mobile_page($pages);
  364. $commentids = $this->commentids($items);
  365. if($commentids) {
  366. $mod = Model('ugc_comment');
  367. $comments = $mod->getCommentList(array('comment_id' => ['in',$commentids]),'*',0);
  368. $comments_obj =new ugc\comments($comments,$special_id,[]);
  369. $comments = $comments_obj->comments();
  370. $uids = $comments_obj->users();
  371. $members = $this->users($uids);
  372. } else {
  373. $comments = [];
  374. $members = [];
  375. }
  376. }
  377. return self::outsuccess(['comments' => $comments,'members' => $members,'mobile_page' => $mobile_page]);
  378. }
  379. private function users($user_ids)
  380. {
  381. if(empty($user_ids)) return [];
  382. $mod_member = Model('member');
  383. $members = $mod_member->getMemberList(array('member_id' => ['in',$user_ids]));
  384. if(empty($members)) return [];
  385. $result = [];
  386. foreach ($members as $item)
  387. {
  388. $member = new member_info($item);
  389. $val['member_id'] = $member->member_id();
  390. $val['avatar'] = $member->avatar();
  391. $val['nickname'] = $member->nickname();
  392. $result[] = $val;
  393. }
  394. return $result;
  395. }
  396. private function commentids($items)
  397. {
  398. $result = [];
  399. foreach ($items as $val) {
  400. $commentid = intval($val['comment_id']);
  401. $result[] = $commentid;
  402. }
  403. return $result;
  404. }
  405. public function commentOp()
  406. {
  407. $this->need_login();
  408. $special_id = intval($_GET['special_id']);
  409. if($special_id < 0) {
  410. return self::outerr(errcode::ErrParamter,"该专题不存在");
  411. }
  412. $comment = urldecode($_GET['content']);
  413. if(empty($comment)) {
  414. return self::outerr(errcode::ErrParamter,"评论内容不能为空.");
  415. }
  416. $comment = text_filter::filter_html($comment);
  417. if(empty($comment)) {
  418. return self::outerr(errcode::ErrParamter,"评论内容不能含非法字符.");
  419. }
  420. $comment_id = intval($_GET['comment_id']);
  421. $mod_comment = Model('ugc_comment');
  422. if($comment_id > 0) {
  423. $ret = $mod_comment->respond_comment($special_id,$comment_id,session_helper::memberid(),$comment);
  424. } else {
  425. $ret = $mod_comment->comment($special_id,session_helper::memberid(),$comment);
  426. }
  427. if($ret == false) {
  428. return self::outerr(errcode::ErrDB,"抱歉,评论出错了.");
  429. }
  430. else
  431. {
  432. $mod = Model('ugc_comment');
  433. $comments = $mod->getCommentList(['comment_id' => $ret],'*',0);
  434. $comments_obj = new ugc\comments($comments,$special_id,[]);
  435. $comments = $comments_obj->comments();
  436. $uids = $comments_obj->users();
  437. $members = $this->users($uids);
  438. QueueClient::push('onAsyncUgcComment',['special_id' => $special_id, 'comment_id' => $comment_id,'user_id' => session_helper::memberid()]);
  439. return self::outsuccess(['comments' => $comments,'members' => $members,'mobile_page' => mobile_page(0)]);
  440. }
  441. }
  442. public function mine_bonusOp()
  443. {
  444. $this->need_login();
  445. $pred = new predeposit_helper($_SESSION['member_id']);
  446. $bonus_rate = $pred->pay_bonus_rates();
  447. if($bonus_rate != null)
  448. {
  449. $rates = $bonus_rate->format();
  450. $rates_money = [];
  451. foreach ($rates as $rate => $money) {
  452. $item['rate'] = $rate;
  453. $item['total'] = $money;
  454. $rates_money[] = $item;
  455. }
  456. }
  457. else {
  458. $rates_money = [];
  459. }
  460. return self::outsuccess(['bonus_rate' => $rates_money]);
  461. }
  462. public function appreciateOp()
  463. {
  464. $this->need_login();
  465. $special_id = intval($_GET['special_id']);
  466. $rate = intval($_GET['rate']);
  467. $money = intval($_GET['money']);
  468. $bless = urldecode($_GET['bless']);
  469. $bless = text_filter::filter_html($bless);
  470. if($special_id < 0 || $rate <= 0 || $rate > 100 || $money <= 0) {
  471. return self::outerr(errcode::ErrParamter,"参数错误");
  472. }
  473. $ret = ugc_helper::appreciate($special_id,$rate,$money,$bless);
  474. if($ret == false) {
  475. return self::outsuccess(errcode::ErrBonus,"抱歉,赞赏失败,请晚点再试。");
  476. }
  477. else
  478. {
  479. $mod_appreciate = Model('appreciate');
  480. $insertid = $mod_appreciate->insert(['special_id' => $special_id,'member_id' => session_helper::memberid(),'rate' => $rate,'money' => $money,'addtime' => time()]);
  481. if($insertid != false) {
  482. $mod_special = Model('mb_special');
  483. $mod_special->table('mb_special')->where(['special_id' => $special_id])->update(array('appreciates' => ['exp', 'appreciates + 1'],
  484. 'appreciate_amonut' => ['exp', "appreciate_amonut + {$money}"]));
  485. }
  486. QueueClient::push('onAsyncUgcAppreciate',['special_id' => $special_id,
  487. 'user_id' => session_helper::memberid(),
  488. 'rate' => $rate,'amount' => $money]);
  489. return self::outsuccess(null);
  490. }
  491. }
  492. public function appreciate_listOp()
  493. {
  494. $special_id = intval($_GET['special_id']);
  495. if($special_id < 0) {
  496. return self::outerr(errcode::ErrParamter,"该专题不存在");
  497. }
  498. $mod_appreciate = Model('appreciate');
  499. $count = $mod_appreciate->counts($special_id);
  500. $items = $mod_appreciate->getListBySpecialid($special_id,'*',$this->page_size(),$count);
  501. $pages = $mod_appreciate->gettotalpage();
  502. $uids = [];
  503. foreach ($items as $val) {
  504. $user_id = intval($val['member_id']);
  505. $uids[] = $user_id;
  506. }
  507. $members = $this->users($uids);
  508. $result = [];
  509. foreach ($items as $item) {
  510. $val = [];
  511. $val['member_id'] = intval($item['member_id']);
  512. $val['rate'] = intval($item['rate']);
  513. $val['money'] = doubleval($item['money']);
  514. $val['addtime'] = intval($item['addtime']);
  515. $result[] = $val;
  516. }
  517. return self::outsuccess(['appreciate' => $result,'members' => $members,'mobile_page' => mobile_page($pages)]);
  518. }
  519. public function answer_pageOp()
  520. {
  521. $special_id = intval($_GET['special_id']);
  522. if($special_id < 0) {
  523. return self::outerr(errcode::ErrParamter,"该专题不存在");
  524. }
  525. $memberid = session_helper::memberid();
  526. if($memberid > 0) {
  527. $mod_answer = Model('ugc_answer');
  528. $answer = $mod_answer->getAnswer($special_id,$memberid);
  529. }
  530. if(empty($answer))
  531. {
  532. return self::outsuccess(['answer' => [],'special_id' => $special_id,'scale' => 0],'ugc/answer.list');
  533. }
  534. else
  535. {
  536. $result = $this->format_answer($answer,'','');
  537. $correct_num = $answer['correct_num'];
  538. if($correct_num > 0)
  539. {
  540. $lt_count = $mod_answer->lt_count($special_id,$correct_num);
  541. $counts = $mod_answer->counts($special_id);
  542. if($lt_count > 0 && $counts > 0) {
  543. $scale = intval($lt_count * 100 / $counts + 0.5);
  544. } else {
  545. $scale = false;
  546. }
  547. } else {
  548. $scale = false;
  549. }
  550. return self::outsuccess(['answer' => $result,'special_id' => $special_id,'scale' => $scale],'ugc/answer.list');
  551. }
  552. }
  553. private function format_answer($answer,$nickname,$avatar)
  554. {
  555. $result['correct_num'] = intval($answer['correct_num']);
  556. $result['total_num'] = intval($answer['total_num']);
  557. if($result['total_num'] == 0) {
  558. $result['score'] = 0;
  559. }
  560. else {
  561. $result['score'] = intval($result['correct_num'] * 100 / $result['total_num'] + 0.5);
  562. }
  563. $result['bonus_rate'] = intval($answer['bonus_rate']);
  564. $result['amount'] = doubleval($answer['amount']);
  565. $result['answer_time']= intval($answer['answer_time']);
  566. $result['nickname'] = $nickname;
  567. $result['avatar'] = $avatar;
  568. return $result;
  569. }
  570. public function answersOp()
  571. {
  572. $special_id = intval($_GET['special_id']);
  573. if($special_id < 0) {
  574. return self::outerr(errcode::ErrParamter,"该专题不存在");
  575. }
  576. $mod_answer = Model('ugc_answer');
  577. $count = $mod_answer->counts($special_id);
  578. $items = $mod_answer->answer_list($special_id,'*',$this->page_size(),$count);
  579. $pages = $mod_answer->gettotalpage();
  580. if(empty($items)) {
  581. return self::outsuccess(['answers' => [],'mobile_page' => mobile_page(0)]);
  582. }
  583. $uids = [];
  584. foreach ($items as $val) {
  585. $user_id = intval($val['member_id']);
  586. $uids[] = $user_id;
  587. }
  588. $minfos = $this->users($uids);
  589. $members = [];
  590. foreach ($minfos as $val) {
  591. $mid = intval($val['member_id']);
  592. $members[$mid] = $val;
  593. }
  594. $answers = [];
  595. foreach ($items as $item) {
  596. $mid = intval($item['member_id']);
  597. $member = $members[$mid];
  598. $value = $this->format_answer($item,$member['nickname'],$member['avatar']);
  599. $answers[] = $value;
  600. }
  601. return self::outsuccess(['answers' => $answers,'mobile_page' => mobile_page($pages)]);
  602. }
  603. public function subscribe_authorOp()
  604. {
  605. $special_id = intval($_GET['special_id']);
  606. if($special_id < 0) {
  607. return self::outerr(errcode::ErrParamter,"该专题不存在");
  608. }
  609. $memberid = $_SESSION['member_id'];
  610. $success = ugc_helper::subscribe($memberid,$special_id);
  611. return self::outsuccess(['success' => $success]);
  612. }
  613. public function report_pageOp()
  614. {
  615. $special_id = intval($_GET['special_id']);
  616. if($special_id < 0) {
  617. return self::outerr(errcode::ErrParamter,"该专题不存在");
  618. }
  619. return self::outsuccess(['special_id' => $special_id],'ugc/report');
  620. }
  621. public function reportOp()
  622. {
  623. $special_id = intval($_GET['special_id']);
  624. $content = urldecode($_GET['content']);
  625. if($special_id > 0 && !empty($content)) {
  626. $content = text_filter::filter_input($content);
  627. $mod_report = Model();
  628. $mod_report->table('special_report')->insert(['special_id' => $special_id,'reporter_id' => session_helper::memberid(),'content' => $content]);
  629. }
  630. return self::outsuccess([]);
  631. }
  632. }