You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
4.8 KiB

  1. <?php
  2. namespace App\Http\Model;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Common\Token;
  5. class UserAddress extends BaseModel
  6. {
  7. //用户收货地址
  8. protected $table = 'user_address';
  9. public $timestamps = false;
  10. protected $hidden = array();
  11. /**
  12. * 不能被批量赋值的属性
  13. *
  14. * @var array
  15. */
  16. protected $guarded = array();
  17. //获取列表
  18. public static function getList()
  19. {
  20. return self::where('user_id', Token::$uid)->get()->toArray();
  21. }
  22. //获取一条记录
  23. public static function getOne($address_id)
  24. {
  25. $arr = array();
  26. if ($address_id)
  27. {
  28. return self::where('id',$address_id)->first()->toArray();
  29. }
  30. if (Token::$uid > 0)
  31. {
  32. // 取默认地址
  33. $arr = self::join('user','user_address.id', '=', 'user.address_id')
  34. ->where('user.user_id',Token::$uid)
  35. ->first()->toArray();
  36. }
  37. return $arr;
  38. }
  39. public static function add(array $param)
  40. {
  41. extract($param);
  42. $arr = Region::getParentId($region);
  43. $model = new UserAddress;
  44. $model->user_id = Token::$uid;
  45. $model->name = $name;
  46. $model->email = isset($email) ? $email : '';
  47. $model->country = isset($country) ? $country : 0;
  48. $model->province = isset($province) ? $province : 0;
  49. $model->city = isset($city) ? $city : 0;
  50. $model->district = isset($district) ? $district : 0;
  51. $model->address = $address;
  52. $model->mobile = isset($mobile) ? $mobile : '';
  53. $model->telphone = isset($telphone) ? $telphone : '';
  54. $model->zipcode = isset($zipcode) ? $zipcode : '';
  55. $model->sign_building = isset($sign_building) ? $sign_building : '';
  56. $model->best_time = isset($best_time) ? $best_time : '';
  57. $model->is_default = isset($is_default) ? $is_default : 0;
  58. if ($model->save())
  59. {
  60. $user = User::where('user_id', Token::$uid)->first();
  61. if (!UserAddress::where('id', $user->address_id)->first())
  62. {
  63. $user->address_id = $model->id;
  64. $user->save();
  65. }
  66. return $model->toArray();
  67. }
  68. return false;
  69. }
  70. public static function update(array $param)
  71. {
  72. extract($param);
  73. if ($model = UserAddress::where('id', $id)->where('user_id', Token::$uid)->first())
  74. {
  75. $arr = Region::getParentId($region);
  76. $model->user_id = Token::$uid;
  77. $model->name = $name;
  78. $model->email = isset($email) ? $email : '';
  79. $model->country = isset($country) ? $country : 0;
  80. $model->province = isset($province) ? $province : 0;
  81. $model->city = isset($city) ? $city : 0;
  82. $model->district = isset($district) ? $district : 0;
  83. $model->address = $address;
  84. $model->mobile = isset($mobile) ? $mobile : '';
  85. $model->telphone = isset($telphone) ? $telphone : '';
  86. $model->zipcode = isset($zipcode) ? $zipcode : '';
  87. $model->sign_building = isset($sign_building) ? $sign_building : '';
  88. $model->best_time = isset($best_time) ? $best_time : '';
  89. $model->is_default = isset($is_default) ? $is_default : 0;
  90. if ($model->save())
  91. {
  92. return $model->toArray();
  93. }
  94. }
  95. return false;
  96. }
  97. //删除一条记录
  98. public static function delete(array $param)
  99. {
  100. extract($param);
  101. if (UserAddress::where('id', $id)->where('user_id', Token::$uid)->delete())
  102. {
  103. if ($address = UserAddress::where('user_id', Token::$uid)->first())
  104. {
  105. $user = User::where('id', Token::$uid)->first();
  106. if($user->address_id == $id)
  107. {
  108. $user->address_id = $address->id;
  109. $user->save();
  110. }
  111. }
  112. }
  113. return true;
  114. }
  115. //设为默认地址
  116. public static function setDefault(array $param)
  117. {
  118. extract($param);
  119. if (UserAddress::where('id', $id)->where('user_id', Token::$uid)->first())
  120. {
  121. if($user = User::where('id', Token::$uid)->first())
  122. {
  123. $user->address_id = $id;
  124. $user->save();
  125. return true;
  126. }
  127. }
  128. return false;
  129. }
  130. }