web_chat.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. /**
  3. * web_chat
  4. *
  5. *
  6. */
  7. defined('InShopNC') or exit('Access Invalid!');
  8. class web_chatControl extends BaseControl {
  9. public function __construct(){
  10. parent::__construct();
  11. Language::read('member_chat');
  12. if (strtoupper(CHARSET) == 'GBK'){
  13. $_GET = Language::getGBK($_GET);
  14. $_POST = Language::getGBK($_POST);
  15. }
  16. }
  17. /**
  18. * add msg
  19. *
  20. */
  21. public function send_msgOp(){
  22. $member = array();
  23. $model_chat = Model('web_chat');
  24. if(empty($_POST)) $_POST = $_GET;
  25. $member_id = $_SESSION['member_id'];
  26. $member_name = $_SESSION['member_name'];
  27. $f_id = intval($_POST['f_id']);
  28. $t_id = intval($_POST['t_id']);
  29. $t_name = trim($_POST['t_name']);
  30. if (($member_id < 1) || ($member_id != $f_id)) $this->error(Language::get('nc_member_chat_login'));
  31. $member = $model_chat->getMember($t_id);
  32. if ($t_name != $member['member_name']) $this->error(Language::get('nc_member_chat_name_error'));
  33. $msg = array();
  34. $msg['f_id'] = $f_id;
  35. $msg['f_name'] = $member_name;
  36. $msg['t_id'] = $t_id;
  37. $msg['t_name'] = $t_name;
  38. $msg['t_msg'] = trim($_POST['t_msg']);
  39. if ($msg['t_msg'] != '') $chat_msg = $model_chat->addMsg($msg);
  40. if($chat_msg['m_id']) {
  41. $this->json($chat_msg);
  42. } else {
  43. $this->error(Language::get('nc_member_chat_add_error'));
  44. }
  45. }
  46. /**
  47. * friends info
  48. *
  49. */
  50. public function get_user_listOp(){
  51. $member_list = array();
  52. $model_chat = Model('web_chat');
  53. $member_id = $_SESSION['member_id'];
  54. $member_name = $_SESSION['member_name'];
  55. $f_id = intval($_GET['f_id']);
  56. if (($member_id < 1) || ($member_id != $f_id)) $this->error(Language::get('nc_member_chat_login'));
  57. $n = intval($_GET['n']);
  58. if ($n < 1) $n = 50;
  59. $member_list = $model_chat->getFriendList(array('friend_frommid'=> $f_id),$n,$member_list);
  60. $add_time = date("Y-m-d");
  61. $add_time30 = strtotime($add_time)-60*60*24*30;
  62. $member_list = $model_chat->getRecentList(array('f_id'=> $f_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
  63. $member_list = $model_chat->getRecentFromList(array('t_id'=> $f_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
  64. $this->json($member_list);
  65. }
  66. /**
  67. * 商家客服
  68. *
  69. */
  70. public function get_seller_listOp(){
  71. $member_list = array();
  72. $model_chat = Model('web_chat');
  73. $member_id = $_SESSION['member_id'];
  74. $member_name = $_SESSION['member_name'];
  75. $store_id = $_SESSION['store_id'];
  76. $f_id = intval($_GET['f_id']);
  77. if (($member_id < 1) || ($member_id != $f_id)) $this->error(Language::get('nc_member_chat_login'));
  78. $n = intval($_GET['n']);
  79. if ($n < 1) $n = 50;
  80. if(empty($_SESSION['seller_list'])) {
  81. $member_list = $model_chat->getSellerList(array('store_id'=> $store_id),$n,$member_list);
  82. $_SESSION['seller_list'] = $member_list;
  83. } else {
  84. $member_list = $_SESSION['seller_list'];
  85. }
  86. $add_time = date("Y-m-d");
  87. $add_time30 = strtotime($add_time)-60*60*24*30;
  88. $member_list = $model_chat->getRecentList(array('f_id'=> $f_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
  89. $member_list = $model_chat->getRecentFromList(array('t_id'=> $f_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
  90. $this->json($member_list);
  91. }
  92. /**
  93. * member info
  94. *
  95. */
  96. public function get_infoOp(){
  97. if ($_SESSION['member_id'] < 1) $this->error(Language::get('nc_member_chat_login'));
  98. $val = '';
  99. $member = array();
  100. $model_chat = Model('web_chat');
  101. $types = array('member_id','member_name','store_id','member');
  102. $key = $_GET['t'];
  103. $member_id = intval($_GET['u_id']);
  104. if(trim($key) != '' && in_array($key,$types)){
  105. $member = $model_chat->getMember($member_id);
  106. $this->json($member);
  107. }
  108. }
  109. /**
  110. * chat log
  111. *
  112. */
  113. public function get_chat_logOp(){
  114. $member_id = $_SESSION['member_id'];
  115. $f_id = intval($_GET['f_id']);
  116. $t_id = intval($_GET['t_id']);
  117. $page = intval($_GET['page']);
  118. if (($member_id < 1) || ($member_id != $f_id)) $this->error(Language::get('nc_member_chat_login'));
  119. if ($page < 1) $page = 20;
  120. $add_time_to = date("Y-m-d");
  121. $time_from = array();
  122. $time_from['7'] = strtotime($add_time_to)-60*60*24*7;
  123. $time_from['15'] = strtotime($add_time_to)-60*60*24*15;
  124. $time_from['30'] = strtotime($add_time_to)-60*60*24*30;
  125. $key = $_GET['t'];
  126. if(trim($key) != '' && array_key_exists($key,$time_from)){
  127. $model_chat = Model('web_chat');
  128. $chat_log = array();
  129. $list = array();
  130. $condition_sql = " add_time >= '".$time_from[$key]."' ";
  131. $condition_sql .= " and ((f_id = '".$f_id."' and t_id = '".$t_id."') or (f_id = '".$t_id."' and t_id = '".$f_id."'))";
  132. $list = $model_chat->getLogList($condition_sql,$page);
  133. $chat_log['list'] = $list;
  134. $chat_log['total_page'] = $model_chat->gettotalpage();
  135. $this->json($chat_log);
  136. }
  137. }
  138. /**
  139. * 商品图片和名称
  140. *
  141. */
  142. public function get_goods_infoOp(){
  143. $model_chat = Model('web_chat');
  144. $goods_id = intval($_GET['goods_id']);
  145. $goods = $model_chat->getGoodsInfo($goods_id);
  146. $this->json($goods);
  147. }
  148. /**
  149. * get session
  150. *
  151. */
  152. public function get_sessionOp(){
  153. $key = $_GET['key'];
  154. $val = '';
  155. if (!empty($_SESSION[$key])) $val = $_SESSION[$key];
  156. echo $val;
  157. exit;
  158. }
  159. /**
  160. * json
  161. *
  162. */
  163. public function json($json){
  164. if (strtoupper(CHARSET) == 'GBK'){
  165. $json = Language::getUTF8($json);//GBKtoUTF-8
  166. }
  167. echo $_GET['callback'].'('.json_encode($json).')';
  168. exit;
  169. }
  170. /**
  171. * error
  172. *
  173. */
  174. public function error($msg = ''){
  175. $this->json(array('error'=> $msg));
  176. }
  177. }