id; $area = Area::query() ->filter($filter) ->orderByDesc('id'); if (!Admin::isAdministrator()) { $area_ids = AdminUser::getAreaIdsByAdminId($admin_id); $area = $area->where('admin_id', $admin_id)->orWhereIn('id', $area_ids); } $area = $request->get('all') ? $area->get() : $area->paginate(); return $this->ok(AreaResource::collection($area)); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * store * * @param AreaRequest $request * @param Area $model * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function store(AreaRequest $request, Area $model) { $id = Admin::user()->id; // $inputs = $request->validated(); $inputs['admin_id'] = 0; if ($id != 1) { $inputs['admin_id'] = $id; } $area_fence = $inputs['area_fence']; $area_fushe_fence = $inputs['area_fushe_fence']; $area_centre = GetCenterFromDegrees($area_fence); $inputs['area_radius'] = round(maxDistance($area_centre, $area_fence) + 1, 4); // $inputs['area_centre'] = json_encode($area_centre); $inputs['area_centre'] = json_encode($inputs['area_centre']); $inputs['area_fence'] = json_encode($area_fence); $inputs['area_fushe_fence'] = json_encode($area_fushe_fence); $res = $model->create($inputs); //创建区域设置 $areaSetting = new AreaSetting(); $areaSetting->area_id = $res->id; $areaSetting->save(); return $this->created(AreaResource::make($res)); } /** * show * * @param $id * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function show($id) { // $area = Area::query()->find($id); return $this->ok(AreaResource::make($area)); } /** * edit * * @param Area $area * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function edit(Area $area) { // return $this->ok(AreaResource::make($area)); } /** * update * * @param AreaRequest $request * @param Area $area * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function update(AreaRequest $request, Area $area) { // $inputs = $request->validated(); $area_centre = GetCenterFromDegrees($inputs['area_fence']); $area_fence = object_array($inputs['area_fence']); $inputs['admin_id'] = $inputs['admin_id'] ?? Admin::user()->id; // 创建者id $inputs['area_radius'] = round(maxDistance($area_centre, $area_fence) + 1, 4); //$inputs['area_centre'] = json_encode(GetCenterFromDegrees($inputs['area_fence'])); $inputs['area_centre'] = json_encode($inputs['area_centre']); $inputs['area_fence'] = json_encode(object_array($inputs['area_fence'])); $inputs['area_fushe_fence'] = json_encode(object_array($inputs['area_fushe_fence'])); $area->update($inputs); return $this->ok(AreaResource::make($area)); } /** * destroy * * @param Area $area * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function destroy(Area $area) { // $area->delete(); return $this->noContent(); } }