chats.ctrl.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. load()->model('mc');
  8. load()->classs('wesession');
  9. load()->classs('account');
  10. load()->model('material');
  11. $dos = array('chats', 'send', 'endchats');
  12. $do = in_array($do , $dos) ? $do : 'chats';
  13. permission_check_account_user('mc_fans');
  14. if ($do == 'chats') {
  15. $_W['page']['title'] = '粉丝聊天';
  16. $openid = addslashes($_GPC['openid']);
  17. $fans_info = mc_fansinfo($openid);
  18. if (!empty($fans_info['uid'])) {
  19. $fans_info['member_info'] = mc_fetch($fans_info['uid']);
  20. }
  21. $chat_record = pdo_getslice('mc_chats_record', array('uniacid' => $_W['uniacid'], 'openid' => $openid), array('1', 20), $total, array(), '', 'createtime desc');
  22. $chat_record = mc_fans_chats_record_formate($chat_record);
  23. }
  24. if ($do == 'send') {
  25. $content_formate = mc_send_content_formate($_GPC);
  26. $send = $content_formate['send'];
  27. $content = $content_formate['content'];
  28. $account_api = WeAccount::create($_W['acid']);
  29. $result = $account_api->sendCustomNotice($send);
  30. if (is_error($result)) {
  31. iajax(-1, $result['meaasge']);
  32. } else {
  33. $account = account_fetch($_W['acid']);
  34. $message['from'] = $_W['openid'] = $send['touser'];
  35. $message['to'] = $account['original'];
  36. if(!empty($message['to'])) {
  37. $sessionid = md5($message['from'] . $message['to'] . $_W['uniacid']);
  38. session_id($sessionid);
  39. WeSession::start($_W['uniacid'], $_W['openid'], 300);
  40. $processor = WeUtility::createModuleProcessor('chats');
  41. $processor->begin(300);
  42. }
  43. if($send['msgtype'] == 'mpnews') {
  44. $material = pdo_getcolumn('wechat_attachment', array('uniacid' => $_W['uniacid'], 'media_id' => $content['mediaid']), 'id');
  45. $content = $content['thumb'];
  46. }
  47. pdo_insert('mc_chats_record',array(
  48. 'uniacid' => $_W['uniacid'],
  49. 'acid' => $acid,
  50. 'flag' => 1,
  51. 'openid' => $send['touser'],
  52. 'msgtype' => $send['msgtype'],
  53. 'content' => iserializer($send[$send['msgtype']]),
  54. 'createtime' => TIMESTAMP,
  55. ));
  56. iajax(0, array('createtime' => date('Y-m-d H:i:s', time()), 'content' => $content, 'msgtype' => $send['msgtype']), '');
  57. }
  58. }
  59. if ($do == 'endchats') {
  60. $openid = trim($_GPC['openid']);
  61. if (empty($openid)) {
  62. iajax(1, '粉丝openid不合法', '');
  63. }
  64. $fans_info = mc_fansinfo($openid);
  65. $account = account_fetch($fans_info['acid']);
  66. $message['from'] = $_W['openid'] = $openid['openid'];
  67. $message['to'] = $account['original'];
  68. if(!empty($message['to'])) {
  69. $sessionid = md5($message['from'] . $message['to'] . $_W['uniacid']);
  70. session_id($sessionid);
  71. WeSession::start($_W['uniacid'], $_W['openid'], 300);
  72. $processor = WeUtility::createModuleProcessor('chats');
  73. $processor->end();
  74. }
  75. if (is_error($result)) {
  76. iajax(1, $result);
  77. }
  78. }
  79. template('mc/chats');