1
0

TicketController.php 2.1 KB

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