Message.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\index\controller;
  3. use think\Controller;
  4. class Message extends Controller
  5. {
  6. public function index()
  7. {
  8. // 留言知识库(默认查询前七天的留言)
  9. $end = time();
  10. $start = time() - 604800;
  11. if (request()->isPost()) {
  12. $time = input("param.time/s");
  13. $key = input("param.key/s");
  14. $type = input("param.type/s");
  15. $limit = intval(input("param.pageSize/s", 10));
  16. $pageNumber = intval(input("param.pageNumber/s", 1));
  17. $offset = ($pageNumber - 1) * $limit;
  18. if ($time == 'week') {
  19. //前一周
  20. $start = time() - 604800;
  21. }
  22. if ($time == 'oneMonth') {
  23. //前一个月
  24. $start = time() - 2592000;
  25. }
  26. if ($time == 'threeMonth') {
  27. //前三个月
  28. $start = time() - 7776000;
  29. }
  30. if (!empty($start_time)) {
  31. $start = strtotime($start_time);
  32. }
  33. if (!empty($end_time)) {
  34. $end = strtotime($end_time . ' 23:59:59');
  35. }
  36. $where = array();
  37. if (!empty($type)) {
  38. $type_id = db('messagetype')->where('name', $type)->find();
  39. if (!empty($type)) {
  40. $where['type_id'] = $type_id['id'];
  41. }
  42. }
  43. }
  44. if (!empty($key)) {
  45. $message = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->whereLike('content', '%' . $key . '%')->where('if_public', 1)->limit($offset, $limit)->order('add_time', 'desc')->select();
  46. $total = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->whereLike('content', '%' . $key . '%')->where('if_public', 1)->limit($offset, $limit)->order('add_time', 'desc')->count();
  47. } else {
  48. $message = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->where('if_public', 1)->limit($offset, $limit)->order('add_time', 'desc')->select();
  49. $total = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->where('if_public', 1)->limit($offset, $limit)->order('add_time', 'desc')->count();
  50. }
  51. $type = db('messagetype')->select();
  52. $users = db('users')->select();
  53. foreach ($message as $key => $vo) {
  54. //转为日期时间格式
  55. $message[$key]['add_time'] = date('Y-m-d H:i:s', $vo['add_time']);
  56. $message[$key]['dealWith_time'] = date('Y-m-d H:i:s', $vo['dealWith_time']);
  57. //类型名称
  58. for ($i = 0; $i < count($type); $i++) {
  59. if ($vo['type_id'] == $type[$i]['id']) {
  60. $message[$key]['type_name'] = $type[$i]['name'];
  61. }
  62. }
  63. foreach ($users as $k => $v) {
  64. if ($vo['user_id'] == $v['id']) {
  65. $message[$key]['user_name'] = $users[$k]['user_name'];
  66. }
  67. }
  68. }
  69. //总页数
  70. $pages = ceil($total / $limit);
  71. $list = array();
  72. $list['total'] = $total;
  73. $list['pages'] = $pages;
  74. $list['pageSize'] = $limit;
  75. $list['pageNumber'] = $pageNumber;
  76. $list['list'] = $message;
  77. $data = [
  78. 'status' => 1,
  79. 'msg' => '成功',
  80. 'data' => $list
  81. ];
  82. return json_encode($data, JSON_UNESCAPED_UNICODE);
  83. }
  84. // 留言类型
  85. public function type()
  86. {
  87. $type = db('messagetype')->where('status', 1)->select();
  88. for ($i = 0; $i < count($type); $i++) {
  89. $type[$i]['addtime'] = date('Y-m-d H:i:s', $type[$i]['addtime']);
  90. }
  91. $data = [
  92. 'status' => 1,
  93. 'msg' => '成功',
  94. 'data' => $type
  95. ];
  96. return json_encode($data, JSON_UNESCAPED_UNICODE);
  97. }
  98. }