TicketController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. protected static $config;
  15. function __construct()
  16. {
  17. self::$config = $this->systemConfig();
  18. }
  19. // 工单列表
  20. public function ticketList(Request $request)
  21. {
  22. $view['ticketList'] = Ticket::query()->orderBy('id', 'desc')->paginate(10);
  23. return Response::view('ticket/ticketList', $view);
  24. }
  25. // 回复工单
  26. public function replyTicket(Request $request)
  27. {
  28. $id = $request->get('id');
  29. $user = $request->session()->get('user');
  30. if ($request->method() == 'POST') {
  31. $content = $request->get('content');
  32. $obj = new TicketReply();
  33. $obj->ticket_id = $id;
  34. $obj->user_id = $user['id'];
  35. $obj->content = $content;
  36. $obj->created_at = date('Y-m-d H:i:s');
  37. $obj->save();
  38. if ($obj->id) {
  39. // 将工单置为已回复
  40. Ticket::query()->where('id', $id)->update(['status' => 1]);
  41. return Response::json(['status' => 'success', 'data' => '', 'message' => '回复成功']);
  42. } else {
  43. return Response::json(['status' => 'fail', 'data' => '', 'message' => '回复失败']);
  44. }
  45. } else {
  46. $view['ticket'] = Ticket::query()->where('id', $id)->with('user')->first();
  47. $view['replyList'] = TicketReply::query()->where('ticket_id', $id)->with('user')->orderBy('id', 'asc')->get();
  48. return Response::view('ticket/replyTicket', $view);
  49. }
  50. }
  51. // 关闭工单
  52. public function closeTicket(Request $request)
  53. {
  54. $id = $request->get('id');
  55. $ret = Ticket::query()->where('id', $id)->update(['status' => 2]);
  56. if ($ret) {
  57. return Response::json(['status' => 'success', 'data' => '', 'message' => '关闭成功']);
  58. } else {
  59. return Response::json(['status' => 'fail', 'data' => '', 'message' => '关闭失败']);
  60. }
  61. }
  62. }