| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Repositories;
- use App\Model\UserShippingAddressModel;
- use Hyperf\Database\Model\Builder;
- use KZ2\Repositories\Model\Repository;
- class UserShippingAddressRepository extends Repository
- {
- public function model()
- {
- return UserShippingAddressModel::class;
- }
- /**
- * 获取用户已经添加的收货地址总数
- *
- * @param $userUid
- * @return int
- */
- public function getUserAddressCount($userUid)
- {
- return UserShippingAddressModel::where('user_uid', $userUid)->count();
- }
- /**
- * 修改用户收货地址
- *
- * @param $item
- * @param $userUid
- * @return int
- */
- public function updateAddress($item, $userUid)
- {
- if ($item['name']) {
- $upData['name'] = $item['name'];
- }
- if ($item['phone']) {
- $upData['phone'] = $item['phone'];
- }
- if ($item['province'] && $item['city'] && $item['region']) {
- $upData['province'] = $item['province'];
- $upData['city'] = $item['city'];
- $upData['region'] = $item['region'];
- }
- if ($item['address']) {
- $upData['address'] = $item['address'];
- }
- if ($item['default_address']) {
- if ($item['default_address'] == 1) {
- $res = UserShippingAddressModel::where('user_uid', $userUid)->update(['is_default' => 2]);
- if (!$res) {
- return '';
- }
- }
- $upData['is_default'] = $item['default_address'];
- }
- return UserShippingAddressModel::where(['uid' => $item['uid'], 'user_uid' => $userUid])->update($upData);
- }
- /**
- * 获取用户的收货地址
- *
- * @param $userUid
- * @return array|mixed
- */
- public function getUserAddress($userUid)
- {
- $data = $this->findAllBy('user_uid', $userUid, ['name', 'uid', 'phone', 'address', 'is_default', 'province', 'city', 'region']);
- if (empty($data)) {
- return [];
- }
- $res = [];
- foreach ($data as $val) {
- if ($val['is_default'] == 1) {
- unset($val['is_default']);
- $res = $val;
- break;
- }
- }
- if (empty($res)) {
- unset($data[0]['is_default']);
- $res = $data[0];
- }
- return $res;
- }
- public function getAddressCount($userUid)
- {
- return UserShippingAddressModel::query()->where('user_uid', $userUid)->count();
- }
- }
|