UserAddress.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\model\api;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class UserAddress extends Model
  9. {
  10. /**
  11. * 获取地址列表
  12. * @param int $uid
  13. * @return array
  14. */
  15. public function getAddressList($uid)
  16. {
  17. return $this->where('uid', $uid)
  18. ->order('is_default', 'desc')
  19. ->order('id', 'desc')
  20. ->select()
  21. ->toArray();
  22. }
  23. /**
  24. * 获取默认地址
  25. * @param int $uid
  26. * @return array|null
  27. */
  28. public function getDefaultAddress($uid)
  29. {
  30. $address = $this->where('uid', $uid)
  31. ->where('is_default', 1)
  32. ->find();
  33. if (!$address) {
  34. // 如果没有默认地址,返回第一个
  35. $address = $this->where('uid', $uid)->order('id', 'desc')->find();
  36. }
  37. return $address ? $address->toArray() : null;
  38. }
  39. /**
  40. * 设置默认地址
  41. * @param int $id
  42. * @param int $uid
  43. * @return bool
  44. */
  45. public function setDefault($id, $uid)
  46. {
  47. // 先取消所有默认
  48. $this->where('uid', $uid)->update(['is_default' => 0]);
  49. // 设置当前为默认
  50. return $this->where('id', $id)->where('uid', $uid)->update(['is_default' => 1]);
  51. }
  52. }