AddressService.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. if (UserAddress::where("user_id", $user->id)->count() == 0) {
  21. $address->is_default = 1;
  22. }
  23. $address->area = $params['area'];
  24. $address->save();
  25. }
  26. public function paginate(User $user, $params)
  27. {
  28. $p = UserAddress::where("user_id", $user->id)->orderByDesc("id")->paginate($params['page_size']);
  29. return [
  30. "total" => $p->total(),
  31. "page_total" => $p->lastPage(),
  32. "list" => array_map(function (UserAddress $model) {
  33. return [
  34. "id" => $model->id,
  35. "is_default" => $model->is_default,
  36. "name" => $model->name,
  37. "phone" => $model->phone,
  38. "area" => $model->area,
  39. "address" => $model->address,
  40. ];
  41. }, $p->items()),
  42. ];
  43. }
  44. }