123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- /**
- * @Name
- * @Description
- * @Author 刘学玺
- * @Date 2024/9/27 12:05
- */
- namespace App\Http\Services\Frontend\Client\Member;
- use App\Exceptions\ApiException;
- use App\Http\Requests\Request;
- use App\Http\Services\Frontend\Client\Common\AuthService;
- use App\Http\Services\Service;
- use App\Models\Member\Address;
- use App\Models\Member\User;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- class AddressService extends Service
- {
- protected array $select_column = ['id', 'user_name', 'mobile', 'address', 'address_info', 'city_code', 'adcode', 'lat', 'lng', 'status'];
- public function getAddressList()
- {
- $id = Auth::id();
- return Address::query()->where('user_id', $id)->select($this->select_column)->get();
- }
- /**
- * @throws ApiException
- */
- public function createAddress(array $params)
- {
- $user_id = Auth::id();
- $params['user_id'] = $user_id;
- DB::beginTransaction();
- try {
- // 判断状态
- if ($params['status']) {
- // 更改所有地址状态为0
- Address::query()->where('user_id', $user_id)->update(['status' => 0]);
- }
- $address = self::toModel($params, Address::class);
- $admin_id = Address::query()->create($address->getAttributes())->id;
- DB::commit();
- return $admin_id;
- } catch (\Exception) {
- DB::rollBack();
- self::error('操作失败');
- }
- }
- public function getAddress(int $address_id)
- {
- $id = Auth::id();
- return Address::query()->where('user_id', $id)->select($this->select_column)->find($address_id);
- }
- /**
- * @throws ApiException
- */
- public function updateAddress(array $data, int $id): void
- {
- $user_id = Auth::id();
- $data['user_id'] = $user_id;
- DB::beginTransaction();
- try {
- // 判断状态
- if ($data['status']) {
- // 更改所有地址状态为0
- Address::query()->where('user_id', $user_id)->update(['status' => 0]);
- }
- $user = self::toModel(['id' => $id, ...$data], Address::class);
- $user->save();
- DB::commit();
- } catch (\Exception) {
- DB::rollBack();
- self::error('操作失败');
- }
- }
- public function delAddress($id): void
- {
- $user_id = Auth::id();
- $user = Address::query()->where('user_id', $user_id)->find($id);
- $user->delete();
- }
- public function getDefault()
- {
- $user_id = Auth::id();
- $where = ['user_id' => $user_id, 'status' => 1];
- return Address::query()->where($where)->select($this->select_column)->first();
- }
- public function setDefault(int $id): void
- {
- $user_id = Auth::id();
- // 更改所有地址状态为0
- Address::query()->where('user_id', $user_id)->update(['status' => 0]);
- $address = self::toModel(['id' => $id,'status' => 1], Address::class);
- $address->save();
- }
- }
|