UserShippingAddressRepository.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Repositories;
  3. use App\Model\UserShippingAddressModel;
  4. use Hyperf\Database\Model\Builder;
  5. use KZ2\Repositories\Model\Repository;
  6. class UserShippingAddressRepository extends Repository
  7. {
  8. public function model()
  9. {
  10. return UserShippingAddressModel::class;
  11. }
  12. /**
  13. * 获取用户已经添加的收货地址总数
  14. *
  15. * @param $userUid
  16. * @return int
  17. */
  18. public function getUserAddressCount($userUid)
  19. {
  20. return UserShippingAddressModel::where('user_uid', $userUid)->count();
  21. }
  22. /**
  23. * 修改用户收货地址
  24. *
  25. * @param $item
  26. * @param $userUid
  27. * @return int
  28. */
  29. public function updateAddress($item, $userUid)
  30. {
  31. if ($item['name']) {
  32. $upData['name'] = $item['name'];
  33. }
  34. if ($item['phone']) {
  35. $upData['phone'] = $item['phone'];
  36. }
  37. if ($item['province'] && $item['city'] && $item['region']) {
  38. $upData['province'] = $item['province'];
  39. $upData['city'] = $item['city'];
  40. $upData['region'] = $item['region'];
  41. }
  42. if ($item['address']) {
  43. $upData['address'] = $item['address'];
  44. }
  45. if ($item['default_address']) {
  46. if ($item['default_address'] == 1) {
  47. $res = UserShippingAddressModel::where('user_uid', $userUid)->update(['is_default' => 2]);
  48. if (!$res) {
  49. return '';
  50. }
  51. }
  52. $upData['is_default'] = $item['default_address'];
  53. }
  54. return UserShippingAddressModel::where(['uid' => $item['uid'], 'user_uid' => $userUid])->update($upData);
  55. }
  56. /**
  57. * 获取用户的收货地址
  58. *
  59. * @param $userUid
  60. * @return array|mixed
  61. */
  62. public function getUserAddress($userUid)
  63. {
  64. $data = $this->findAllBy('user_uid', $userUid, ['name', 'uid', 'phone', 'address', 'is_default', 'province', 'city', 'region']);
  65. if (empty($data)) {
  66. return [];
  67. }
  68. $res = [];
  69. foreach ($data as $val) {
  70. if ($val['is_default'] == 1) {
  71. unset($val['is_default']);
  72. $res = $val;
  73. break;
  74. }
  75. }
  76. if (empty($res)) {
  77. unset($data[0]['is_default']);
  78. $res = $data[0];
  79. }
  80. return $res;
  81. }
  82. public function getAddressCount($userUid)
  83. {
  84. return UserShippingAddressModel::query()->where('user_uid', $userUid)->count();
  85. }
  86. }