middleware('checkUserPermission'); $this->service = $service; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $this->validateData($request, ['user_id' => 'required|integer']); $lists = $this->service->handleList($request); return $this->response->success($lists); } /** * 新增 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function store(Request $request) { $data = $this->validateData($request, [ 'is_default' => 'required|integer', 'province' => 'required|string', 'city' => 'required|string', 'area' => 'required|string', 'address' => 'required|string', 'name' => 'required|string', 'mobile' => 'required', 'mobile_code' => 'required', ], [ 'is_default' => '是否为默认', 'province' => '省', 'city' => '市', 'area' => '县', 'address' => '详细地址', 'name' => '收件人姓名', 'mobile' => '收件人电话', 'mobile_code' => '收件人电话-区码', ]); $area_code = $request->get('mobile_code', '+86'); switch ($area_code) { case "+886": //中国台湾 $this->validateData($request, [ 'mobile' => 'required|mobile_TW', ], ['mobile' => '手机号']); break; case "+853": //中国澳门 $this->validateData($request, [ 'mobile' => 'required|mobile_OM', ], ['mobile' => '手机号']); break; case "+852": //中国香港 $this->validateData($request, [ 'mobile' => 'required|mobile_XG', ], ['mobile' => '手机号']); break; case '+86': default: //大陆 $this->validateData($request, [ 'mobile' => 'required|mobile', ], ['mobile' => '手机号']); $data['mobile_code'] = '+86'; break; } $data['user_id'] = login_user_id(); $model = $this->service->handleStore($data); return $this->response->created($model, '创建成功'); } /** * 详情 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $model = $this->service->handleProfile($request->get('id')); return $this->response->success($model); } /** * 更新 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function update(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'is_default' => 'required|integer', 'province' => 'required|string', 'city' => 'required|string', 'area' => 'required|string', 'address' => 'required|string', 'name' => 'required|string', 'mobile' => 'required', 'mobile_code' => 'required', ], [ 'is_default' => '是否为默认', 'province' => '省', 'city' => '市', 'area' => '县', 'address' => '详细地址', 'name' => '收件人姓名', 'mobile' => '收件人电话', 'mobile_code' => '收件人电话-区码', ]); if (array_key_exists('mobile', $data) && strpos($data['mobile'], '*') === false) { $area_code = $request->get('mobile_code', '+86'); switch ($area_code) { case "+886": //中国台湾 $this->validateData($request, [ 'mobile' => 'required|mobile_TW', ], ['mobile' => '手机号']); break; case "+853": //中国澳门 $this->validateData($request, [ 'mobile' => 'required|mobile_OM', ], ['mobile' => '手机号']); break; case "+852": //中国香港 $this->validateData($request, [ 'mobile' => 'required|mobile_XG', ], ['mobile' => '手机号']); break; case '+86': default: //大陆 $this->validateData($request, [ 'mobile' => 'required|mobile', ], ['mobile' => '手机号']); $data['mobile_code'] = '+86'; break; } $data['mobile_encryption'] = Crypt::encryptString($data['mobile']); $data['mobile'] = mobile_hidden($data['mobile']); } $model = $this->service->handleUpdate($data); return $this->response->success($model, '更新成功'); } /** * 更新 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function updateIsDefault(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'is_default' => 'required|integer', ], [ 'is_default' => '是否为默认', ]); $model = $this->service->handleUpdate($data); return $this->response->success($model, '更新成功'); } /** * 删除 * @param Request $request */ public function destroy(Request $request) { $this->validate($request, ['id' => 'required|integer']); $re = $this->service->handleDelete($request->get('id')); if ($re) { return $this->response->ok('删除成功'); } return $this->response->fail('删除失败'); } /** * 批量删除 * @param Request $request */ public function batchDelete(Request $request) { $ids = $this->validateData($request, ['ids' => 'required|array']); $re = $this->service->handleBatchDelete($ids); if ($re) { return $this->response->ok('删除成功'); } return $this->response->fail('删除失败'); } /** * 选项 * @must * @param Request $request */ public function selectOptions(Request $request) { $lists = $this->service->handleSelectOptions($request); return $this->response->success($lists); } /** * 地址解析 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException */ public function analysis(Request $request) { $this->validateData($request, ['body' => 'required|string'], ['body' => '地址']); $body = $request->get('body'); $re = Address::encode($body); return $this->response->success($re); } /** * 获取默认地址 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function meDefault(Request $request) { $data = $this->service->handleMeDefaule(login_user_id()); return $this->response->success($data); } }