123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Filters\AdvertisementFilter;
- use App\Http\Requests\AdvertisementRequest;
- use App\Http\Resources\AdvertisementResource;
- use App\Models\AdminUser;
- use App\Models\AdminUserArea;
- use App\Models\Advertisement;
- use App\Models\Area;
- use App\Utils\Admin;
- use App\Utils\QiNiuUpload;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Log;
- class AdvertisementController extends Controller
- {
- /**
- * @param AdvertisementFilter $filter
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- */
- public function index(AdvertisementFilter $filter, Request $request)
- {
- $admin_id = Admin::user()->id;
- $advertisement = Advertisement::query()->filter($filter)->orderByDesc('id');
- if (!Admin::isAdministrator()) {
- $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
- if (count($area_ids) !== 0) {
- $advertisement = $advertisement->where(function ($q) use ($area_ids) {
- $q->whereIn('area_id', $area_ids)->orWhere('area_id', 0);
- });
- } else {
- return $this->error('暂无权限');
- $area = AdminUserArea::query()->where('admin_id', $admin_id)->first();
- $area_id = $area->area_id ?? 0;
- $advertisement = $advertisement->where(function ($q) use ($area_id) {
- $q->where('area_id', $area_id)->orWhere('area_id', 0);
- });
- }
- }
- $advertisement = $request->get('all') ? $advertisement->get() : $advertisement->paginate();
- return $this->ok(AdvertisementResource::collection($advertisement));
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return \Illuminate\Http\Response
- *
- * @author Fx
- */
- public function create()
- {
- //
- }
- /**
- * @param AdvertisementRequest $request
- * @param Advertisement $model
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- */
- public function store(AdvertisementRequest $request, Advertisement $model)
- {
- //
- $inputs = $request->validated();
- $inputs['pid'] = $inputs['pid'] ?? 0;
- $inputs['start_time'] = date('Y-m-d H:i:s', strtotime($inputs['start_time']));
- $inputs['end_time'] = date('Y-m-d H:i:s', strtotime($inputs['end_time']));
- if ($inputs['area_id'] == 0) {
- $admin_id = Admin::user()->id;
- if (!Admin::isAdministrator()) {
- return $this->error('无权限设置');
- }
- }
- $model->create($inputs);
- return $this->ok(AdvertisementResource::make($model));
- }
- /**
- * Display the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function show($id)
- {
- //
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- *
- * @author Fx
- */
- public function edit(Advertisement $advertisement)
- {
- //
- return $this->ok(AdvertisementResource::make($advertisement));
- }
- /**
- * @param AdvertisementRequest $request
- * @param Advertisement $advertisement
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- */
- public function update(AdvertisementRequest $request, Advertisement $advertisement)
- {
- //
- $inputs = $request->validated();
- $inputs['start_time'] = date('Y-m-d H:i:s', strtotime($inputs['start_time']));
- $inputs['end_time'] = date('Y-m-d H:i:s', strtotime($inputs['end_time']));
- if ($inputs['area_id'] == 0) {
- $admin_id = Admin::user()->id;
- if (!Admin::isAdministrator()) {
- return $this->error('无权限设置');
- }
- }
- $advertisement->update($inputs);
- if ($inputs['advertisement_position_slug'] == config('systemConfig.advertisement.footer_slug')) {
- Advertisement::where('pid', $advertisement->id)->update(['area_id' => $inputs['area_id']]);
- }
- return $this->ok(AdvertisementResource::make($advertisement));
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- *advertisementChildrenDestory
- * @author Fx
- */
- public function destroy(Advertisement $advertisement)
- {
- //
- $advertisement->delete();
- return $this->noContent();
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- *
- * @author Fx
- */
- public function advertisementChildrenDestory($id)
- {
- //
- $advertisement = Advertisement::query()->find($id);
- $advertisement->delete();
- return $this->noContent();
- }
- /**
- * 广告位 广告类型
- *
- * @return array ['advertisementPosition' => '广告位','advertisementType' => '广告类型']
- *
- * @author Fx
- * */
- public function advertisementSelectData()
- {
- // Log::info(111);
- $advertisementPosition = Advertisement::advertisementPositioin();
- $advertisementType = Advertisement::advertisementType();
- $data = [
- 'advertisementPosition' => $advertisementPosition,
- 'advertisementType' => $advertisementType
- ];
- return $this->ok($data);
- }
- /**
- * 广告相关图片上传 //缩略图
- *
- * @return array ['path'=>'上传图片后返回的绝对路径']
- *
- * @author Fx
- * */
- public function uploadImg(Request $request)
- {
- $file = $request->file('surface');
- $qiNiuUpload = new QiNiuUpload();
- $path = $qiNiuUpload->upload_image('/advertisement/surface', $file);
- return $this->ok(['path' => $path]);
- }
- /**
- * 广告相关图片上传 //富文本
- *
- * @return array ['path'=>'上传图片后返回的绝对路径']
- *
- * @author Fx
- * */
- public function uploadImg2(Request $request)
- {
- $file = $request->file('img');
- $qiNiuUpload = new QiNiuUpload();
- $path = $qiNiuUpload->upload_image('/advertisement/editor', $file);
- return $this->ok(['path' => $path]);
- }
- }
|