AddressService.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Modules\Mini\Services;
  3. use App\Base\BaseService;
  4. use App\Models\User\User;
  5. use App\Models\User\UserAddress;
  6. class AddressService extends BaseService
  7. {
  8. public function store(User $user, $params)
  9. {
  10. $id = $params['id'];
  11. if ($id) {
  12. $address = UserAddress::where("id", $id)->where("user_id", $user->id)->firstOrFail();
  13. } else {
  14. $address = new UserAddress();
  15. $address->user_id = $user->id;
  16. }
  17. $address->address = $params['address'];
  18. $address->name = $params['name'];
  19. $address->phone = $params['phone'];
  20. $address->is_default = $params['is_default'];
  21. if (UserAddress::where("user_id", $user->id)->count() == 0) {
  22. $address->is_default = 1;
  23. }
  24. $address->area = $params['area'];
  25. $address->save();
  26. }
  27. public function paginate(User $user, $params)
  28. {
  29. $p = UserAddress::where("user_id", $user->id)->orderByDesc("id")->paginate($params['page_size']);
  30. return [
  31. "total" => $p->total(),
  32. "page_total" => $p->lastPage(),
  33. "list" => array_map(function (UserAddress $model) {
  34. return [
  35. "id" => $model->id,
  36. "is_default" => $model->is_default,
  37. "name" => $model->name,
  38. "phone" => $model->phone,
  39. "area" => $model->area,
  40. "address" => $model->address,
  41. ];
  42. }, $p->items()),
  43. ];
  44. }
  45. }