Message.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace app\service\controller;
  3. class Message extends Base
  4. {
  5. public function index()
  6. {
  7. // 留言信息
  8. $message = db('accountsmessage')->join('accounts','accounts.id=ws_accountsmessage.account_id')->where('message_status', 0)->select();
  9. //print_r($message);
  10. $this->assign([
  11. 'message' => $message,
  12. ]);
  13. return $this->fetch();
  14. }
  15. // 处理留言
  16. public function dealmessage()
  17. {
  18. if(request()->isPost()){
  19. //客服id
  20. $user_id = input('post.user_id');
  21. //留言id
  22. $message_id = input('post.message_id');
  23. $user = db('users')->where('id', $user_id)->find();
  24. if(empty($user)){
  25. return json(['code' => -1, 'data' => '', 'msg' => '客服不存在']);
  26. }
  27. $message = db('accountsmessage')->where('message_id', $message_id)->find();
  28. if(empty($message)){
  29. return json(['code' => -1, 'data' => '', 'msg' => '留言不存在']);
  30. }
  31. // 更新留言状态
  32. $param = [
  33. 'user_id' => $user_id,
  34. 'dealWith_time' => time()
  35. ];
  36. db('accountsmessage')->where('message_id', $message_id)->update($param);
  37. return json(['code' => 1, 'data' => url('message/index'), 'msg' => '登录成功']);
  38. }
  39. }
  40. // 获取聊天记录
  41. public function getChatLog()
  42. {
  43. if(request()->isAjax()){
  44. $param = input('param.');
  45. $limit = 10; // 一次显示10 条聊天记录
  46. $offset = ($param['page'] - 1) * $limit;
  47. $logs = db('chat_log')->where(function($query) use($param){
  48. $query->where('from_id', $param['uid'])->where('to_id', 'KF' . cookie('l_user_id'));
  49. })->whereOr(function($query) use($param){
  50. $query->where('from_id', 'KF' . cookie('l_user_id'))->where('to_id', $param['uid']);
  51. })->limit($offset, $limit)->order('id', 'desc')->select();
  52. $total = db('chat_log')->where(function($query) use($param){
  53. $query->where('from_id', $param['uid'])->where('to_id', 'KF' . cookie('l_user_id'));
  54. })->whereOr(function($query) use($param){
  55. $query->where('from_id', 'KF' . cookie('l_user_id'))->where('to_id', $param['uid']);
  56. })->count();
  57. foreach($logs as $key=>$vo){
  58. $logs[$key]['type'] = 'user';
  59. $logs[$key]['time_line'] = date('Y-m-d H:i:s', $vo['time_line']);
  60. if($vo['from_id'] == 'KF' . cookie('l_user_id')){
  61. $logs[$key]['type'] = 'mine';
  62. }
  63. }
  64. return json(['code' => 1, 'data' => $logs, 'msg' => intval($param['page']), 'total' => ceil($total / $limit)]);
  65. }
  66. }
  67. // ip 定位
  68. public function getCity()
  69. {
  70. $ip = input('param.ip');
  71. $ip2region = new \Ip2Region();
  72. $info = $ip2region->btreeSearch($ip);
  73. $city = explode('|', $info['region']);
  74. if(0 != $info['city_id']){
  75. return json(['code' => 1, 'data' => $city['2'] . $city['3'] . $city['4'], 'msg' => 'ok']);
  76. }else{
  77. return json(['code' => 1, 'data' => $city['0'], 'msg' => 'ok']);
  78. }
  79. }
  80. }