| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- declare(strict_types=1);
- namespace app\miniapi\controller;
- use support\Request;
- use support\Response;
- use support\annotation\route\DisableDefaultRoute;
- use app\miniapi\http\Input;
- use app\miniapi\http\Fields;
- use app\miniapi\exception\ApiException;
- use app\miniapi\service\EnterpriseQuery;
- use app\miniapi\service\EnterpriseCommands;
- #[DisableDefaultRoute]
- final class EnterpriseController extends BaseController
- {
- public function me(Request $request): Response
- {
- $enterprise = $request->get('enterprise_id') === null ? null : Fields::id($request->get(), 'enterprise_id');
- $service = new EnterpriseQuery($this->access($request));
- return $this->success($request, $service->profile($enterprise));
- }
- public function addresses(Request $request): Response
- {
- return $this->success($request, (new EnterpriseQuery($this->access($request)))->addresses());
- }
- public function enterprise(Request $request, string $enterprise, string $section): Response
- {
- $service = new EnterpriseQuery($this->access($request));
- $id = $this->id($enterprise);
- $data = match($section) {
- 'home' => $service->home($id),
- 'rights' => $service->rights($id),
- 'ledger' => $service->ledger($id, $request->get()),
- 'orders' => $service->orders($id, $request->get()),
- 'devices' => $service->devices($id, $request->get()),
- 'rewards' => $service->rewards($id, $request->get()),
- default => throw new ApiException(40401, '接口不存在', 404)
- };
- return $this->success($request, $data);
- }
- public function device(Request $request, string $enterprise, string $id): Response
- {
- return $this->success($request, (new EnterpriseQuery($this->access($request)))->deviceDetail($this->id($enterprise), $this->id($id)));
- }
- public function tracking(Request $request, string $enterprise, string $id): Response
- {
- return $this->success($request, (new EnterpriseQuery($this->access($request)))->tracking($this->id($enterprise), $this->id($id)));
- }
- public function address(Request $request, string $enterprise): Response
- {
- return $this->success($request, (new EnterpriseCommands($this->access($request)))->address($this->id($enterprise), Input::json($request)));
- }
- public function addressDetail(Request $request, string $enterprise): Response
- {
- return $this->success($request, (new EnterpriseQuery($this->access($request)))->addressDetail($this->id($enterprise)));
- }
- public function addressSiteDetail(Request $request, string $enterprise, string $address): Response
- {
- return $this->success($request, (new EnterpriseQuery($this->access($request)))->addressDetailById(
- $this->id($enterprise),
- $this->id($address),
- ));
- }
- public function createAddress(Request $request, string $enterprise): Response
- {
- return $this->success($request, (new EnterpriseCommands($this->access($request)))->createAddress(
- $this->id($enterprise),
- Input::json($request),
- ));
- }
- public function updateAddress(Request $request, string $enterprise, string $address): Response
- {
- return $this->success($request, (new EnterpriseCommands($this->access($request)))->updateAddress(
- $this->id($enterprise),
- $this->id($address),
- Input::json($request),
- ));
- }
- public function book(Request $request, string $enterprise): Response
- {
- return $this->success($request, (new EnterpriseCommands($this->access($request)))->book($this->id($enterprise), Input::json($request)));
- }
- public function cancelDelivery(Request $request, string $enterprise, string $id): Response
- {
- return $this->success($request, (new EnterpriseCommands($this->access($request)))->cancel($this->id($enterprise), $this->id($id), Input::json($request)));
- }
- }
|