TicketController.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Models\Ticket;
  4. use App\Http\Models\TicketReply;
  5. use Illuminate\Http\Request;
  6. use Response;
  7. use Redirect;
  8. /**
  9. * 工单控制器
  10. * Class TicketController
  11. * @package App\Http\Controllers
  12. */
  13. class TicketController extends BaseController
  14. {
  15. protected static $config;
  16. function __construct()
  17. {
  18. self::$config = $this->systemConfig();
  19. }
  20. // 工单列表
  21. public function ticketList(Request $request)
  22. {
  23. $view['ticketList'] = Ticket::paginate(10);
  24. return Response::view('ticket/ticketList', $view);
  25. }
  26. // 回复工单
  27. public function replyTicket(Request $request)
  28. {
  29. $id = $request->get('id');
  30. $user = $request->session()->get('user');
  31. if ($request->method() == 'POST') {
  32. $content = $request->get('content');
  33. $obj = new TicketReply();
  34. $obj->ticket_id = $id;
  35. $obj->user_id = $user['id'];
  36. $obj->content = $content;
  37. $obj->created_at = date('Y-m-d H:i:s');
  38. $obj->save();
  39. if ($obj->id) {
  40. // 将工单置为已回复
  41. Ticket::where('id', $id)->update(['status' => 1]);
  42. return Response::json(['status' => 'success', 'data' => '', 'message' => '回复成功']);
  43. } else {
  44. return Response::json(['status' => 'fail', 'data' => '', 'message' => '回复失败']);
  45. }
  46. } else {
  47. $view['ticket'] = Ticket::where('id', $id)->with('user')->first();
  48. $view['replyList'] = TicketReply::where('ticket_id', $id)->with('user')->orderBy('id', 'asc')->get();
  49. return Response::view('ticket/replyTicket', $view);
  50. }
  51. }
  52. // 关闭工单
  53. public function closeTicket(Request $request)
  54. {
  55. $id = $request->get('id');
  56. $ret = Ticket::where('id', $id)->update(['status' => 2]);
  57. if ($ret) {
  58. return Response::json(['status' => 'success', 'data' => '', 'message' => '关闭成功']);
  59. } else {
  60. return Response::json(['status' => 'fail', 'data' => '', 'message' => '关闭失败']);
  61. }
  62. }
  63. }