wbw_channel_list.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. require_once '../path.php';
  3. require_once "../public/_pdo.php";
  4. require_once "../public/function.php";
  5. require_once '../share/function.php';
  6. require_once '../channal/function.php';
  7. require_once '../redis/function.php';
  8. $redis = redis_connect();
  9. $output["status"] = 0;
  10. $output["error"] = "";
  11. $output["data"] = "";
  12. if (!isset($_COOKIE["userid"])) {
  13. $output["status"] = 1;
  14. $output["error"] = "#not_login";
  15. echo json_encode(output, JSON_UNESCAPED_UNICODE);
  16. exit;
  17. }
  18. $_book = $_POST["book"];
  19. $_para = json_decode($_POST["para"]);
  20. $output["para"] = $_POST["para"];
  21. $output["book"] = $_POST["book"];
  22. /* 创建一个填充了和params相同数量占位符的字符串 */
  23. $place_holders = implode(',', array_fill(0, count($_para), '?'));
  24. $params = $_para;
  25. $params[] = $_book;
  26. #查重复
  27. $channelList = array();
  28. PDO_Connect(_FILE_DB_CHANNAL_);
  29. $query = "SELECT id FROM channal WHERE owner = ? LIMIT 0,100";
  30. $FetchChannal = PDO_FetchAll($query, array($_COOKIE["userid"]));
  31. foreach ($FetchChannal as $key => $value) {
  32. # code...
  33. $channelList[$value["id"]]=array("power"=>30);
  34. }
  35. # 找协作的
  36. $coop_channal = share_res_list_get($_COOKIE["userid"],2);
  37. foreach ($coop_channal as $key => $value) {
  38. # return res_id,res_type,power res_title res_owner_id
  39. if(isset($channelList[$value["res_id"]])){
  40. if($channelList[$value["res_id"]]<(int)$value["power"]){
  41. $channelList[$value["res_id"]]=array("power"=>(int)$value["power"]);
  42. }
  43. }
  44. else{
  45. $channelList[$value["res_id"]]=array("power"=>(int)$value["power"]);
  46. }
  47. }
  48. # 查询全网公开 的
  49. PDO_Connect( _FILE_DB_USER_WBW_);
  50. $query = "SELECT channal FROM "._TABLE_USER_WBW_BLOCK_." WHERE paragraph IN ($place_holders) AND book = ? AND channal IS NOT NULL AND status = 30 group by channal ";
  51. $publicChannel = PDO_FetchAll($query, $params);
  52. foreach ($publicChannel as $key => $channel) {
  53. # code...
  54. if(!isset($channelList[$channel["channal"]])){
  55. $channelList[$channel["channal"]]=array("power"=>10);
  56. }
  57. }
  58. $channelInfo = new Channal($redis);
  59. $i = 0;
  60. $outputData = array();
  61. foreach ($channelList as $key => $row) {
  62. $queryParam = $params;
  63. $queryParam[] = $key;
  64. $query = "SELECT count(*) FROM "._TABLE_USER_WBW_BLOCK_." WHERE paragraph IN ($place_holders) AND book = ? AND channal = ? ";
  65. $wbwCount = PDO_FetchOne($query, $queryParam);
  66. $channelList[$key]["wbw_para"] = $wbwCount;
  67. $channelList[$key]["count"] = count($_para);
  68. $info = $channelInfo->getChannal($key);
  69. $channelList[$key]["id"] = $info["id"];
  70. $channelList[$key]["name"] = $info["name"];
  71. $channelList[$key]["lang"] = $info["lang"];
  72. $outputData[]=$channelList[$key];
  73. }
  74. $output["data"] = $outputData;
  75. echo json_encode($output, JSON_UNESCAPED_UNICODE);