AnnouncementController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\AnnouncementFilter;
  4. use App\Http\Requests\AnnouncementRequest;
  5. use App\Http\Resources\AnnouncementResource;
  6. use App\Models\AdminMerchant;
  7. use App\Models\AdminUser;
  8. use App\Models\AdminUserArea;
  9. use App\Models\Announcement;
  10. use App\Models\Area;
  11. use App\Utils\Admin;
  12. use App\Utils\QiNiuUpload;
  13. use Illuminate\Http\Request;
  14. use App\Http\Controllers\Controller;
  15. class AnnouncementController extends Controller
  16. {
  17. /**
  18. * 公告列表
  19. * @param AnnouncementFilter $filter
  20. * @param Request $request
  21. * @return \Illuminate\Http\JsonResponse
  22. * @author Fx
  23. */
  24. public function index(AnnouncementFilter $filter, Request $request)
  25. {
  26. //
  27. $admin_id = Admin::user()->id;
  28. $announcement = Announcement::query()
  29. ->filter($filter)
  30. ->where(AdminMerchant::getMerchantWhere())
  31. ->orderByDesc('id');
  32. if (!Admin::isAdministrator()) {
  33. $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
  34. if (count($area_ids) !== 0) {
  35. $announcement = $announcement->where(function ($q) use ($area_ids) {
  36. $q->whereIn('area_id', $area_ids)->orWhere('area_id', 0);
  37. });
  38. } else {
  39. return $this->error('暂无权限');
  40. }
  41. }
  42. $announcement = $request->get('all') ? $announcement->get() : $announcement->paginate();
  43. return $this->ok(AnnouncementResource::collection($announcement));
  44. }
  45. /**
  46. * Show the form for creating a new resource.
  47. *
  48. * @return \Illuminate\Http\Response
  49. */
  50. public function create()
  51. {
  52. //
  53. }
  54. /**
  55. * 添加公告
  56. * @param AnnouncementRequest $request
  57. * @param Announcement $announcement
  58. * @return \Illuminate\Http\JsonResponse
  59. * @author Fx
  60. */
  61. public function store(AnnouncementRequest $request, Announcement $announcement)
  62. {
  63. //
  64. $inputs = $request->validated();
  65. if ($inputs['area_id'] == 0) {
  66. $admin_id = Admin::user()->id;
  67. if (!Admin::isAdministrator()) {
  68. return $this->error('没有权限设置为全部区域');
  69. }
  70. }
  71. $inputs['expiration_time'] = date('Y-m-d H:i:s', strtotime($inputs['expiration_time']));
  72. $inputs['merchant_id'] = AdminMerchant::putMerchantId();
  73. $announcement->create($inputs);
  74. return $this->ok(AnnouncementResource::make($announcement));
  75. }
  76. /**
  77. * Display the specified resource.
  78. *
  79. * @param int $id
  80. * @return \Illuminate\Http\Response
  81. */
  82. public function show($id)
  83. {
  84. //
  85. }
  86. /**
  87. * 编辑公告获取编辑内容
  88. * @param Announcement $announcement
  89. * @return \Illuminate\Http\JsonResponse
  90. * @author Fx
  91. */
  92. public function edit(Announcement $announcement)
  93. {
  94. //
  95. return $this->ok(AnnouncementResource::make($announcement));
  96. }
  97. /**
  98. * 更新公告
  99. * @param AnnouncementRequest $request
  100. * @param Announcement $announcement
  101. * @return \Illuminate\Http\JsonResponse
  102. * @author Fx
  103. */
  104. public function update(AnnouncementRequest $request, Announcement $announcement)
  105. {
  106. //
  107. $inputs = $request->validated();
  108. if ($inputs['area_id'] == 0) {
  109. $admin_id = Admin::user()->id;
  110. if (!Admin::isAdministrator()) {
  111. return $this->error('没有权限设置为全部区域');
  112. }
  113. }
  114. $inputs['expiration_time'] = date('Y-m-d H:i:s', strtotime($inputs['expiration_time']));
  115. $announcement->update($inputs);
  116. return $this->ok(AnnouncementResource::make($announcement));
  117. }
  118. /**
  119. * 删除公告
  120. * @param Announcement $announcement
  121. * @return \Illuminate\Http\JsonResponse
  122. * @throws \Exception
  123. * @author Fx
  124. */
  125. public function destroy(Announcement $announcement)
  126. {
  127. //
  128. $announcement->delete();
  129. return $this->noContent();
  130. }
  131. /**
  132. * 广告相关图片上传 //富文本
  133. * @param Request $request
  134. * @return \Illuminate\Http\JsonResponse
  135. * @author Fx
  136. */
  137. public function uploadImg2(Request $request)
  138. {
  139. $file = $request->file('img');
  140. $qiNiuUpload = new QiNiuUpload();
  141. $path = $qiNiuUpload->upload_image('/advertisement/editor', $file);
  142. return $this->ok(['location' => $path]);
  143. }
  144. }