DraftController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Http\Controllers\Account;
  3. use App\Models\Draft;
  4. use App\Models\Question;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. class DraftController extends Controller
  8. {
  9. public function index(Request $request)
  10. {
  11. $user_id = $request->user()->id;
  12. $drafts = Draft::where('user_id',$user_id)->get()->toArray();
  13. return view('theme::draft.index')->with(compact('drafts'));
  14. }
  15. /**
  16. * 创建草稿
  17. * @param Request $request
  18. * @param $type
  19. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  20. */
  21. public function create(Request $request, $type)
  22. {
  23. $loginUser = $request->user();
  24. if ($type == 'question') {
  25. $data = [
  26. 'id' => $request->input('_token'),
  27. 'user_id' => $loginUser->id,
  28. 'editor_content' => clean($request->input('description','')),
  29. 'subject' => trim($request->input('title','')),
  30. 'source_type' => 'question',
  31. 'source_id' => $request->input('id', 0),
  32. 'form_data' => json_encode([
  33. 'category_id' => $request->input('category_id', 0),
  34. 'price' => $price = abs($request->input('price',0)),
  35. 'hide' => intval($request->input('hide',0)),
  36. 'tags' => trim($request->input('tags','')),
  37. 'to_user_id' => $request->input('to_user_id',0)
  38. ]),
  39. ];
  40. } elseif ($type == 'answer') {
  41. $question = Question::find($request->input('question_id'));
  42. $data = [
  43. 'id' => $request->input('_token'),
  44. 'user_id' => $loginUser->id,
  45. 'editor_content' => clean($request->input('content')),
  46. 'subject' => $question->title,
  47. 'source_type' => 'answer',
  48. 'source_id' => $request->input('question_id', 0),
  49. 'form_data' => json_encode([]),
  50. ];
  51. } elseif ($type == 'article') {
  52. $data = [
  53. 'id' => $request->input('_token'),
  54. 'user_id' => $loginUser->id,
  55. 'editor_content' => clean($request->input('content')),
  56. 'subject' => trim($request->input('title')),
  57. 'source_type' => 'article',
  58. 'source_id' => $request->input('id', 0),
  59. 'form_data' => json_encode([
  60. 'category_id' => $request->input('category_id', 0),
  61. ]),
  62. ];
  63. }
  64. $draft = Draft::find($data['id']);
  65. if ( !empty($draft)) {
  66. Draft::where('id', $data['id'])->update($data);
  67. } else {
  68. Draft::create($data);
  69. }
  70. return response()->json($data);
  71. }
  72. /**
  73. * 清空草稿箱
  74. * @param Request $request
  75. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  76. */
  77. public function cleanAll(Request $request)
  78. {
  79. $user_id = $request->user()->id;
  80. $result = Draft::where('user_id', $user_id)->delete();
  81. return $this->success(route('auth.draft.index'),'操作成功!');
  82. }
  83. /**
  84. * 删除草稿
  85. * @param Request $request
  86. * @param $id
  87. * @return
  88. */
  89. public function destroy(Request $request, $id)
  90. {
  91. $user_id = $request->user()->id;
  92. $result = Draft::where('id', $id)->where('user_id', $user_id)->delete();
  93. return $this->success(route('auth.draft.index'),'操作成功!');
  94. }
  95. }